day07-字典集合内置方法、深浅拷贝

字典内置方法

'''
字典内置方法	可变数据类型  (key为不可变数据类型)
dic = {'name':'slk', 'age':18, 'height':180}

按key取值/修改值
len()  #返回字典长度
in/not in  #成员运算
del dic[key]  #删除某个键值对
keys()/values()/items()  #取到字典的键/值/键值对
for循环
get(key, new_value)  #如果key in dic,返回dic[key];如果key not in dic,返回new_value,默认返回						 None
update(dic_new)  #在字典后增加字典(键值对)
fromkeys({key1,key2,key3},values)  #新建一个字典,但初始化的值都是一样的
setdefault(key, values1)  #当key in dic时,返回dic[key];当key not in dic时,返回values1,并增						   加新的键值对
copy()  #复制
pop(key)  #取出值,并删除键值对
popitem()  #不需要传值,默认删除最后一个键值对

'''

集合内置方法

'''
集合内置方法	可变数据类型  元素为不可变数据类型  乱序(数字不乱序)
主要作用: 去重


|  #并集
&  #交集
-  #差集
^  #交叉补集
add()  #增加一个元素
pop()  #随机删除
update(set1)  #在后面加入set1中的元素
clear()  #清空
remove(n)  #按值删除指定元素,如果没有该元素,则报错,因此推荐使用discard()
discard(n)  #按值删除指定元素,如果没有该元素,则返回None
set1.issubset(set2)  #判断set1是不是set2的子集
set1.issuperset(set2)  #判断set1是不是set2的父集
set1.difference_update(set2)  #去掉set1中set1和set2的交集
set1.isdisjoint(set2)  #判断set1,set2中是否有相同元素,返回布尔值

'''
数据类型分类 是否可变
可变 列表、字典、集合
不可变 整形、浮点型、字符串、元组

拷贝、浅拷贝、深拷贝

#拷贝、浅拷贝、深拷贝只针对可变数据类型
#拷贝:old中的任何数据类型变化,new都会随着变化
#浅拷贝:old中的可变数据类型变化,new变化;old中不可变数据类型变化,new不变
#深拷贝:old中的任何数据类型变化,new都不变
#内置方法中的copy()是浅拷贝
x = 10
y  x  #拷贝

猜年龄

age = 18
count = 0
count1 = 0
count2 = 0
prize_msg = '''
0:充气娃娃
1:女朋友
2:男朋友
3:AD钙奶
4:iphone11
'''
prize_dict = {
    '0':'充气娃娃',
    '1':'女朋友',
    '2':'男朋友',
    '3':'AD钙奶',
    '4':'iphone11'
}
user_dict = {
    'nick':'123',
    'tank':'456',
    'robot':'789'
}
prize_list = {}

# while count < 3:
#     name = input('输入用户名: ').strip()
#     pwd = input('输入密码: ').strip()
while count1 <3:
    age_inp = input('请输入年龄: ').strip()
    if not age_inp.isdigit():
        print("沙雕,tmd输数字!")
        continue
    age_inp = int(age_inp)
    if age_inp > 18:
        print('dnmd猜大了!')
    elif age_inp < 18:
        print('dnmd猜小了')
    else:
        print('哎呦运气不错!')
        count1 = 9999
        while count2 < 2:
            print(prize_msg)
            prize_choice = input('请输入想要的奖品序号: ').strip()
            if prize_choice not in prize_dict:
                print('沙雕,没这个东西!')
                continue
            if not prize_choice.isdigit():
                print('沙雕,输数字!')
                continue
            if prize_dict[prize_choice] in prize_list:
                prize_list[prize_dict[prize_choice]] += 1
            else:
                prize_list[prize_dict[prize_choice]] = 1
            print(f'获得{prize_dict[prize_choice]}')
            count2 += 1
        print(f'你获得的奖品:{prize_list}')
    count1 += 1

posted on 2019-09-16 16:44  shenblogs  阅读(114)  评论(0)    收藏  举报

导航