Python函数的理解使用
1.函数理解
1.1定义函数
在Python中函数需要使用关键“def”来定义。
示例:
def myname():
print("小王同学")
myname()
输出:
小王同学
代码逻辑解释:第一步定义函数def加函数名后跟括号;调用函数最后一行函数名加括号。
1.2函数的返回值
使用return热闹语句时,参数在函数中产生返回值。
def shuxue(x):
return 6 * x
print(shuxue(3))
print(shuxue(5))
print(shuxue(9))
输出:
18
30
54
1.3pass语句
函数定义不能为空,如果有需求有一个定义没有内容的函数,需要写入pass语句防止报错。
示例:
def myfunction():
pass
2.函数的参数
2.1参数的理解
信息可以通过参数媒介传递给函数。参数在函数名后的括号内,需要用逗号将参数隔开。
示例:
def myname(name):
print(name + " 小王")
myname("憨憨")
myname("王帅哥")
输出:
憨憨 小王
王帅哥 小王
2.2形参和实参
形参:调用该参数没有赋值;
实参:调用函数时就已经给参数赋值;
注意:参数的名字可以随意命名。
区分实参和形参
def sun1(a,b):
s=a+b
return s
x,y=3,20
print("x+y=",sun1(x,y))
代码解释:其中a,b是形参;x,y是实参。
2.3参数数量
定义函数时,函数的参数个数并不限制,可以有多个,也可以有一个。
必须使用正确数量的参数调用函数。如果函数中需要有两个,则必须使用两个参数调用函数需要两个参数,数量上一模一样。
示例:
def myname(fname, lname):
print(fname + " " + lname)
myname("小王", "同志")
输出:
小王 同志
2.4关键字参数
定义:如果在调用函数的时候,使用参数相同的名字传递参数,这种就被称为:关键字参数。
def store(food,price):
if food=='bread':
return price*0.8
if food=='cheese':
return price*0.5
else:
return 0
str=store(price=20,food='cheese')
print("您选择的价格折后是",str)
输入:
您选择的价格折后是 10.0
解释:food就是关键字参数,使用相同名字传递参数。
2.5不定长参数
如果对传递给函数的参数数量不确定,就可以在参数名称前加一个*。这样的话,该函数就可以接受一个参数组(数量不限的参数)。
第一个示例:
def myname(*xinxi):
print("帅哥 " + xinxi[1])
myname("名字", "性别", "家庭住址")
输出:
帅哥 性别
第二个示例:
def myname(*xinxi):
print("帅哥 " + xinxi[0])
myname("名字", "性别", "家庭住址")
输出:
帅哥 名字
第三个示例:
def myname(*xinxi):
print("帅哥 " + xinxi[2])
myname("名字", "性别", "家庭住址")
输出:
帅哥 家庭住址
以上三个示例便于理解*的作用。
2.6默认值参数
在定义函数时,可以直接为函数的参数赋值设置成默认状态。
示例:
def my(country = "憨憨"):
print("小王" + country)
my()
输出:
小王憨憨
2.7列表作为参数传递
如定义一个表,将其传递给函数时仍为一个表的形式存在。
示例:
def shuiguo(food):
for x in food:
print(x)
fruits = ["苹果", "香蕉", "葡萄","哈密瓜"]
shuiguo(fruits)
输出:
苹果
香蕉
葡萄
哈密瓜
3.全局变量和局部变量(global)
3.1全局变量,局部变量
全局变量:指的是在整个程序的执行过程中都有效的变量。(定义在函数之外的变量)
局部变量:就是定义在一个函数体内部的变量。
a = 0
num = 0
def test():
a = 1
num = a + 2
print(num)
test()
print(num)
输出:
3
0
解释:num就是全局变量,a等于零到函数内部重新赋予a等于一个新的值。所以寒素外部num等于0,test函数中的就是局部变量。
3.2global全局变量
global的作用:就是向程序宣告,用它定义的变量就是全局变量不是局部变量。
示例:
x=0
print(x)
def my():
global x
x=1
print(x)
my()
print(x)
输出:
0
1
1
解释:关键字global将函数内部的局部变量x改为全局变量。
4.匿名函数
使用lambda创建匿名函数。一个匿名函数可以包含任意数量的参数,但只有一个表达式。
x = lambda a, b, c : a + b + c
print(x(5, 6, 2))
输出:
13
匿名函数优点:可以省去定义函数的过程,让代码更加简洁;使用lambda不需要考虑函数命名的问题;代码更加容易理解。
(理解难度因人而异)