Python基础之day04-函数
2021/9/28 1:40:47
本文主要是介绍Python基础之day04-函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Python基础之day04-函数
文章目录
- Python基础之day04-函数
- 一、函数的介绍,定义,调用
- 二、带参数的函数
- 三、带返回值的函数
- 四、函数的嵌套调用
- 五、局部变量与全局变量
- 六、拆包
- 七、引用
- 八、函数案例-学生管理系统
代码仓库地址: https://gitee.com/andox_yj/python
一、函数的介绍,定义,调用
-
介绍:当遇到某段代码需用重复用到时,就可以把该段代码封装成一个小的功能模块,在使用的时候可以重复调用
这就是函数。函数能提高应用的模块性,和代码的重复利用率。 -
注意:函数内的代码在每次重新调用的时候都会重头执行
""" # 定义函数:函数名定义规范,一般为单词字母小写,多个单词之间用_下划线连接 def 函数名(): 代码 # 调用函数: 函数名() # 定义一个输出个人信息的函数 def info(): print("姓名:Andox") print("年龄:18") print("性别:男") # 调用函数,执行函数内的代码,可重复调用 info() info()
二、带参数的函数
-
介绍:带有参数的函数就是当调用函数的时候,需要给函数一些变量,值或者是对象,就可以把这些当做参数传给函数定义函数时,需要几个参数,就在()括号里写入几个接收参数的变量名,在函数内的代码里直接使用该变量即可。此时里接收的叫做"形参"
def info(name, age, gender): print(name) print(age) print(gender) # 调用函数方法1:传入与函数定义接收的数量一致的数据给函数。此时这里传入的叫做"实参" info("Andox", "18", "男") # 调用函数方法2:直接指定参数接收的是那个数据,此时与上面调用的结果一样。 info(name="Andox", age="18", gender="男") """ 注意: 1.定义时小括号中的参数,用来接收参数用的,称为 “形参” 2.调用时小括号中的参数,用来传递给函数用的,称为 “实参” 3.形参与实参的数量必须相等,如果没赋值指定参数的话,需要按照位置顺序数量来填写。 4.多传会报错,少传,如果函数内不使用就不会报错,如果使用了没传的参数,就会报错。 5.赋值传递参数的时候,位置可以发生变化。 """
-
函数的参数类型:位置参数,可变参数,关键字参数
# 1.位置参数:按照从左向右的位置依次传入,叫位置参数 def info(name, age): print(name) # Andox print(age) # 18 info("Andox", 18) # 2.可变参数:在变量名前加*号,该变量会存放所有未命名的变量参数,该变量在函数内为元组,通常名称伟*args def info(*args): print(args) # ('Andox', 18) info("Andox", 18) # 3.关键字参数:在变量名前加两个*号,该变量会接收key=value的参数, 该变量在函数内为字典.通常命名为**kwargs def info(**kwargs): print(kwargs) # {'name': 'anem', 'age': 18} info(name="anem", age=18) # 一般参数对位置顺序为:位置参数-->可变参数-->关键字参数 def info(name, *args, **kwargs): print(name) # Andox print(args) # (18,) print(kwargs) # {'gender': '男'} info("Andox", 18, gender="男")
三、带返回值的函数
-
函数返回值:函数返回值就是在调用函数后需要函数给反馈一个结果。所以就需要使用带有返回值的参数
-
注意:接收函数返回值的变量可以与函数内定义的变量相同。
每个函数内只能有一个return,if-else除外。return后面可以不返回内容,当做函数的停止。# 1.定义带有返回值的函数,在函数最后添加return关键字来把函数执行后的结果返回出去 def count(): num = 1 + 2 return num # 2.在调用函数时,需要使用一个变量来接收函数的返回值,书写规范为:变量 = 函数() num = count() print(num)
四、函数的嵌套调用
介绍:既在函数里面调用了另外一个函数
def function1(): print("函数1执行") def function2(): print("函数2开始执行") function1() print("函数2执行结束") function2() """ 调用函数2的时候,当函数2里面执行又遇到了函数1, # 则会执行到函数1调用的位置后,去执行函数1。当函数1执行完后,接着回来执行函数2剩余的代码。 执行顺序: 函数2开始执行 函数1执行 函数2执行结束 """
五、局部变量与全局变量
- 定义在函数内的就是局部变量,使用范围从:定义开始到函数结束
- 定义在函数外面的就是全局变量,使用范围从:定义开始到程序结束
- 可以将函数内的变量修改为全局变量,使用范围从:定义开始到程序结束。
""" 定义方法:在函数内定义变量前,先用global声明该变量为全局变量 global 变量名 变量名 = 值 """ num = 10 # 定义全局变量 def info(): age = 10 # 定义局部变量 global name # 声明全局变量 name = "Andox" info() print(name) # Andox
- 注意:
- 如果外面有同名的变量定义在该调用该函数之前,则在运行到该函数的全局声明是,会修改外面的函数
- 如果外面没有定义同名的变量,如果想在外面使用,必须要在调用该函数之后才能使用该变量
六、拆包
# 1.对函数返回值进行拆包 def info(): high = 175 weight = 120 age = 18 return high, weight, age high, weight, age = info() # 拆包 print(high, weight, age) # 175 120 18 # 2.对列表的拆包 a, b = [1, 2] print(a, b) # 1 2 # 3.对元祖的拆包 a, b = (3, 4) print(a, b) # 3 4 # 4.对字典的拆包:注意拆出来得到的是key a, b = {"a": 1, "b": 2} print(a, b) # a b
七、引用
引用介绍:
使用id()来查看数据储存在内存中的地址,变量名实际储存的是数据在内存中的地址,
我们可以通过这边地址访问到储存在内存中的变量。而我们传递变量时,其实是把该变量
的引用(变量储存在内存中的地址)传递出去。
a = 100 b = [1, 2] c = (1, 2) d = {"name": "Andox"} print(id(a)) # 4321048320 print(id(b)) # 140495662574720 print(id(c)) # 140495643250240 print(id(d)) # 140495643211776
可变类型与不可变类型是指:如果能直接修改那么就是可变,否则是不可变
可变类型有: 列表、字典、集合
不可变类型有: 数字、字符串、元组,
当变量为不可变类型时,对其修改,其实是把修改后的新数据地址,重新储存在该变量名中
当变量为可变类型时,对其修改,是在内存原来的位置进行修改
# 不可变类型 a = 10 print(id(a)) # 4403084224 a += 1 print(id(a)) # 4403084256 #修改后地址改变 # 可变数据类型 b = [1] print(id(b)) # 140476780873152 b.append(2) print(id(b)) # 140476780873152 # 修改后地址不变
八、函数案例-学生管理系统
import time import os # 定一个列表,用来存储所有的学生信息(每个学生是一个字典) info_list = [] def print_menu(): print("---------------------------") print(" 学生管理系统 V1.0") print(" 1:添加学生") print(" 2:删除学生") print(" 3:修改学生") print(" 4:查询学生") print(" 5:显示所有学生") print(" 6:退出系统") print("---------------------------") def add_new_info(): """添加学生信息""" global info_list new_name = input("请输入姓名:") new_tel = input("请输入手机号:") new_qq = input("请输入QQ:") for temp_info in info_list: if temp_info['name'] == new_name: print("此用户名已经被占用,请重新输入") return # 如果一个函数只有return就相当于让函数结束,没有返回值 # 定义一个字典,用来存储用户的学生信息(这是一个字典) info = {} # 向字典中添加数据 info["name"] = new_name info["tel"] = new_tel info["qq"] = new_qq # 向列表中添加这个字典 info_list.append(info) def del_info(): """删除学生信息""" global info_list del_num = int(input("请输入要删除的序号:")) if 0 <= del_num < len(info_list): del_flag = input("你确定要删除么?yes or no") if del_flag == "yes": del info_list[del_num] else: print("输入序号有误,请重新输入") def modify_info(): """修改学生信息""" global info_list modify_num = int(input("请输入要修改的序号:")) if 0 <= modify_num < len(info_list): print("你要修改的信息是:") print("name:%s, tel:%s, QQ:%s" % (info_list[modify_num]['name'], info_list[modify_num]['tel'], info_list[modify_num]['qq'])) info_list[modify_num]['name'] = input("请输入新的姓名:") info_list[modify_num]['tel'] = input("请输入新的手机号:") info_list[modify_num]['qq'] = input("请输入新QQ:") else: print("输入序号有误,请重新输入") def search_info(): """查询学生信息""" search_name = input("请输入要查询的学生姓名:") for temp_info in info_list: if temp_info['name'] == search_name: print("查询到的信息如下:") print("name:%s, tel:%s, QQ:%s" % (temp_info['name'], temp_info['tel'], temp_info['qq'])) break else: print("没有您要找的信息....") def print_all_info(): """遍历学生信息""" print("序号\t姓名\t\t手机号\t\tQQ") i = 0 for temp in info_list: # temp是一个字典 print("%d\t%s\t\t%s\t\t%s" % (i, temp['name'], temp['tel'], temp['qq'])) i += 1 def main(): """用来控制整个流程""" while True: # 1. 打印功能 print_menu() # 2. 获取用户的选择 num = input("请输入要进行的操作(数字)") # 3. 根据用户选择,做相应的事情 if num == "1": # 添加学生 add_new_info() elif num == "2": # 删除学生 del_info() elif num == "3": # 修改学生 modify_info() elif num == "4": # 查询学生 search_info() elif num == "5": # 遍历所有的信息 print_all_info() elif num == "6": # 退出系统 exit_flag = input("亲,你确定要退出么?~~~~(>_<)~~~~(yes or no) ") if exit_flag == "yes": break else: print("输入有误,请重新输入......") # 程序的开始 main()
这篇关于Python基础之day04-函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享