使用函数目的:降低编程难度和代码重用
函数是一种功能抽象,利用它可以将一个复杂的大问题分解成一系列简单的小问题,然后将小问题继续划分成更小的问题,当问题细化到足够简单时,解决完小问题,大问题也就解决了。
函数可以在一个程序的多个位置使用,也可以用于多个程序,当需要修改代码时,只需要在函数中修改一次,所有调用位置的功能都更新了,这种代码重用减少了代码行数和降低了代码维护难度。
1. 声明和调用函数
1.1 自定义函数
def 函数名(参数列表)
函数体
参数列表可以没有参数,但是要保留()
def PrintWelcom():
print("欢迎使用python")
定义一个函数sum(),用于计算并打印两个参数的和
def sum(num1,num2):
print(num1+num2)
1.2 调用函数
先定义函数,再调用函数。可以直接使用函数名来调用函数。
def PrintWelcom():
print("欢迎使用python")
PrintWelcom()
def sum(num1,num2):
print(num1+num2)
sum(1,2)
1.3 变量的作用域
在函数中定义的变量叫局部变量,在函数体外定义的变量是全局变量。
a = 100 #全局变量
def setNumber():
a = 10 #局部变量
print(a) #打印局部变量
setNumber()
print(a) #打印全局变量
#运行结果:10 100
2. 参数与返回值
2.1 在函数中传递参数
2.1.1 普通参数
值传递:调用函数时将常量或变量的值(实参)传递给函数的参数(形参)
值传递的特点:实参和形参分别存储在各自的内存空间中,因此,在函数内部改变形参的值时,实参的值一般是不会改变的。
def func(num):
num += 1
a = 10
func(a)
print(a)
#运行结果:10
2.1.2 列表和字典参数
注意:在使用列表或字典作为函数参数时,在函数内部对列表或字典的元素所做的操作会影响调用函数的实参。
def sum(list): #定义一个求和函数
total = 0 #初始化变量
for x in range(len(list)):
print(list[x],"+)
total += list[x]
print("=",total)
list = [15,25,35,45]
sum(list)
def print_dict(dict):
for(k,v) in dict.items(): #items()函数返回字典的所有键值对
print("dict[%s]="%k,v)
dict = {'a':'apple','b':'banana','g':'grape','o':'orange'}
print_dict(dict)
'''运行结果:
dict[a]=apple
dict[b]=banana
dict[g]=grape
dict[o]=orange'''
2.1.3 参数的默认值
可以在定义函数时,直接在参数后面使用“=”为其设置默认值。在调用函数时可以不指定拥有默认值的参数的值,此时在函数体中以默认值作为该参数。
注意:有默认值的参数只能出现在没有默认值的参数的后面。
2.1.4 可变长参数
python 还支持可长度的参数列表,可变长参数可以是元组或字典。
2.1.4.1 当参数以*开头时,表示可变长参数被视为一个元组,格式:def func(*t);
在func()函数中t被视为一个元组,使用t[index]获取每一个可变长参数。
可以使用任意多个实参调用func()函数,例如:func(1,2,3,4)
def func1(*t)
print("可变长参数数量如下:")
print(len(t))
print("依次为:")
for x in range(len(t))
print(t[x])
func1(1,2,3,4)
'''运行结果:
可变长参数数量如下:
4
依次为:
1
2
3
4'''
2.1.4.2 当参数以**开头时,表示可变长参数被视为一个字典,格式:def func(**t)
def sum(**t):
print(t)
sum(a=1,b=2,c=3)
#运行结果:{'a':1,'b':2,'c':3}
2.2 函数的返回值
可以为函数指定一个返回值,返回值可以是任何数据类型,使用return语句可以返回函数值,并退出函数。
def sum(num1,num2):
return num1+num2
print(sum(1,3))
#运行结果:4
也可以把列表或字典作为返回值。
def filter_even(list): #参数为列表的函数
list1 = [] #创建空列表来存放
for i in range(len(list)): #遍历列表
if list[i]%2==0: #判断是否为偶数
list1.append(list[i]) #如果为偶数,则添加到空列表里
return list1 #返回元素全是偶数的列表
list = [1,2,3,4,5,6,7,8,9,10]
list2 = filter_even(list) #调用函数
print(list2) #打印偶数列表
#运行结果:[2,4,6,8,10]
3. python内置函数
3.1 数学运算函数
3.2 字符串处理函数
3.2.1 字符串中字符大小写的变换
3.2.2 指定输出字符串时的对齐方式
3.2.3 搜索和替换
3.2.4 分割和组合
3.2.5 字符串判断相关