zoukankan      html  css  js  c++  java
  • 【Python026--字典内键方法】

    一,内键方法

    1、fromkeys(...)

    语法:dict1.fromkeys(s[,v]):s指的是字典的键值,[,v]指的是可选项(值),[,v]不填写的话默认为none

    #不填写第二个值,默认为none

    >>> dict1 = {}
    >>> dict1.fromkeys((1,2,3))
    {1: None, 2: None, 3: None}

    #第二个值是多个字符串时,会作为一个整体赋值给键值

    >>> dict1.fromkeys((1,2,3),('one','two','three'))
    {1: ('one', 'two', 'three'), 2: ('one', 'two', 'three'), 3: ('one', 'two', 'three')}

    #采用fromkeys后,不能对value进行修改,只会重新创建一个字典

    例如:尝试对1,3的key进行修改为four,five

    >>> dict1.fromkeys((1,3),('four','five'))
    {1: ('four', 'five'), 3: ('four', 'five')}
    >>>

    ---由代码可以得知:只会重新创建一个字典,不能对其进行修改

    2、keys():返回字典的所有键,

    3、value():返回字典的所有值

    4、items():返回字典的整个项

    ---

    >>> dict1 = {}
    >>> dict1 = dict1.fromkeys((range(5)),('赞'))
    >>> dict1
    {0: '赞', 1: '赞', 2: '赞', 3: '赞', 4: '赞'}
    >>> for eachKey in dict1.keys():
        print(eachKey)   
    0
    1
    2
    3
    4

    >>> for eachValue in dict1.values():
        print(eachValue)  




    >>> for eachItems in dict1.items():
        print(eachItems)   
    (0, '赞')
    (1, '赞')
    (2, '赞')
    (3, '赞')
    (4, '赞')
    >>>

    5、检查字典内的键是否存在,并且不需要报错,采用get(键)并且也可以进行赋值get(键,value)

    #检查dict1字典内的第五个键是否存在

    >>> dict1.get(5)
    >>> print(dict1.get(5))
    None

    --返回的是none

    #对dict1字典内的第五个键进行赋值

    >>> dict1.get(5,'木有!')
    '木有!

    6、成员资格操作符:in       not in

    >>> 5 in dict1
    False
    >>> 4 in dict1
    True

    7、clear():清除字典

    8、copy():拷贝字典

    >>> a = {1:'one',2:'two',3:'three'}
    >>> b = a.copy()
    >>> c = a
    >>> b
    {1: 'one', 2: 'two', 3: 'three'}
    >>> c
    {1: 'one', 2: 'two', 3: 'three'}

    9、pop():截取字典的片段value

    >>> a = {1:'one',2:'two',3:'three'}

    >>> a.pop(2)  #2指的是键值
    'two'

    10、popitem():随机截取字典内的数据

    >>> a.popitem()
    (3, 'three')
    >>> a.popitem()
    (1, 'one')

    11、setdefault():随机增加字典内的数据

    >>> a = {1:'one',2:'two',3:'three'}
    >>> a.setdefault(5,'five')
    'five'
    >>> a
    {1: 'one', 2: 'two', 3: 'three', 5: 'five'}
    >>>

    ----

    >>> a = {1:'one',2:'two',3:'three'}
    >>> a.setdefault('小白')
    >>> a
    {1: 'one', 2: 'two', 3: 'three', '小白': None}

    12、update():更新字典

    >>> a = {1: 'one', 2: 'two', 3: 'three', 5: 'five'}

    >> b = {'小白':'狗'}
    >>> a.update(b)
    >>> a
    {1: 'one', 2: 'two', 3: 'three', 5: 'five', '小白': '狗'}

    二、练习题

    1、现在要实现一个需求,弹出一个界面,可以让用户选择是新建用户还是登录已有账户,或者直接退出,在登录账户的时候,密码输入错误不能超过三次,超过三次要回到主界面,用户名输入‘q’的时候也可以退出并回到主界面

    --- 小甲鱼的代码:

    ---思路:

    a、注册新用户,通过用户名判断是否被使用,被使用重新输入,没有被使用继续输入密码,注册成功

    b、登录,通过用户判断是否存在,不存在重新输入,存在输入密码(判断密码是不是一致,一致登录成功,不一致提示输入密码错误)

    c、通过不同的指令来确定进行注册,还是登陆,还是退出

    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
        pwd = user_data.get(name)
        Ntimes = 3
        while Ntimes !=0:
            passwd = input('请输入密码:')
            if passwd != pwd:
                print ('密码输入错误,还有%d 次机会'% Ntimes)
                Ntimes -=1
                if Ntimes ==0:
                    print('机会已经用完!')
                    break
            elif passwd == pwd:
                print('欢迎进入XX00系统,请点击右上角的结束程序')
            else:
                print('密码输入错误')
    
    def showsume():
        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 == 'N' or choice == 'n':
                new_user()
            if choice == 'E' or choice == 'e':
                old_user()
            if choice == 'Q' or choice == 'q':
                break
    
    showsume()
  • 相关阅读:
    目标检测算法的总结(R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD、FNP、ALEXnet、RetianNet、VGG Net-16)
    目标检测评价标准(mAP, 精准度(Precision), 召回率(Recall), 准确率(Accuracy),交除并(IoU))
    JavaScript中继承的多种方式和优缺点
    使用Vue封装暂无数据占位图组件
    Vue组件间通信方式到底有几种
    通俗易懂了解Vue中nextTick的内部实现原理
    从0开始编写webpack插件
    常用的webpack优化方法
    通俗易懂了解Vue内置组件keep-alive内部原理
    原生JS实现集合结构
  • 原文地址:https://www.cnblogs.com/frankruby/p/9260189.html
Copyright © 2011-2022 走看看