前言
为了减少重复代码出现的次数,减少冗余,因此出现了函数;函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。接下来主要介绍函数的定义以及使用。
提示:以下是本篇文章正文内容,下面案例可供参考
一、函数的定义
"""
函数格式
def 函数名():
函数体
"""
# 无参数无返回值的函数
def f1():
print("我是f1函数")
# 有参数无返回值的函数
def f2(num):
print("我是f2函数")
# 无参数有返回值的函数
def f3():
print("我是f3函数")
return 1
# 有参数有返回值的函数
def f4(num):
print("我是f4函数")
return num + 1
def f5():
pass # 为了函数结构完整性添加pass,常用作占位语句
二、使用方法
1.函数的参数
"""
函数的参数
当函数调用时,可向函数传参
**kwargs 字典不定长 接收键值对形式参数,例如: a = 1
*args 元组不定长 接收剩下的
"""
def f6(*args, **kwargs):
print(args)
print(kwargs)
# 调用函数
f6(1, 2, 3, {"name": "Pyhton", "age":60}, [1, 2, 3], a = 1, b = 6)
# 执行结果:
(1, 2, 3, {'name': 'Pyhton', 'age': 60}, [1, 2, 3])
{'a': 1, 'b': 6}
2.函数的作用域
函数内部的变量,只能作用于函数或循环体内部,称为局部变量; 在函数外部定义的变量,称为全局变量。def f7():
num = 20 # num为局部变量,作用于函数内
print(num)
num = 10 # 全局变量,作用于全局
print(num)
f7()
print(num)
10
20
10
global 声明全局变量 针对不可变数据,必须使用global才可以修改
可变数据:列表、字典、集合
不可变数据:数值、字符串、元组
3.闭包
闭包:外层函数返回内层函数的函数体
def f8():
def f9():
print("我是内部函数")
return f9
f = f8()
f()
# 结果:
我是内部函数
4.函数的递归调用
函数的递归:在函数内部调用该函数
# 实例:利用递归实现1+2+3+……+n的和
def f10(i):
if i == 1:
return 1
return i + f10(i-1)
print(f10(10))
print(f10(20))
print(f10(100))
55
210
5050
5.匿名函数
匿名函数 lambda 自带return功能
f = lambda x: x+1 # 传参x,返回x+1
# 实例:根据列表中每个元组内的第二个元素排序
list1 = [(3, 2, 1, 4), (2, 1, 5, 7), (6, 7, 1, 8), (4, 5, 1, 0)]
list1.sort(key=lambda x: x[1])
print(list1)
[(2, 1, 5, 7), (3, 2, 1, 4), (4, 5, 1, 0), (6, 7, 1, 8)]
三、一些小练习
# 判断用户输入是否是一个手机号
while True:
tel = input("请输入手机号:")
if tel.isdigit() and len(tel) == 11 and tel[0] == '1' :
print(tel)
break
else:
print("请输入正确手机号!")
continue
# 判断是否为素数
def isPrime(num):
if num == 2:
return True
for i in range(2, num-1):
if num % i != 0:
continue
else:
return False
return True
大家可以自己练一练!