目录
01-作业
import json
code_list = []
try:
with open('youbian.txt', 'r', encoding='utf8') as file:
while True:
content = file.readline().strip(',\n')
if not content:
break
# print(content, type(content)) # '[100000,"北京市"]'
x = json.loads(content)
code_list.append(x)
except FileNotFoundError:
print('文件打开失败')
x = input('请输入一个邮编:')
# 1.把用户输入的字符串转换成为数字
# 2.把列表里的编码转换成为字符串
for code in code_list:
if str(code[0]) == x:
print(code[1])
break
else:
print('没有找到对应的城市')
02-名片管理系统(退出系统)
def add_user():
print('添加用户')
def del_user():
print('删除用户')
def modify_user():
print('修改用户')
def search_user():
print('查询用户')
def show_all():
print('显示所有名片')
def exit_system():
# print('退出系统')
answer = input('亲, 你确定要退出么?~~~~(> _ <)~~~~(yes or no)')
return answer.lower() == 'yes'
# if answer == 'yes':
# exit(0) # 使用系统内置函数exit,直接结束整个程序
def start():
while True:
print(
"---------------------------\n名片管理系统 V1.0\n1:添加名片\n2:删除名片\n3:修改名片\n4:查询名片\n5:显示所有名片\n6:退出系统\n---------------------------")
operator = input('请输入要进行的操作(数字):')
if operator == '1': # 添加名片
add_user()
elif operator == '2': # 删除名片
del_user()
elif operator == '3':
modify_user()
elif operator == '4':
search_user()
elif operator == '5':
show_all()
elif operator == '6':
is_sure = exit_system()
if is_sure:
break
# answer = input('亲, 你确定要退出么?~~~~(> _ <)~~~~(yes or no)')
# if answer.lower() == 'yes':
# break
else:
print('您输入的不合法,请重新输入')
if __name__ == '__main__':
start()
03-名片管理系统(添加用户)
user_list = [
{'name': 'zhangsan', 'tel': '123', 'qq': '321'},
{'name': 'jack', 'tel': '666', 'qq': '999'},
{'name': 'jack', 'tel': '888', 'qq': '233'}
]
def add_user():
# 让用户输入信息
name = input('请输入用户名:')
# 当用户输入用户名以后,查询列表,看用户名是否已经存在
for u in user_list:
if u['name'] == name:
print('用户名已经被占用')
break
else:
tel = input('请输入手机号:')
qq = input('请输入QQ号:')
# 把用户输入的信息,拼接成为一个字典
user = {'name': name, 'tel': tel, 'qq': qq}
# 把创建好的用户,添加到列表
user_list.append(user)
print(user_list)
def del_user():
print('删除用户')
def modify_user():
print('修改用户')
def search_user():
print('查询用户')
def show_all():
print('显示所有名片')
def exit_system():
answer = input('亲, 你确定要退出么?~~~~(> _ <)~~~~(yes or no)')
return answer.lower() == 'yes'
def start():
while True:
print(
"---------------------------\n名片管理系统 V1.0\n1:添加名片\n2:删除名片\n3:修改名片\n4:查询名片\n5:显示所有名片\n6:退出系统\n---------------------------")
operator = input('请输入要进行的操作(数字):')
if operator == '1':
add_user()
elif operator == '2':
del_user()
elif operator == '3':
modify_user()
elif operator == '4':
search_user()
elif operator == '5':
show_all()
elif operator == '6':
is_sure = exit_system()
if is_sure:
break
else:
print('您输入的不合法,请重新输入')
if __name__ == '__main__':
start()
04-名片管理系统(删除用户)
user_list = [
{'name': 'zhangsan', 'tel': '123', 'qq': '321'},
{'name': 'lisi', 'tel': '666', 'qq': '999'},
{'name': 'jack', 'tel': '888', 'qq': '233'}
]
def add_user():
name = input('请输入用户名:')
for u in user_list:
if u['name'] == name:
print('用户名已经被占用')
break
else:
tel = input('请输入手机号:')
qq = input('请输入QQ号:')
user = {'name': name, 'tel': tel, 'qq': qq}
user_list.append(user)
print(user_list)
def check_number(n):
# 判断输入的数字是否合法
if n.isdigit(): # 如果是个数字,转换成为整数
n = int(n)
if 0 <= n < len(user_list):
return True
return False
def del_user():
# 接收用户的输入
number = input('请输入要删除的序号(序号从0开始):')
# 验证编号是否正确
is_valid = check_number(number)
if is_valid: # 输入的序号是合法
# 列表里删除用户
# remove:删除列表里的指定元素
# pop:删除列表里指定位置的元素,默认删除最后一个
answer = input('你确定要删除么?yes or no: ')
if answer.lower() == 'yes':
user_list.pop(int(number))
else:
print('输入的序号不合法')
print(user_list)
def modify_user():
print('修改用户')
def search_user():
print('查询用户')
def show_all():
print('显示所有名片')
def exit_system():
answer = input('亲, 你确定要退出么?~~~~(> _ <)~~~~(yes or no)')
return answer.lower() == 'yes'
def start():
while True:
print(
"---------------------------\n名片管理系统 V1.0\n1:添加名片\n2:删除名片\n3:修改名片\n4:查询名片\n5:显示所有名片\n6:退出系统\n---------------------------")
operator = input('请输入要进行的操作(数字):')
if operator == '1':
add_user()
elif operator == '2':
del_user()
elif operator == '3':
modify_user()
elif operator == '4':
search_user()
elif operator == '5':
show_all()
elif operator == '6':
is_sure = exit_system()
if is_sure:
break
else:
print('您输入的不合法,请重新输入')
if __name__ == '__main__':
start()
05-名片管理系统(修改用户)
user_list = [
{'name': 'zhangsan', 'tel': '123', 'qq': '321'},
{'name': 'lisi', 'tel': '666', 'qq': '999'},
{'name': 'jack', 'tel': '888', 'qq': '233'}
]
def add_user():
name = input('请输入用户名:')
for u in user_list:
if u['name'] == name:
print('用户名已经被占用')
break
else:
tel = input('请输入手机号:')
qq = input('请输入QQ号:')
user = {'name': name, 'tel': tel, 'qq': qq}
user_list.append(user)
print(user_list)
def check_number(n):
if n.isdigit():
n = int(n)
if 0 <= n < len(user_list):
return True
return False
def del_user():
number = input('请输入要删除的序号(序号从0开始):')
is_valid = check_number(number)
if is_valid:
answer = input('你确定要删除么?yes or no: ')
if answer.lower() == 'yes':
user_list.pop(int(number))
else:
print('输入的序号不合法')
print(user_list)
def modify_user():
number = input('请输入要修改的序号(序号从0开始):')
if check_number(number):
user = user_list[int(number)]
# print('您要修改的信息是:\n姓名:{},手机号:{},QQ号:{}'.format(user['name'], user['tel'], user['qq']))
print('您要修改的信息是:\n姓名:{name},手机号:{tel},QQ号:{qq}'.format(**user))
new_name = input('请输入新的姓名:')
for u in user_list:
if u['name'] == new_name:
print('新用户名已经存在')
modify_user()
return
else:
new_tel = input('请输入新的手机号:')
new_qq = input('请输入新的QQ号:')
if new_name == user['name'] and new_tel == user['tel'] and new_qq == user['qq']:
print('信息未修改')
else:
user['name'] = new_name
user['tel'] = new_tel
user['qq'] = new_qq
def search_user():
print('查询用户')
def show_all():
print('显示所有名片')
def exit_system():
answer = input('亲, 你确定要退出么?~~~~(> _ <)~~~~(yes or no)')
return answer.lower() == 'yes'
def start():
while True:
print(
"---------------------------\n名片管理系统 V1.0\n1:添加名片\n2:删除名片\n3:修改名片\n4:查询名片\n5:显示所有名片\n6:退出系统\n---------------------------")
operator = input('请输入要进行的操作(数字):')
if operator == '1':
add_user()
elif operator == '2':
del_user()
elif operator == '3':
modify_user()
elif operator == '4':
search_user()
elif operator == '5':
show_all()
elif operator == '6':
is_sure = exit_system()
if is_sure:
break
else:
print('您输入的不合法,请重新输入')
if __name__ == '__main__':
start()
06-名片管理系统(查询用户)
user_list = [
{'name': '张三', 'tel': '123', 'qq': '321'},
{'name': 'lisi', 'tel': '666', 'qq': '999'},
{'name': 'jack', 'tel': '888', 'qq': '233'}
]
def add_user():
name = input('请输入用户名:')
for u in user_list:
if u['name'] == name:
print('用户名已经被占用')
break
else:
tel = input('请输入手机号:')
qq = input('请输入QQ号:')
user = {'name': name, 'tel': tel, 'qq': qq}
user_list.append(user)
print(user_list)
def check_number(n):
if n.isdigit():
n = int(n)
if 0 <= n < len(user_list):
return True
return False
def del_user():
number = input('请输入要删除的序号(序号从0开始):')
is_valid = check_number(number)
if is_valid:
answer = input('你确定要删除么?yes or no: ')
if answer.lower() == 'yes':
user_list.pop(int(number))
else:
print('输入的序号不合法')
print(user_list)
def modify_user():
number = input('请输入要修改的序号(序号从0开始):')
if check_number(number):
user = user_list[int(number)]
# print('您要修改的信息是:\n姓名:{},手机号:{},QQ号:{}'.format(user['name'], user['tel'], user['qq']))
print('您要修改的信息是:\n姓名:{name},手机号:{tel},QQ号:{qq}'.format(**user))
new_name = input('请输入新的姓名:')
for u in user_list:
if u['name'] == new_name:
print('新用户名已经存在')
modify_user()
return
else:
new_tel = input('请输入新的手机号:')
new_qq = input('请输入新的QQ号:')
if new_name == user['name'] and new_tel == user['tel'] and new_qq == user['qq']:
print('信息未修改')
else:
user['name'] = new_name
user['tel'] = new_tel
user['qq'] = new_qq
def search_user():
search_name = input('请输入要查询的姓名:')
for u in user_list:
if u['name'] == search_name:
print('查询到的信息如下:\n姓名:{name},手机:{tel},QQ:{qq}'.format(**u))
break
else:
print('没有您要找的信息....')
def show_all():
print('序号 姓名 手机号 QQ')
for i, u in enumerate(user_list):
print(i, u['name'].center(15), u['tel'].center(15), u['qq'].center(10))
def exit_system():
answer = input('亲, 你确定要退出么?~~~~(> _ <)~~~~(yes or no)')
return answer.lower() == 'yes'
def start():
while True:
print(
"---------------------------\n名片管理系统 V1.0\n1:添加名片\n2:删除名片\n3:修改名片\n4:查询名片\n5:显示所有名片\n6:退出系统\n---------------------------")
operator = input('请输入要进行的操作(数字):')
if operator == '1':
add_user()
elif operator == '2':
del_user()
elif operator == '3':
modify_user()
elif operator == '4':
search_user()
elif operator == '5':
show_all()
elif operator == '6':
is_sure = exit_system()
if is_sure:
break
else:
print('您输入的不合法,请重新输入')
if __name__ == '__main__':
start()
07-迭代器回顾
from collections.abc import Iterable
class Demo(object):
def __init__(self, n):
self.n = n
self.count = 0
def __iter__(self):
return self
def __next__(self):
self.count += 1
if self.count <= self.n:
return self.count - 1
raise StopIteration
d = Demo(10)
# print(isinstance(d, Iterable))
# x = d.__iter__()
# x.__next__()
# print(x is d) # True
for i in d:
print(i)
08-生成器的使用
# 生成器本质也是一个迭代器,它是一个特殊的迭代器
x = 5
y = 10
# if x > y:
# z = x
# else:
# z = y
# z = x if x > y else y 三元表达式
# 最简单的生成器
# nums = [i for i in range(10)] # 列表生成式(推导式)
# print(nums)
#
# g = (i for i in range(10)) # 得到的结果是生成器
# for m in g: # 生成器是一个特殊的迭代器,也可以方法在for...in后面
# print(m)
# 迭代器是一个对象,定义class
# 生成器写法上像一个函数
def my_gen(n):
i = 0
while i < n:
# return i # 函数里的return表示函数的执行结束
yield i # yield关键字,将函数变成生成器
i += 1
G = my_gen(10)
# print(next(iter(G)))
for i in G:
print(i)
09-生成器的练习
def fibonacci(n):
num1 = num2 = 1
count = 0
while count <= n - 2:
num1, num2 = num2, num1 + num2
count += 1
yield num1
F = fibonacci(12) # 此时并不会调用函数
for i in F:
print(i)
def demo(x): # x = '100'
x = int(x) # x = 100
y = '100'
demo(y)
print(y) # '100' 100