重生归来,我要成功 Python 高手--day10 函数和列表
函数
是组织好,可以重复使用,用来实现特定功能的代码段
函数的定义
def 函数名(传入参数):
函数体
return 返回值
其中:传入参数和return可以省略
注:函数要先定义再使用
调用:函数名()
参数
在调用时,接收外部提供的数据
函数定义时的参数:形式参数
函数调用时:实际参数
注:实参要和形参的数目对的上
def sum(x,y): # 形参
print(f"{x}+{y}={x+y}")
sum(1, 2) # 实参
def xinxi(name,age,hijh):# 形参
print(f"我是{name},我今年{age}岁,我身高{hijh}cm!")
xinxi(1,1,1)# 实参
返回值
函数完成后,最后给调用者的结果,return执行后函数就结束了
def 函数(参数。。。。)
函数体
return 返回值
使用:变量=函数(参数)
def add(a, b, c):
sum = a + b + c
return sum
r = add(1, 2, 3)
print(r)
print(add(4, 5, 6))
def a_max(a, b, c):
if a >= b and a >= c:
return a
elif b >= c and b >= a:
return b
else:
return c
num = a_max(2, 2, 2)
print(num)
None类型
1.表示空值或者缺失返回值,当一个变量、函数返回值或对象属性没有具体值时,常用 None 表示
2 ,在if判断中用来进行判断要执行那个分支,在if中可以通过判断传入的参数
None或者0或者False执行别的分支
为True或者有参数的时候执行第一个分支
def get_user_age(username):
"""查询用户年龄,如果用户不存在则返回None"""
# 假设这是一个用户数据库
users = {
"小明": 18,
"小红": 20
}
# 如果用户存在就返回年龄,否则返回None
return users.get(username)
# 测试查询
username = "小刚" # 这是一个不存在的用户
age = get_user_age(username)
# 使用if判断结果
if age:
# 当age有有效数值时执行(非None且非0)
print(f"{username}的年龄是{age}岁")
else:
# 当age是None或0时执行
if age is None:
print(f"抱歉,没有找到{username}的信息")
else:
print(f"{username}的年龄是0岁")
- 调用函数查询用户年龄
- 如果用户存在,返回实际年龄(数字)
- 如果用户不存在,返回
None
在if判断中:
- 当拿到实际年龄(比如 18、20)时,
if age会认为是True,执行第一个分支 - 当拿到
None时,if age会认为是False,进入 else 分支 - 我们再用
age is None精确判断是不是真的没找到用户
函数的嵌套
局部变量是定义在函数里面的变量
全局变量是定义在函数外部的变量
函数内部修改的变量不会对函数外部的变量造成影响
global关键字
global 变量:使函数使用全局变量
num=100
def a():
print("a",num)
def b():
global num
num=200
print("b",num)
a()
b()
print(num)
综合案例:
name = input("输入你的姓名")
money = 500000
# 主函数
def main():
"""
:return: 返回的是输入的数字
"""
print("-" * 10 + "主菜单" + "-" * 10)
print(f"{name},您好,欢迎来到ATM,请选择操作:")
print("查询余额\t[请输入1]")
print("存款\t\t[请输入2]")
print("取款\t\t[请输入3]")
print("退出\t\t[请输入4]")
return int(input("输入按钮"))
# 查询函数
def see_maney(title):
"""
:param title: 用来判断是否需要输出查询余额这一行
:return: None
"""
if title:
print("-" * 10 + "查询余额" + "-" * 10)
print(f"{name},你好,你的余额剩余:{money}元")
# 存款函数
def add_money():
"""
:return: None
"""
global money
print("-" * 10 + "存款" + "-" * 10)
sum = int(input("输入你想存入的钱"))
money += sum
print(f"{name},您好,您存款{sum}元成功")
see_maney(False)# 不会显示print("-" * 10 + "查询余额" + "-" * 10)
# 取钱函数
def qu_money():
"""
:return: None
"""
global money
print("-" * 10 + "取钱" + "-" * 10)
qu = int(input("输入你想取的钱"))
if qu>money:
print("余额不足")
else:
money-=qu
print(f"{name},您好,您取款{qu}元成功")
see_maney(True) # 会显示print("-" * 10 + "查询余额" + "-" * 10)
# 返回主界面的while
while True:
num=main()
if num==1:
see_maney(True)
if num==2:
add_money()
if num==3:
qu_money()
if num==4:
print("欢迎下次光临")
break
这个案例就通过判断传入的参数是True还是False来决定是否输入print("-" * 10 + "查询余额" + "-" * 10)

