Python学习之旅之函数

第一百三十九回 介绍三个BLE包 本章回中主要介绍了Flutter中BLE的概念和操作方法,主要介绍了三个BLE包的功能和差异,以方便大家在BLE操作中选择不同的包。 阅读详情

这次Python学习参考的是Python基础教程,前面由于有一些Java基础,所以看的还比较顺利,然而到了函数这章就不太顺了,特别是参数这节。

下面对函数做一下简单的讲解。

假设需要编写一个存储联系人姓名并且能用名字、中间名、或姓查找联系人的程序,可以使用下面的数据结构:

storage = {}
storage['first'] = {}
storage['middle'] = {}
storage['last'] = {}
storage是一个有三个键(‘first’,‘middle’,‘last’)的字典,每个键下面又存储一个子字典,子字典中可以使用名字(名字、中间名或姓)作为键,插入联系人姓名的列表作为值,比如将作者的名字Magnus Lie Hetland插入这个数据结构中:

author = 'magnus Lie Hetland'
storage['first']['Magnus'] = [author]
storage['middle']['Lie'] = [author]
storage['last']['Hetland'] = [author]
每个键下面都存储了一个以人名组成的列表,现在如果想得到所用中间名为Lie的人则可进行如下操作:

print storage['middle']['Lie']
结果为: ['magnus Lie Hetland']

其实我看到这里就有点混乱了,这种字典中含字典的不太好理解,所以现在将storage输出看一下它的整体结构:

print storage
结果为(字典的键没有顺序):

{
	'middle': 
		{
			'Lie': ['magnus Lie Hetland']
		},
	 'last': 
		{
			'Hetland': ['magnus Lie Hetland']
		},
	 'first': 
		{
			'Magnus': ['magnus Lie Hetland']
		}
}

这样起来就清楚多了。

现在再在storage中加入作者姐姐的名字Anne Lie Hetland:

sister = 'Anne Lie Hetland'
storage['first'].setdefault('Anne', []).append(sister)
storage['middle'].setdefault('Lie', []).append(sister)
storage['last'].setdefault('Hetland', []).append(sister)
现在storage的结构为

{
	'middle': {
		'Lie': ['magnus Lie Hetland', 'Anne Lie Hetland']
	}, 
	'last': {
		'Hetland': ['magnus Lie Hetland', 'Anne Lie Hetland']
	},
	 'first': {
		'Anne': ['Anne Lie Hetland'],
		'Magnus': ['magnus Lie Hetland']
	}
}
现在storage中姓Hetland的有两个人,名为Anne的有一个人,名为Magnus的有一个人。现在应该清楚这个数据结构的存储方式了吧。

(我要吐槽一下我的进度了,以上内容来自于2017年3月21日,现在是2017年3月22日晚11点50分,估计一会发表完就得23号了吧......)

如果要继续增加联系人的话以上写法就会变得臃肿且笨拙不堪了,这个过程可以用函数来实现:

首先是初始化数据结构的函数:

def init(data):
    data['first'] = {}
    data['middle'] = {}
    data['last'] = {}
调用及结果如下:

storage = {}
init(storage)
{'middle': {}, 'last': {}, 'first': {}}  # 结果
在编写存储名字的函数前,先写一个获得名字的函数:

def lookup(data, label, name):
    return data[label].get(name)
即返回字典data中键为label的字典中名为name的键对应的值。

现在开始写存储名字的函数:

def store(data, full_name):
    names = full_name.split()  # 将名字拆分成一个列表
    if len(names) == 2:  # 如果名字长度为2(只有first和last),插入一个空字符串作为中间名
        names.insert(1, '')
    labels = 'first', 'middle', 'last'  # 将字符串first、middle、last作为元祖存储在labels中,方便一会遍历的时候使用
    for label, name in zip(labels, names):  # 使用zip函数联合标签和名字,对于每一个(lable,name)对,进行如下处理
        people = lookup(data, label, name)  # people为键name对应的值
        if people:			    # 如果people不为空,证明已经存在name这个键了,所以直接把名字添加到这个键下即可	
            people.append(full_name)
        else:				    # 如果people为空,则现在还不存在name这个键,所以以name为键,full_name(想要加入的名字)为值创建一个新的列表
            data[label][name] = [full_name]
之前的添加过程就可以表示为:

MyNames = {}
init(MyNames)
store(MyNames, 'magnus Lie Hetland')
store(MyNames, 'Anne Lie Hetland')
print lookup(MyNames, 'middle', 'Lie')

现在到了我认为这章的重点——参数。为止参数和关键字参数就不做介绍了,我主要想讲一下收集参数。

如果想给函数提供任意多的参数可以向如下这样定义函数:

def print_params(*params):
    print params

调用及结果如下:

print_params('1')
print_params(1, 2, 3)
# 结果
('1',)
(1, 2, 3)
参数前的星号将所有值放置在同一个元祖中。可以说是将一个值收集起来然后使用。

现有如下函数:

def print_params2(title, *params):
    print title
    print params
# 调用
print_params2('Params:', 1, 2, 3)
# 结果
Params:
(1, 2, 3)
星号可以理解为收集其余的位置参数,如果不提供任何参数,params就是个空元祖,输出结果为{}。
但它不能处理关键字参数,如:

# 调用print_params2
print_params2('Params:', p1=1)
# 错误为
TypeError: print_params2() got an unexpected keyword argument 'p1'
如果想要处理关键字操作则需要写两个星(“**“):

def print_params3(**params):
    print params
调用及结果为:

print_params3(x=1, y=2, z=3)
# 结果
{'y': 2, 'x': 1, 'z': 3}
各种参数也可放在一起混合使用:

# 函数
def print_params4(x, y, z=3, *poster, **params):
    print x, y, z
    print poster
    print params
# 调用
print_params4(1, 2, 3, 4, 5, 6, m=7, n=8)
# 结果
1 2 3
(4, 5, 6)
{'m': 7, 'n': 8}

现在如果想一次性存储多个名字时就可以将store改写为:
def store(data, *full_names):
    for full_name in full_names:
        names = full_name.split()
        if len(names) == 2:
            names.insert(1, '')
        labels = 'first', 'middle', 'last'
        for label, name in zip(labels, names):
            people = lookup(data, label, name)
            if people: 
                people.append(full_name)
            else:
                data[label][name] = [full_name]
