文章目录
常用的内置函数
# 常用的内置函数:max,min, sum, divmod
# 函数必须用输入和输出
mxa_num = max(1, 2, 3)
print(mxa_num)
1.如何创建函数?
# 1.如何创建函数?定义函数,函数内容并不会执行
# 函数的输入 专业叫: 参数 , 函数的输出 专业叫:返回值
# 重点:
# - 形参: 形式参数,并不是真实的值(定义函数时的参数)
# - 实参: 实际参数,是真是的值(调用函数时的参数)
def get_max(num1, num2):
result = num1 if num1 > num2 else num2
return result
# 2. 如何调用函数?
max_num = get_max(30, 80)
print(max_num)
函数出现提高写代码的效率
函数核心的三个点:
输入
输出
如何实现
空函数
函数值(形参值)
1.降低编程的难度
2.代码的复用
变量的作用域
1.全局变量:
全局生效的变量。函数外面的变量
def login():
print(name)
name = 'admin'
login()
name的赋值出现在函数外,因此为全局变量
2.局部变量:
局部生效的变量。函数内部的变量
def logout():
age = 19
logout()
print(age)
由于age是在函数内部定义的,故为局部变量。此时在打印age时会出现报错。
3.函数内部修改全局变量
# 1) money是局部变量还是全局变量? 全局变量
# 2)如果在函数中修改全局变量,不能直接修改,需要用global关键字声明修改的变量是全局变量。
def hello():
global money
money += 1
users.append('user1')
print(money, users)
money = 100 # 不可变的数据类型
users = [] #可变的数据类型
hello()
注:可变的数据类型不用声明
函数参数的传递
实参和形参
实参:函数调用时的参数
形参:函数定义时的参数
参数的检查和函数帮助的编写
函数的帮助
这种方式定义函数时,用户在输入数据时,会提醒输入数据的类型
def get_max(num1:int , num2:int )->int:
函数在不明白其用法的时候,可以通过查看帮助,三引号引起来的部分就为帮助的内容(出现在函数内部)
"""
求两数的最大值
:param num1: 整型数1
:param num2: 整型数2
"""
效果展示
# 2. 参数检查
def get_max(num1:int , num2:int )->int:
"""
求两数的最大值
:param num1: 整型数1
:param num2: 整型数2
"""
return num1 if num1 > num2 else num2
result = get_max(1,2)
print(result)
print(help(get_max))
参数检查:isinstanc
# 2. 参数检查:isinstance(var, int)判断变量是否为整型int
def get_max(num1:int , num2:int )->int:
"""
求两数的最大值
:param num1: 整型数1
:param num2: 整型数2
"""
if isinstance(num1, int) and isinstance(num2, int):
return num1 if num1 > num2 else num2
else:
return 0
result = get_max(2.1 ,2)
print(result)
num1的数据类型为float,此时的返回值为0
函数参数的类型
1. 必选参数:
必须要传递的参数
# 1. 必选参数:必须要传递的参数
def get_max(num1:int , num2:int )->int:
return num1 if num1 > num2 else num2
result = get_max(3 ,2)
print(result)
2.默认参数:
可传可不传的参数
#2.默认参数:可传可不传的参数
def pow(x, y=3):
return x**y
result = pow(3)
print(result)
result = pow(2, 4)
print(result)
3.可变参数:
参数的个数会变化,可以传0, 1, 2, 3, … n
# 3.可变参数: 参数的个数会变化,可以传0, 1, 2, 3, ...... n
# args 是元组
# args=arguments参数
def my_sum(*args):
return sum(args)
result =my_sum(4, 5, 6)
print(result)
4.关键字参数:
字典的形式进行存储
def enroll(name, age=18, **kwargs):
print(f"""
入学信息
1.姓名:{name}
2.年龄:{age}
3.其他:{kwargs}
"""
)
enroll('张三', country='china', english='GRE', sports=['篮球', '羽毛球'])