#笔记
字典是Python中唯一的映射类型,字典也被称为hash(哈希),关系数组
创建字典的5种方法:
a = {"one":1,"two":2,"three":3}
b = dict(zip(["one","two","three"],[1,2,3]))
c = dict([("one",1),("two",2),("three",3)])
d = dict(one=1,two=2,three=3)
e = dict({"one":1,"two":2,"three":3})
print(a==b==c==d==e)
字典的各种内置方法:
fromkeys() 创建并返回一个新的字典 有两个参数,第一个是字典的键,第二个是键对应的值,是可选的,若不提供,默认为None
dict1={}
dict1.fromkeys((1,2,3),("one","two","three"))
访问字典的方法keys() value() items() 分别返回字典中的键 值和项(键值对)
get() 当键不存在时,并不会报错 返回None
判断一个键是否在字典中可以用成员操作符(in或者not in)
pop()和popitem() pop是给定键弹出对应的值 popitem()弹出一个项
setdefault() 和get()方法类似 但当在字典中找不到对应的键时会自动添加
尝试利用字典特性写一个通讯录程序
print("丨---欢迎进入通讯录程序---丨")
print("丨--- 1:查询联系人资料 ---丨")
print("丨--- 2:插入新的联系人 ---丨")
print("丨--- 3:删除已有联系人 ---丨")
print("丨--- 4:退出通讯录程序 ---丨")
tel = {"小甲鱼":"123456"}
while 1:
temp =int(input("请输入相关指定代码:"))
if temp==1:
name = input("请输入联系人姓名:")
if name in tel:
print(name+":"+tel.get(name))
else:
print("联系人不存在~")
elif temp==2:
name = input("请输入联系人姓名:")
if name in tel:
print("您输入的姓名在通讯录中已存在-->>"+name+":"+tel.get(name))
choice=input("是否需要修改(Yes/No):")
if choice =="Yes":
phone= input("请输入联系人电话:")
tel[name]=phone
else:
phone= input("请输入联系人电话:")
tel[name]=phone
elif temp==3:
dele=input("请输入要删除的联系人姓名:")
tel.pop(dele)
print("联系人已删除")
elif temp==4:
print("丨--- 感谢使用通讯录程序---丨")
break
else :
temp=int(input("指定代码有误,请重新输入:"))
![](https://i-blog.csdnimg.cn/blog_migrate/2fc50b7ff378f2bc1857219f45bb57e4.png)
def login():
user={}
while 1:
temp=input('''丨---新建用户:N/n---丨
丨---登录账号:E/e---丨
丨---退出程序:Q/q---丨
丨---请输入指令代码:''')
if temp in ["N","n"]:
name=input("请输入用户名:")
if name in user:
name=input("此用户名已被使用,请重新输入:")
sec=input("请输入密码:")
else:
sec=input("请输入密码:")
print("注册成功,赶紧试试登录吧~")
user[name]=sec
print(user)
if temp in ["E","e"]:
name=input("请输入用户名:")
if name not in user:
name = input("您输入的用户名不存在请重新输入:")
sec1 =input("请输入密码:")
else:
sec1 =input("请输入密码:")
while sec1!=user[name]:
sec1=input("密码错误,请重新输入:")
if sec1==user[name]:
break
print("欢迎进入系统,退出程序请输入Q")
if temp in ["Q","q"]:
break
login()
print("==================论坛答案==============")
user_data = {}
def new_user():
prompt = '请输入用户名:'
while True:
name = input(prompt)
if name in user_data:
prompt = '此用户名已经被使用,请重新输入:'
continue
else:
break
passwd = input('请输入密码:')
user_data[name] = passwd
print('注册成功,赶紧试试登录吧^_^')
def old_user():
prompt = '请输入用户名:'
while True:
name = input(prompt)
if name not in user_data:
prompt = '您输入的用户名不存在,请重新输入:'
continue
else:
break
passwd = input('请输入密码:')
pwd = user_data.get(name)
if passwd == pwd:
print('欢迎进入XXOO系统,请点右上角的X结束程序!')
else:
print('密码错误!')
def showmenu():
prompt = '''
|--- 新建用户:N/n ---|
|--- 登录账号:E/e ---|
|--- 推出程序:Q/q ---|
|--- 请输入指令代码:'''
while True:
chosen = False
while not chosen:
choice = input(prompt)
if choice not in 'NnEeQq':
print('您输入的指令代码错误,请重新输入:')
else:
chosen = True
if choice == 'q' or choice == 'Q':
break
if choice == 'n' or choice == 'N':
new_user()
if choice == 'e' or choice == 'E':
old_user()
showmenu()