赞
踩
标识符规则: 由字母,数字和下划线组成,不能以数字开头 变量名不能和关键字重名. 关键字是系统定义好的标识符,具有特殊的作用. 数据类型: int(整型) float(浮点型) str(字符串类型) bool(布尔类型, True False) list(列表) tuple(元组) dict(字典) type() 函数可以查看变量的数据类型 输入: input() --> str 类型转换 输出: print() %s--字符串 %d -- int %f--float %--%% f-string {变量} 逻辑运算符 and 逻辑与 一假为假 or 逻辑或 一真为真 not 逻辑非 取反 比较运算符 == != 判断 if elif else 循环 while for xx in 容器/range(): pass range(a, b, step) [a, b) 之间的整数 break 终止循环 continue 跳过本次循环,继续下次循环 循环 else 结构: 循环不是被 break 终止的时候会执行 else 中的代码 str: 下标 切片 list: insert append extend ... tuple: 元组中的数据不能修改 查询的方法 index() dict: key:value 键值对的形式 函数: 定义: 使用 def 关键字, def 函数名(形参列表): 函数代码 return 数据 pass 函数调用,才会执行函数中的代码 函数名(实参列表) 局部变量: 在函数内部定义的变量,只能在当前函数内部使用, 如果想要将这个变量在函数外部使用, ①可以 return 将这个变量返回 ② 使用 global,将其变为全局变量 全局变量: 在任意地方可以访问,想要在函数内部修改全局变量的值,使用 global 声明
# print() # 缺省参数,形参.在函数定义的时候,给形参一个默认值,这个形参就是缺省参数, # 注意点: 缺省参数要写在普通参数的后边 # 特点: 在函数调用的时候,如果给缺省参数传递实参值,使用的是传递的实参值,如果没有传递,使用默认值 def func(a, b, c=10): # 形参c 称为缺省形参 print(f"a: {a}") print(f"b: {b}") print(f"c: {c}") func(1, 2) # 没有给c 传递实参,使用默认值10 func(1, 2, 3) # 给c传递实参值,使用传递的数据3 # def fun1(a=1, b, c): # 代码报错,语法错误 # pass
注意点: 函数定义中的 args 和 kwargs可以是任意的形参变量,不过习惯使用 args 和 kwargs.
# 普通形参 缺省形参 不定长元组形参 不定长字典形参 def func(a, b=1): # 先普通再 缺省 pass def func1(a, b=1, *args): # 语法上不会报错,但是缺省参数不能使用默认值 print('a', a) print('b', b) print(args) def func2(a, *args, b=1): # 普通形参 不定长元组形参 缺省形参 print('a', a) print('b', b) print(args) def func3(a, *args, b=1, **kwargs): # 普通形参 不定长元组形参 缺省形参 不定长字典形参 pass # func1(1, 2, 3, 4) # func2(1, 2, 3, 4) func2(1, 2, 3, 4, b=10)
# 组包, 将多个数据值,组成元组,给到一个变量. a = 1, 2, 3 print(a) # (1, 2, 3) def func(): return 1, 2 # 组包 # 拆包: 将容器的数据分别给到多个变量, 需要注意: 数据的个数和变量的个数要保持一致 b, c, d = a # 拆包 # print(b, c, d) e, f = func() print(e, f) my_list = [10, 20] a, b = my_list print(a, b) my_dict = {'name': 'isaac', 'age': 18} a, b = my_dict # key值 print(a, b)
a = 10 b = 20 # 方法一: # c = a # a = b # b = c # print(a, b) # 方法二: +/- */÷ # a = a + b # a 30 # b = a - b # 10 # a = a - b # 20 # print(a, b) # 方法三, python中的使用 组包和拆包 a, b = b, a print(a, b)
# 可以使用 id() 查看变量的引用, 可以将id 值认为是内存地址的别名
# python中数据值的传递的是引用
# 赋值运算符可以改变变量的引用
# 将数据10 存储到变量a 中, 本质是将数据10 所在内存的引用地址保存到变量a 中
a = 10
# 将变量a中保存的引用地址给给到b
b = a
print(a, b) # 使用print函数打印变量a 和b 引用中存储的值
print(id(a), id(b))
a = 20
print(a, b)
print(id(a), id(b))
# 类型的可变与不可变: 在不改变变量引用的前提下,能否改变变量中引用中的数据, # 如果能改变是可变类型, 如果不能改变,是不可变类型 # int float bool str list tuple dict # 不可变类型: int float bool str tuple # 可变类型: list dict # num = 10 # num = 20 # # my_list = [1, 2] # my_list.append(3) a = 1000 b = 1000 print(id(a), id(b)) # python中的内存优化,对于不可变类型进行的, print(id(a) == id(b)) a = 'hello' b = 'hello' print(id(a), id(b)) # python中的内存优化,对于不可变类型进行的, my_tuple = (1, 2) my_tuple1 = (1, 2) print(id(my_tuple), id(my_tuple1)) print(id(my_tuple) == id(my_tuple1)) print('-' * 20) my_list = [1, 2, 3] my_list1 = [1, 2, 3] print(id(my_list), id(my_list1)) print('*' * 30) my_tuple2 = (1, 2, [3, 4]) print(my_tuple2) my_tuple2[2][1] = 10 print(my_tuple2)
# 函数传参传递的也是引用 my_list = [1, 2, 3] # 全局变量 def func1(a): a.append(4) def func2(): # 为啥不加global, 因为没有修改 my_list 中存的引用值 my_list.append(5) def func3(): global my_list my_list = [1, 2, 3] # 修改全局变量的值 def func4(a): # += 对于列表来说,类似列表的extend方法,不会改变变量的引用地址 a += a # a = a + a, 修改了a变量a的引用 # print(a) func1(my_list) # [1, 2, 3, 4] func2() # [1, 2, 3, 4, 5] func3() # [1, 2, 3] print(my_list) b = 10 # 不可变类型 func4(b) print(b) # func4(my_list) print(my_list) # [1, 2, 3, 1, 2, 3]
增删改查操作
存储学生信息:
姓名
年龄
班级
性别
...
{'name': 'isaac', 'age': 18, ...}
存储所有的学生信息:
列表: [{}, {}, {}, ....]
功能菜单,业务框架.
def show_menu(): print('1. 添加学生') print('2. 删除学生') print('3. 修改学生信息') print('4. 查询单个学生信息') print('5. 查询所有的学生信息') print('6. 退出系统') while True: show_menu() opt = input('请输入用来选择的操作编号:') if opt == '1': print('1. 添加学生') elif opt == '2': print('2. 删除学生') elif opt == '3': print('3. 修改学生信息') elif opt == '4': print('4. 查询单个学生信息') elif opt == '5': print('5. 查询所有的学生信息') elif opt == '6': print('欢迎下次使用本系统......') break else: print('输入有误,请再次输入') continue input('...... 回车键继续操作.......')
1. 通过 input 函数获取学生的信息, 姓名, 年龄, 性别
2. 将学生信息转换为字典进行保存
3. 将这个学生字典添加的列表中
代码优化:
假设学生的名字都不能重复,在添加学生的时候,进行判断,如果学生名字已经存在,则不添加.
都使用 name 对学生进行判断
1. 使用 input 获取要删除 /修改/查询 的学生姓名
2. 判断学生信息是否存在
3. 学生存在,对学生进行 删除 /修改/查询 操作
4. 学生信息不存在,直接结束
# 定义学生列表,保存所有的学生信息 stu_list = [] def show_menu(): print('1. 添加学生') print('2. 删除学生') print('3. 修改学生信息') print('4. 查询单个学生信息') print('5. 查询所有的学生信息') print('6. 退出系统') def insert_student(): # 1. 通过 input 函数获取学生的信息, 姓名, 年龄, 性别 name = input('请输入学生名字:') # [{}, {}, {}] 判断的是字典中的 value 是否存在 for stu in stu_list: if stu['name'] == name: print('----------学生信息存在---------') return # 结束函数的执行 age = input('请输入学生年龄:') gender = input('请输入学生性别:') # 2. 将学生信息转换为字典进行保存 stu_dict = {'name': name, 'age': int(age), 'gender': gender} # 3. 将这个学生字典添加的列表中 stu_list.append(stu_dict) print('==============学生信息添加成功====================') def remove_student(): # 1. 使用 input 获取要删除 /修改/查询 的学生姓名 name = input('请输入要操作的学生的名字:') # 2. 判断学生信息是否存在 for stu in stu_list: if stu['name'] == name: # 3. 学生存在,对学生进行 删除 /修改/查询 操作 stu_list.remove(stu) # return break # 4. 学生信息不存在,直接结束 else: print('***********该学生信息不存在,无法删除**************') def modify_student(): # 1. 使用 input 获取要删除 /修改/查询 的学生姓名 name = input('请输入要操作的学生的名字:') # 2. 判断学生信息是否存在 for stu in stu_list: if stu['name'] == name: # 3. 学生存在,对学生进行 删除 /修改/查询 操作 stu['age'] = int(input('请输入新的年龄:')) # return break # 4. 学生信息不存在,直接结束 else: print('***********该学生信息不存在,无法修改**************') def search_student(): # 1. 使用 input 获取要删除 /修改/查询 的学生姓名 name = input('请输入要操作的学生的名字:') # 2. 判断学生信息是否存在 for stu in stu_list: if stu['name'] == name: # 3. 学生存在,对学生进行 删除 /修改/查询 操作 print(f'姓名:{stu["name"]}, 年龄:{stu["age"]}, 性别:{stu["gender"]}') # return break # 4. 学生信息不存在,直接结束 else: print('***********该学生信息不存在**************') def show_all_info(): if len(stu_list) > 0: for stu in stu_list: print(f'姓名:{stu["name"]}, 年龄:{stu["age"]}, 性别:{stu["gender"]}') # print(stu) else: print('目前没有学生信息') def main(): while True: show_menu() opt = input('请输入用来选择的操作编号:') if opt == '1': # print('1. 添加学生') insert_student() elif opt == '2': # print('2. 删除学生') remove_student() elif opt == '3': # print('3. 修改学生信息') modify_student() elif opt == '4': # print('4. 查询单个学生信息') search_student() elif opt == '5': # print('5. 查询所有的学生信息') show_all_info() elif opt == '6': print('欢迎下次使用本系统......') break else: print('输入有误,请再次输入') continue input('...... 回车键继续操作.......') main()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。