Python-函数
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 print("----函数学习----") 4 """ 5 函数:将一段具有独立功能的代码块整合到一个整体并命名。在需要的位置调用名称即可完成对应的需求。函数可不带参数 6 定义函数: 7 def 函数名(参数): 8 代码1 9 代码2 10 ... 11 调用函数(必须先定义后使用): 12 函数名(参数) 13 """ 14 print('函数的体验:') 15 16 17 def sel_fun(): # 注意:函数必须先定义后调用 18 print('Hello jun', '测试函数') 19 20 21 sel_fun() # 调用函数。注意:函数只定义,不会执行函数体内的代码 22 23 24 # 带参函数的用法 25 def add_num1(num1, num2): # num1和num2叫做形参 26 result = num1 + num2 27 print(result) 28 29 30 add_num1(10, 20) # 10和20叫做实参 31 32 33 # 函数返回值的作用 34 def sum_num2(a, b): 35 return a + b 36 print('ok') 37 38 39 num = sum_num2(10, 30) # 注意:并未打印OK。说明:遇到return退出当前函数 40 print(num) 41 42 # 函数的说明文档 43 help(len) # help函数(函数名):查看函数的说明文档 44 45 46 def hell(a, b): 47 """ 48 这是函数的说明文档 49 :param a: 参数1 50 :param b: 参数2 51 :return: 返回值 52 """ # 这是hell()函数的说明文档""" 53 print('代码模块。。。') 54 return a + b 55 56 57 help(hell) # 查看函数的说明文档 58 59 60 # 函数的嵌套调用 61 def testa(): 62 print("这是函数testa") 63 64 65 def testb(): 66 testa() 67 print("这是函数testb") 68 69 70 testb() 71 72 print('函数的高阶知识') 73 74 75 # 变量的作用域:(局部变量)变量的定义在函数体的内部,只在函数体内部生效 76 def run(): 77 testA = 'hello' # 定义局部变量 78 print(testA) 79 80 81 run() # print(testA)不能訪問 82 # 变量的作用域:(全局变量)函数体内和外都能访问这个变量 83 testB = 'hell' # 定义全局变量 84 85 86 def run1(): 87 print(testB) 88 89 90 print(run1()) 91 92 # 修改全局变量 global 变量名 93 i = 100 94 95 96 def testA1(): 97 print(i) 98 99 100 def testB1(): 101 i = 200 102 print(i) 103 104 105 def testC1(): 106 global i # 声明A是全局变量 107 i = 300 # 修改全局变量 108 109 110 testA1() 111 testB1() 112 print(i) 113 testC1() 114 print(i) 115 116 117 # 函数的返回值 118 def return_num(): 119 return 1, 2 120 return 2 # 不会返回这个,程序遇见return后下方代码不再执行 121 122 123 result = return_num() 124 print(result) 125 126 127 # 关键字参数,用键=值得形式加以指定 128 def t1(name, age, gender): 129 print(f'你的名字是{name},年龄是{age},性别是{gender}') 130 131 132 t1('刘三', 26, '女') # 正常传参,参数顺序一致 133 t1('刘三', '女', 26) # 打印异常,年龄就成女,性别就是26 134 t1('刘四', gender='女', age=18) 135 136 137 # 缺省参数,默认参数。提供默认值。注意:所有参数必须出现在默认参数前 138 def t2(name, age, gender='男', ipaddr='127.0.0.1'): 139 print(f'姓名是{name},年龄是{age},性别是{gender},地址是{ipaddr}') 140 141 142 t2('王', 18, '女') 143 144 145 # 不定长参数,也叫可变参数。不确定调用时传递多少个参数 146 def t3(*args): 147 print(args) 148 149 150 t3('Tom') 151 t3('Tom', 18) # 传进的参数都会被args收集,根据位置合并为一个元组(tuple) 152 153 154 def t4(**kwargs): # 包裹关键字的传递 155 print(kwargs) 156 157 158 t4(name='TOM', age=18, id=110) # 传进的参数组成一个字典 159 160 161 # 拆包,组包 162 def t5(): 163 return 100, 200 # f返回的是元组 164 165 166 num1, num2 = t5() 167 print(num1, num2) 168 169 dict1 = {'name': 'Tom1', 'age': 18} 170 a, b = dict1 # 字典的拆包 171 print(a) # 打印key:name 172 print(b) # 打印key:age 173 print(dict1[a], dict1[b]) 174 175 # 引用,在Python中值是靠引用来传递的 176 a = 1 177 b = a 178 print(id(a)) # 用id方法判断变量的地址(在内存中的十进制地址) 179 print(id(b))
运行结果:
----函数学习---- 函数的体验: Hello jun 测试函数 30 40 Help on built-in function len in module builtins: len(obj, /) Return the number of items in a container. Help on function hell in module __main__: hell(a, b) 这是函数的说明文档 :param a: 参数1 :param b: 参数2 :return: 返回值 这是函数testa 这是函数testb 函数的高阶知识 hello hell None 100 200 100 300 (1, 2) 你的名字是刘三,年龄是26,性别是女 你的名字是刘三,年龄是女,性别是26 你的名字是刘四,年龄是18,性别是女 姓名是王,年龄是18,性别是女,地址是127.0.0.1 ('Tom',) ('Tom', 18) {'name': 'TOM', 'age': 18, 'id': 110} 100 200 name age Tom1 18 140733706953360 140733706953360

浙公网安备 33010602011771号