小甲鱼Python第二十五讲、第二十六讲(字典)

创建和访问字典

索引的方法
brand = ['苏宁','京东','淘宝']
slogan =['干掉京东','干掉淘宝','干掉苏宁']
print('我们的口号是',slogan[brand.index('淘宝')])
字典的方法
dict1={'苏宁':'干掉京东','京东':'干掉淘宝','淘宝':'干掉苏宁'}
print("我们的口号是:",dict1['淘宝'])
dict2 = {1:'one',2:'two',3:'three'}
print(dict2)打印字典
print(dict2[2])访问
Python 字典 fromkeys() 函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。
dict.fromkeys(seq[, value])

例:
   dict1={}
   print(dict1.fromkeys((1,2,3),'number'))

seq -- 字典键值列表。
value -- 可选参数, 设置键序列(seq)的值。
dict1={}
dict1=dict1.fromkeys(range(30),"赞")三十个键,打印赞
print(dict1)
dict1={}
dict1=dict1.fromkeys(range(30),"赞")
for each in dict1.keys():打印所有的key,相同值也是一样values
    print(each)

第二十五讲课后习题
测试题:
在这里插入图片描述
讨论字典
在这里插入图片描述
67
在这里插入图片描述
不对
在这里插入图片描述

在这里插入图片描述
都一样,没有差别。
在这里插入图片描述
在这里插入图片描述

动动手
在这里插入图片描述

print('---欢迎进入通信录系统---')
print('---1:查询联系人资料---')
print('---2:插入新的联系人---')
print('---3:删除已有联系人---')
print('---4:退出通讯录程序---')
dict1={'小甲鱼':'020-0090909','小傻蛋':'080-2334234'}
while 1:
    temp = int(input('请输入相关的指令代码:'))
    if temp==1:
        name1=input('请输入联系人姓名:')
        if name1 in dict1:
            print(name1+':'+dict1[name1])
        else:
            print('没有此用户')
    if temp==2:
        name2=input('请输入联系人姓名:')
        tel=input('请输入用户联系电话:')
        if name2 in dict1:
            print('您输入的名字已在系统中存在-->',end='')
            if input('是否修改用户资料(NO/YES):')=='YES':
                dict1[name2]=input('请输入用户联系电话:')重新给存在的键赋一个新的值
                print("修改成功!")
            else:
                continue
        else:
            a={name2:tel}
            dict1.update(a)
            print('插入成功')
    if temp==3:
        name3=input('请输入联系人姓名:')
        if name3 in dict1:
            dict1.pop(name3)
        else:
            print('用户不存在')
    if temp==4:
        break

二十六讲课后作业
1.
不支持,会将之前的覆盖掉。
在这里插入图片描述
会自动创建对应的键(Key)并添加相应的值(Value)进去。
在这里插入图片描述

在这里插入图片描述
Python对键的要求严格一点,要求他们必须是可哈希的对象,不能是可变类型。
Python对值是没有任何限制的,他们可以是任意的Python对象。
在这里插入图片描述
{1:‘数字’,3:‘数字’}
在这里插入图片描述

dict1 = {1: 'one', 2: 'two', 3: 'three' }
dict2=dict1
print(dict2)#用赋值的办法只是将对象的引用拷贝过去而已。

可以用字典的copy()办法:dict1=dict2.copy()

动动手
在这里插入图片描述

dict1 = {}
def test1():
    print('---新建用户:N/n---')
    print('---登录账号:E/e---')
    print('---退出程序:Q/q---')
    while 1:
        code = input("请输入指令代码:")
        if code == 'N' or code == 'n':
            inser_user()
        elif code == 'E' or code == 'e':
            login()
        elif code == 'Q' or code == 'q':
            print("程序退出成功,欢迎下次使用!")
            break
def inser_user():#新建用户
    name = input("请输入用户名:")
    if name in dict1:
        print(input("此用户名已经被使用,请重新输入:"))
    Pwd = input("请输入密码:")
    dict1[name] = Pwd#赋值给键相应的值
    print("注册成功,赶紧试试登录吧")
def login():#登录账号
    name = input("请输入用户名:")
    if name not in dict1:
        print(input("您输入的用户名不存在,请重新输入:"))
    password = input("请输入密码:")
    pwd = dict1.get(name)
    if password == pwd:
        print("欢迎进入XXOO系统,请点右上角的x结束程序!")
    else:
        print(input("您输入的密码不对,请重新输入:"))

test1() 

在这里插入图片描述
注意:Python中in的操作符只能用于判断键是否存在于字典中,无法用于判断值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值