函数调用就可以写为store(MyNames,‘magnus Lie Hetland'’,‘Anne Lie Hetland’)结果不变。


(现在是3月23日凌晨1点12分,终于为我的Python坑填上了第一把土,没想到第一篇博就写了这么长时间,不知道我还能坚持多久......总之,加油吧!)











 

【智能车Code review】——小S与中S道路判断 基本思想: 找到中线的左拐点和右拐点,并且计算出两点之间的空间距离。通过限制空间距离,分为中S和小S。 注意这种情况:当20行以下的中线斜率比较陡,此时可以通过人为限制设定,将第0行的中线设置为拐点。 if (flag_centre_right_point == 0 && flag_centre_left_point == 1 && parameterB >= 0.5 && centre_left_point[0] >= 33) { . 阅读详情

相关推荐

历年北京理工大学复试专业综合题

。

A place to record sth. 2万+

Python基础教程第六章学习笔记——抽象

6 抽象 介绍如何将语句组织成函数,告诉计算机如何做事(只告诉一次就可以) 还会介绍参数(parameter)和作用域(scope)概念 递归的概念及在程序中的用途 6.1 懒惰即美德 一段代码可能要在多处使用,就可以把这段代码定义为函数,需要的时候直接调用就可以——抽象 fibs = [0, 1] for i in range(8):     fibs.append(fib[-2

youngersteral的博客 1084

保姆级教程:用Python仿真OFDM系统(附抗多径干扰优化方案)

本文提供了一份详细的Python仿真OFDM通信系统教程。通过NumPy和Matplotlib,从二进制比特流开始,逐步构建完整的OFDM系统模型,涵盖IFFT、循环前缀等核心概念。重点探讨了如何对抗多径干扰,并提供了优化方案,通过误码率曲线直观对比性能,适合通信工程学习和物理层开发实践。

weixin_29230649的博客 232

Python基础教程(第2版)第六章 抽象

Python基础教程(第2版)第六章 抽象

41634454的博客 337

谷粒商城学习笔记-15-数据库初始化

这一节的主要内容是把创建对应的数据库和数据库表。

epitomizelu的专栏 1438

Comfy UI实战:如何用Checkpoint和Lora打造超写实人像(附完整工作流)

本文详细介绍了如何利用Comfy UI结合Checkpoint基础模型和Lora微调模型,打造超写实人像生成系统。从核心模型选择、工作流架构设计到提示词工程和参数优化,提供了一套完整的实战指南,帮助创作者提升AI绘画的专业水准和效率。

weixin_29032489的博客 462

函数——使用字典存储查找人名

一个可callable的对象是指可以被调用执行的对象,并且可以传入参数。

weixin_55731208的博客 591

Qt6导入QtChart绘制图表(添加组件)

我在按照大佬们的说明添加QtChart时发现,我的电脑上并不能正确的添加QtChart并编译通过,所以在综合了两位大佬的说明又自己探索了一番后,正确编译通过,分享出来,以便同志们节省一些时间。

Nuaa0719301zyx的博客 2953

python3.4在windows系统上使用xlwings操作Excel出现FullName错误解决方案

python语言虽好,也号称跨平台,由于python使用时,往往需要很多内裤,东一个西一个,就像犀利哥身上的衣服,打满了补丁,常常遇到各种莫名其妙的八哥,很是令人头疼。最近我需要用python操作excel,听说xlwings可以通过python让excel插上双翼,据说比VBA还要简易,我看了一下xlwings的语法,确实比VBA要简洁许多,于是开始试用,其它各项操作还好,但是遇到一个非常重要的...

MAILLIBIN的专栏 6486

符合DO-178C和DO-331的机载软件研制体系

DO-178C的核心要求软件开发生命周期:DO-178C定义了软件开发的生命周期过程,包括需求获取、设计、实现、验证和确认等。它为机载软件开发提供了一套系统化的指导,确保在开发过程中考虑安全性和可靠性。安全等级(DAL):根据系统的重要性,DO-178C将软件划分为不同的开发保障等级(DAL A到E),DAL A的要求最为严格,适用于关键安全功能,而DAL E的要求较低,适用于非关键功能。DO-178C在非基于模型软件开发中的应用。

qq_41854911的博客 980

QGraphicsView通过鼠标操作来绘制图元

在Visio和MindManager等类似的图元操作软件中,很多时候我们会通过鼠标操作来添加自定义的图元。这里就介绍一下如何在QT的图形视图框架中通过鼠标绘制来添加图元。

yang1fei2的博客 3576

Python学习之旅--函数

1,函数介绍 目的: 函数的作用 """ 函数的作用: 1, 代码复用性提高了 2, 可维护性提高 """ 2,函数定义 目的: 知道函数的组成, 定义, 调用 操作流程: """ 函数定义: def 函数名(参数1:类型1, 参数2:类型2) -> 声明返回值类型 ... return 返回值 函数组成说明: 1, def 函数名需要遵守标识符规则; 必须 2, 参数(形式参数); 不必须 3,

qq_45661125的博客 367

二叉树三种遍历(动态图+代码深入理解)

文章目录一、图示理解(图片是一位前辈所留,在此感谢)1、先序遍历2、中序遍历3、后序遍历4、层序遍历二、深入理解三种遍历让我们来理解一下绕着外围跑一整圈的真正含义是:遍历所有结点时,都先往左孩子走,再往右孩子走。下面做一个实例吧三、代码实现加以理解以下是C语言全部代码实现下面是同样的例子用c++实现,大家可以参考一下 一、图示理解(图片是一位前辈所留,在此感谢) 1、先序遍历 先序遍历可以想象成,...

流楚丶格念的博客 3万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

python 函数进阶_Python学习之旅-10 函数进阶

一、函数参数--动态传参1、动态接收位置参数在参数位置编写 * 表示接收任意内容动态接收参数的时候要注意:动态参数必须在位置参数后面这时程序运行会报错。因为前面传递进去的所有位置参数都被 *food接收了。a和b永远接收不到参数2、动态接收关键字参数在python中可以动态的接收参数,但是 * 这种情况只能接收位置参数无法接收关键字参数。在python中使用 ** 来接收动态关键字参数最终顺序:位...

weixin_42682925的博客 122

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

python 子函数返回母函数结果_我的Python学习之旅12

2017.2.1220.Globa函数作用就是修改全局变量。global函数内嵌函数函数内嵌闭包闭包是一种满足特定要求的内嵌函数。这里我们还是将内嵌函数称为子函数,其外部的函数称为母函数,则当子函数体内有对母函数体内定义的变量的引用时我们称这个子函数为一个闭包。但当母函数和其闭包都定义了参数时,由于在母函数体外是无法直接对闭包进行函数调用的,为了能够实现对闭包的调用,需要在母函数内增加一条返回闭包...

weixin_39581972的博客 354

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

学习之旅6-python函数(一)

python函数1、python函数1.1 函数基础1.2、函数参数1.3、函数返回值1.4、函数嵌套调用2、 引入 :基本上所有的高级语言都支持函数,Python也不例外。Python不但能非常灵活地定义函数,而且本身内置了很多有用的函数,可以直接调用。 函数就是最基本的一种代码抽象的方式 1、python函数 1.1 函数基础 什么是函数: 函数其实就是一系列代码封装组合,在程序中可以多次运行,一般来说函数是完成一个具体的独立功能。 函数的优点: 简化复杂冗余的代码块,整体代码结构清晰,使问题局部

Mrzhengdan的博客 212

学习之旅7-python函数(二)

python函数(二)1、关于变量1.1、局部变量1.2、全局变量 回顾: 函数的类型包括哪些? 1.无参数,无返回值,一般用于提示信息打印。 2.无参数,有返回值,多用于数据采集中,比如获取系统信息。 3.有参数,无返回值,多用在设置某些不需要返回值的参数设置。 4.有参数,有返回值,一般是计算型的,需要参数,最终也要返回结果。 1、关于变量 1.1、局部变量 局部变量: 就是定义在函数内部的变量【作用域仅限于在该函数中使用,跳出该函数体,不再生效】 不同的函数可以定义相同的局部变量,互不影响。 局

Mrzhengdan的博客 358

Python学习之旅:入门阶段(八)函数

简单来说,函数就是一段有特定功能的代码块。我们可以把它想象成一个加工厂,给它输入一些原材料(也就是数据),经过加工后,它会输出一个结果。在 Python 中,我们使用def关键字来定义函数。在这段代码中,def表示我们要定义一个函数,是函数的名字,就像给这个 “小助手” 起了个名字,方便我们调用它。(a, b)是函数的参数,也就是我们给这个 “加工厂” 提供的原材料,这里需要传入两个数字。函数体中的是具体的加工过程,也就是把传入的两个数字相加,最后表示把加工后的结果返回给调用这个函数的地方。

happycell188的博客 594

《Python零基础快乐学习之旅》学习笔记11——函数设计

文章目录第11章 函数设计11.1 Python函数基本概念11.1.1 函数的定义11.1.2 没有输入参数没有返回值的函数11.2 函数的参数设计11.2.1 传递一个参数11.2.2 多个参数传递11.2.3 参数默认值的处理11.3 函数返回值11.3.1 返回None11.3.2 简单返回数值数据11.3.3 返回多种数据11.3.4 简单返回字符串数据11.4 调用函数时参数为列表11.5 传递任意数量的参数11.5.1 传递并处理任意数量的参数11.5.2 设计含有一般参数与任意数量参数的函数

梦里逆天的博客 1059

【我的Python学习之旅】python语言基础 之函数和模块(七)

Python语言中包括许多内置的函数,例如printo).maxd)等用户也可以自定文函数是可以重复调用的代码块,使用函教可以有效地组织代码,提高代码的重用率。 函数的创建和调用 Python使用复合语句def创建函数对象,其语法格式如下, def函数名([形参列表]) : 函数体 函数的调用格式如下。 函数名([实参列表]) 在创建函数时可以声明函数的参数,即形式参数,简称形参;在调用函数时需要...

kiku 1425

Python学习之旅(核心编程基础篇009函数)

Python学习之旅Python核心编程基础篇2021.01.04一、函数的返回值 Python核心编程基础篇2021.01.04 指导教师:逻辑教育讲师Amy 一、函数的返回值

qq_36195536的博客 165

python 函数递归调用_Python的学习之旅———函数的递归调用 匿名函数 内置函数...

一 函数的递归调用函数递归调用:在调用一个函数的过程中直接或间接地调用该函数本身,称之为函数的递归调用.递归分为两个重要的阶段:递推+回溯总结递归调用:1:进入下一次递归时,问题的规模必须降低2:递归调用必须要有一个明确的结束条件3:在python中没有尾递归优化,递归调用的效率就是不高二匿名函数匿名函数即没有绑定名字的函数,没有绑定名字,意味着只能用一次就会被回收所以说匿名函数的应用场景就是:...

weixin_39766014的博客 301

Python的学习之旅———函数的递归调用 匿名函数 内置函数

一 函数的递归调用 函数递归调用:在调用一个函数的过程中直接或间接地调用该函数本身,称之为函数的递归调用. 递归分为两个重要的阶段:递推+回溯 总结递归调用:1:进入下一次递归时,问题的规模必须降低2:递归调用必须要有一个明确的结束条件3:在python中没有尾递归优化,递归调用的效率就是不高 二匿名函数 匿名函数即没有绑定名字的函数,没有绑定名字,意味着只能用一次就会被回...

weixin_30343157的博客 93

python中ls函数_Python学习之旅:使用Python实现Linux中的ls命令

一、写在前面在 Linux 中 ls 是一个使用频率非常高的命令了,可选的参数也有很多, 算是一条不得不掌握的命令。Python 作为一门简单易学的语言,被很多人认为是不需要认真学的,或者只是随便调个库就行了,那可就真是小瞧 Python 了。那这次我就要试着用 Python 来实现一下 Linux 中的 ls 命令, 小小地证明下 Python 的不简单!二、ls简介Linux ls 命令用于显...

weixin_40002009的博客 2372

Python学习之旅(核心编程基础篇010函数下)*

Python学习之旅Python核心编程基础篇2021.01.06一、闭包二、装饰器三、推导式(高级语法)四、作业 Python核心编程基础篇2021.01.06 指导教师:逻辑教育讲师Amy 一、闭包 二、装饰器 三、推导式(高级语法) 四、作业 作业一 作业二 作业三 ...

qq_36195536的博客 316
上一篇: 新的开始
下一篇: 字符串调整
yang_9613
博客等级 码龄10年 1粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值