python带参数的函数_python 学习 ---函数(带参数)

函数式编程最重要的是增强代码的重用性和可读性

1 def 函数名(参数):

2

3 ...

4 函数体

5 ...

函数的定义主要有如下要点:

def:表示函数的关键字

函数名:函数的名称,日后根据函数名调用函数

函数体:函数中进行一系列的逻辑计算,如:发送邮件、计算出 [11,22,38,888,2]中的最大数等...

参数:为函数体提供数据

返回值:当函数执行完毕后,可以给调用者返回数据。

以上要点中,比较重要有参数和返回值:

1、返回值

函数是一个功能块,该功能到底执行成功与否,需要通过返回值来告知调用者。

def 发送短信():

发送短信的代码...

if 发送成功:

return True

else:

return False

while True:

# 每次执行发送短信函数,都会将返回值自动赋值给result

# 之后,可以根据result来写日志,或重发等操作

result = 发送短信()

if result == False:

记录日志,短信发送失败...

2.参数

函数的有三中不同的参数:

普通参数

默认参数

动态参数

普通参数:

普通参数的传递并没有个数和数据类型的限制,可以传递字符串,数字,列表和字典。也不限定个数,需要注意的是:函数需要多少参数,调用的时候就要按照它定义时的顺序和数据类型传递过去。

1 def argtest(name,age,fruit_lst,hobby_dic):

2 print 'Hello,me name is %s,i\'m %d year\'s old'%(name,age)

3 print 'My favorite fruits are : %s'%'.'.join(fruit_lst)

4 print 'My hobbies:'

5 for hobby in hobby_dic:

6 print '\t%s'%hobby_dic[hobby]

7

8 lst = ['apple','banana','watermelon']

9 dic = {'hobby one':'teaism','hobby two':'sing'}

10 argtest('Eva_J',18,lst,dic)输出的内容:Hello,me name is Eva_J,i'm 18 year's oldMy favorite fruits are : apple.banana.watermelonMy hobbies: teaism sing

默认参数:默认参数是给参数加上一个默认的值,但我们调用函数的时候,如果传递了这个参数,那么使用我们传递过来的值;如果不传则使用默认的值,默认参数可以有多个,但是必须放在所有参数的最后。当我们有多个默认参数的时候,调用函数的时候可以使用参数名指定其中的某一个参数,以保证参数能准确的传递给被调用的函数。

1 def argvtest(argv1,argv2 = 'aaa',argv3 = 'bbb'):

2 print 'argv1:',argv1

3 print 'argv2:',argv2

4 print 'argv3:',argv3

5

6 argvtest('a1',argv3 = 'a2')输出的内容:argv1: a1argv2: aaaargv3: a2

动态参数:def func(*args) 接受多个参数,内部自动构造元组,序列前加*,避免内部构造元组def func(**kwargs) 接收多个参数,内部自动构造字典,序列前加**,直接传递字典def func(*args,**kwargs):接受多个参数,既可以自动构造元组,又可以自动构造字典。

下图从左至右展示了自动构造元组,自动构造字典及前两者综合的参数传递方式:

你可能感兴趣的:(python带参数的函数)