数据容器
一种可以容纳多分数据的数据类型,每一份数据称之为一个元素
列表,元组,字典,字符串,集合
列表
# 列表 var = [1, 2, 3, 4, 5] var2 = ["yanw", 1, 3, 4, "wen"] print(var) print(var2) # 空列表 l1 = [] l2 = list() print(type(l1)) print(type(l2))
列表的下标索引
列表的元素下标是从0开始的
-1是最右边的索引
# 列表的下标索引 var4 = [1, 3, 4, "abc", "haha", True, False, 3.14] print(var4[5]) print(var4[-1]) #嵌套列表的下标索引 var = [[1, 2, 3, 4, 5], ["a", "b", "c", "d", "e"]] print(var[0][2]) print(var[1][-5]) var[1][1] = "yan" print(var)
列表名[1][2]
[1]:选择的列表
[2]:选择的列表元素
赋值:列表[下标]=值
嵌套列表
# 列表的嵌套 var3 = [var, var2] print(var3) var4 = [1,3,4,"abc","haha",True,False,3.14] print(var4)
方法
定义在class类中的函数
使用:类名.函数名
列表中的方法
# 列表索引
var4 = [1, 3, 4, "abc", "haha", True, False, 3.14]
print(var4.index("haha")) # 4
# 修改
var4[2] = "abc"
print(var4) # [1, 3, 'abc', 'abc', 'haha', True, False, 3.14]
# 插入
var4.insert(1, "yws") # [1, 'yws', 3, 'abc', 'abc', 'haha', True, False, 3.14]
print(var4)
# 追加
var4.append("aaa") # [1, 'yws', 3, 'abc', 'abc', 'haha', True, False, 3.14, 'aaa']
print(var4)
# 追加一批
va1 = [1, 2, 3]
var4.extend(va1)
print(var4) # [1, 'yws', 3, 'abc', 'abc', 'haha', True, False, 3.14, 'aaa', 1, 2, 3]
# 删除元素
del var4[0] # ['yws', 3, 'abc', 'abc', 'haha', True, False, 3.14, 'aaa', 1, 2, 3]
print(var4)
# 删除元素2
var4.pop(4) # ['yws', 3, 'abc', 'abc', True, False, 3.14, 'aaa', 1, 2, 3]
print(var4)
# 删除列表中第一次出现的元素
var4.remove("abc")
print(var4) # ['yws', 3, 'abc', True, False, 3.14, 'aaa', 1, 2, 3]
# 清空列表
var4.clear() # []
print(var4)
num = var4.count(3) # 2
print(num)
num2 = len(var4) # 10
print(num2)
# 练习 number=[21,25,21,23,22,20] # 追加31 number.append(31) print(number) # 追加列表[29,33,30] number.extend([29,33,30]) print(number) # 取第一个元素 print(number[0]) # 取最后一个元素 print(number[-1]) # 查找31在那个位置 print(number.index(31))
使用while或者for循环进行函数的遍历
# while循环遍历列表
tests = [1, 3, 4, "abc", "haha", True, False, 3.14]
i = 0
while i < len(tests):
print(tests[i])
i += 1
# for 循环
print("------------------")
for i in tests:
print(i)
在新的列表中进行追加内容
num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
new=[] # 空列表
new1=list()
for i in num:
if i % 2 == 0:
new.append(i)
new1.append(i)
print(num)
print(new)
print(new1)
更多推荐
所有评论(0)