【有书共读05】《python编程》读书笔记06
一、定义函数
在python中使用关键字def来定义一个函数,函数名必不可少,函数名后面的小括号也必不可少!
#coding:utf-8 def greet(): print("Hello everyone!") #显示简单的语句
1、向函数传递信息
通过函数中的“()”,可以向函数传递信息(或者说是值),也就是我们所说的参数,函数通过对参数值一定的操作,得到我们想要的的结果。
#coding:utf-8 def greet(user_name): #参数是user_name print("Hello everyone,I am "+user_name+".") #显示简单的语句 greet("Xiao Ming") #结果应为 Hello everyone,I am Xiao Ming.
2、实参和形参
(如果看完标题就秒懂,那么建议跳过)
形参是形式参数,是函数实现其功能所需的一种信息。
实参就是实际参数,是真正参与函数运算的值。
(这个在其他语言的函数都有,大家想必不会陌生)
二、传递实参
在python中,传递实参有两种方式,一种是位置实参,另一种是关键字实参。
1、位置实参
#coding:utf-8 def introduction(user_name,thing): #参数是user_name print('I am ' + user_name +', I like ' + thing + '.') #显示简单的语句 introduction("Xiao Ming",'football')
在这个例子中,"Xiao Ming"将值传递给user_name ,'football'将值传递给thing。
如果两个实参的位置颠倒,你就会发现程序可能会出错(当然,在这个例子中只会改变结果,没有出现编译错误)
位置实参一定要注意参数的位置,位置放错,程序很容易出错!
2、关键字实参
关键字实参直接指定实参把值传递给形参,即使顺序出错也没事
#coding:utf-8 def introduction(user_name,thing): print('I am ' + user_name +', I like ' + thing + '.') introduction(user_name = "Xiao Ming",thing = 'football')
注意:使用关键字实参时,一定要准确地指定函数定义中的形参名。
3、默认值
在定义函数时,可以给函数形参指定默认值。但是,没有默认值的参数一定要放在有默认值参数的前面,否则会出现语法错误(和C++一样的规则)
#coding:utf-8 def introduction(user_name,thing='dog'): print('I am ' + user_name +', I like ' + thing + '.') introduction('Sandy') introduction('Nike','cat') introduction(thing = 'monkey',user_name = 'John')
参数默认值对于实参传递的两种方式的规则并没有任何影响。
三、返回值
我们调用函数期望其处理一些数据,更多时候我们更希望获得最终结果,而不是仅仅将其打印下,这时候我们就需要函数返回给我们一个值,这就是函数返回值。
函数返回值借助return语句来实现这个功能。
1、返回一个简单值
#coding:utf-8 def introduction(user_name,thing='dog'): s='I am ' + user_name +', I like ' + thing + '.' return s s=introduction('Sandy') print(s)
注意:函数的返回值类型是不限定的,可以返回整数、浮点数等数据类型,也可以返回列表、字典等数据结构类型。
2、返回多个值(神级功能!有没有!!!)
可以有多个返回值,可以说是python一个极大的有点,十分方便操作。
(作为经常使用C++的学生党给跪了,简直没有太方便!)
def introduction(user_name,thing_1='dog',thing_2='cat'): s_1='I am ' + user_name +', I like ' + thing_1 + '.' s_2='I am ' + user_name +", I don't like " + thing_2 + '.' return s_1,s_2 s1,s2=introduction('Sandy') print(s1) print(s2)
#Python#