四、 Python 函数
1. 什么是函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。
此段引用自菜鸟教程 https://www.runoob.com/python3/python3-function.html
函数语法:
def 函数名(参数列表):
函数体
2. 常见函数
3. 如何自己定义一个函数
#定义函数
def test_print():
print('hi')
if __name__ == '__main__':
#引用函数
test_print()
4. 定义一个带参数的函数
#定义函数
def test_print(name):
print(name)
if __name__ == '__main__':
#引用函数
test_print('hi')
5. 定义一个默认参数
#定义函数
def test_print(name='hi'):
print(name)
if __name__ == '__main__':
#引用函数
test_print()
6. 定义一个位置参数
def test_add(a,b=8,c=2):
print(a+b+c)
if __name__ == '__main__':
test_add(9)
7. 返回值
# 如果想拿到函数的运行成果 必须return 并且 return后边的语句都不会被执行
def test_add(a,b=8,c=2):
num = a+b+c
return num
if __name__ == '__main__':
res = test_add(1)
print(res)
8. 定义一个动态参数的函数
# 动态参数
# 不知道传几个参数的时候就用 就用这个动态参数
def test_add(*args):
# 打印结果是(1, 3, 9) args的值是元组类型
print(args)
sum = 0
# 遍历元组 得到每个值
for item in args:
# 将遍历的每个值 赋值给sum
sum+= item
return sum
if __name__ == '__main__':
sum = test_add(1,3,9)
print(sum)
9. 定义一个带有关键字的动态参数
def tests(**kwargs):
print(kwargs)
#kwargs返回的是一个字典 {'q': 1, 'o': 0}
if __name__ == '__main__':
tests(q=1,o=0)
#打印结果
{'q': 1, 'o': 0}
10. 全局变量和局部变量
全局变量: 在整个py文件中声明 全局都可以访问 全局变量的名字一般会用大写字母标志
局部变量: 在某个函数中声明 只能在此函数内调用
1). 全局变量在函数内部和外部都可以调用
2).全局变量和局部变量名一样会优先调用局部变量
Q = 10
def tests():
num = 1
print('全局变量Q的值为:',Q)
print('全局变量num的值为:',num)
if __name__ == '__main__':
tests()
#结果
全局变量Q的值为: 10
全局变量num的值为: 1
3)想在局部变量中改变全局变量的值
Q = 10
def tests():
num = 1
global Q #改变全局变量的值
Q = 78
print('更改全局变量Q的值为:',Q)
print('全局变量num的值为:',num)
if __name__ == '__main__':
tests()
#结果
全局变量Q的值为: 78
全局变量num的值为: 1
4) 全局变量如果是列表 在局部变量中使用append()函数添加值
list_1 = [1,5,'h']
def tests():
list_1.append('wo')
return list_1
if __name__ == '__main__':
print(tests())
#结果
[1, 5, 'h', 'wo']