A-11-字典总结及练习
本帖最后由 高渐飞 于 2018-7-16 15:19 编辑<font size="3">#知识点总结
#(1)字典由键(key)和对应值(value)成对组成,字典是Python唯一的一个映射类型;
#(2)映射:指两个元素的集之间元素相互“对应”的关系,类似C中的结构体
#(3)格式一般为 value
#(4)元组小括号(),列表中括号[],字典大括号{}
#(5)字典是二维的,列表是一维的;序列是顺序索引,字典是精确索引
#(6)新建dict字典的几种方法:
""" a.直接用中括号{}:
i. d = {A:a,B:b}
ii. d= {}
b.使用dict
i. d = dict()
ii. d = dict(a = 'a',b = 'b') #前面a输出时,引号会自己打
iii. d = dict( zip(,))
iv. d = dict({A:a,B:b})
v. d = dict(( (cuple1),(cuple2) ))#元组字典
vi. dict里面只有一个变量 """
#(7)字典dict常用方法:
""" a. d.fromkeys((1,2,3),'hello')创建三个key1,2,3,其value都是hello.默认value为none
b. d.get(key,) 查找,如果key在d里,返回d即value;否则返回None,若传入value,此时返回value
c. d.setdefault(key,) 若有key,返回其value;否则新建一个key,其值默认设置为None,有value则设置value
d. d.copy() 内存新建一个d,和直接赋值不一样,一者变另一者并不变
e. d.update(d1)按照d2更新d,有则改变;没有则不变
f. d.pop(key) 把key里的值弹出 d.popitem(),随机弹出一个item值,实际上弹出的确实为最后一个值.
g. d = value 给key赋值,如果没有key,则新建一个key再赋值
h. d.keys() d.values(),d.items(),用于遍历d的键,值,项目.
i. d.clear() 清空字典d,相当于d={}; del d,清除某个项 """
#练习部分
#1.商标与标语相对应的列表编写
brand = ['李宁','TESLA']
slogan = ['一切皆有可能', 'Dream and Future']
print('李宁的口号是:',slogan)
#2.字典的创建及元素的访问
dict1 = {'李宁':'一切皆有可能', 'TESLA':'Dream and Future'} #字典根据键值key来索引元素
print('李宁的口号是:', dict1['李宁']) #字典的标志为大括号{}和key与value之间的冒号
dict2 = {1:'one', 2:'two', 3:'three'} #创建新的字典
print(dict2) #以标号索引
dict3 = {} #创建空的字典
print(dict3)
#3.创建元组字典
dict4 = dict( (('F',70), ('i',105), ('s',115), ('h',104), ('C',67)) )#元组( , )
print(dict4)
#4.用关键字参数创建字典
dict5 = dict(TESLA='Dream and Future',李宁='一切皆有可能')#大括号搭配冒号,小括号搭配
print(dict5)
#5.改变字典中的对应值
dict5['TESLA'] = 'Where there is a dream, there is a future' #通过key索引
print(dict5)
#6. 增加字典元素
dict5['耐克'] = 'Just do it'
print(dict5)
#7.综合练习
print('''
|--- 欢迎进入通讯录程序---|
|--- 1:查询联系人资料---|
|--- 2.插入新联系人 ---|
|--- 3.删除已有联系人---|
|--- 4.退出通讯录程序---|
''')
book = {} #建立空字典
while True:
code = int(input('请输入相关的指令代码:'))
if code == 4:
print('|--- 感谢使用通讯录程序 ---|')
break
name = input('请输入联系人姓名:')
if code ==2: #插入新联系人
flag = 0
for each in book: #查找用户
if each == name:
flag = 1 #用户在通讯录中,key为each
if flag == 1:
print('您输入的用户名在通讯录中已存在 --> ',each,':',book)
choose = input('是否修改用户资料(YES/NO):')
if choose == 'YES' or ' yes':
book = input('请输入用户新联系电话:')
else:
print('好的')
else:
phone = input('请输入联系人电话:') #插入新联系人的联系方式
book = phone
if code ==1: #查询联系人资料
print(name,' : ',book)
if code == 3: #删除已有联系人
flag = 0
for each in book:
if each == name:
flag = 1
if flag == 0:
print('要删除的对象不存在!')
else:
del book #类似列表,可以删除元素
print(name,'已删除!')
print('\n')
#8.综合练习2
def newuser(ssid):
while ssid in user:
ssid = input('此用户名已经被使用,请重新输入:')
user = input('请输入密码:')#直接修改对应值
print('注册成功,赶紧试试登录吧0.0')
def login(ssid):
while ssid not in user:
ssid = input('您输入的用户名不存在,请重新输入:')
psw = input('请输入密码:')
while psw != user: #根据键值key来索引
psw = input('密码不正确,请重新输入:')
print('登陆成功,欢迎进入XXXX系统')
user = dict() #创建新字典
while True:
print('''
|--- 新建用户:N/n---|
|--- 登录账户:E/e---|
|--- 退出程序:Q/q---|
''')
code = input('请输入指令代码:')
if code == 'n' or 'N':
ssid = input('新建用户中,请输入用户名:')
newuser(ssid)
elif code == 'e' or 'E':
ssid = input('登陆账户中,请输入用户名:')
login(ssid)
elif code == 'q' or 'Q':
print("感谢您的使用,欢迎再次登陆~")
break
</font>
高渐飞 每隔几个小时就发一个练习? liuzhengyuan 发表于 2018-7-12 20:26
高渐飞 每隔几个小时就发一个练习?
放假了,恰好有空。就看视频做练习喽
页:
[1]