知识点1 - 字典
1、字典的定义:
'''
1、以key:value的形式;
2、key一定是不能重复的,重复的会被覆盖
3、key一定是不可变类型
4、字典是无序的,因此没有切片和索引的操作
'''
info={'book':'非暴力沟通','book':'红楼梦'}
print('字典长度:',len(info),',字典内容:',info)
# 字典长度: 1 ,字典内容: {'book': '红楼梦'}
kebiankey_info={[list]:'非暴力沟通',[list1]:'红楼梦'}
print('字典长度:',len(kebiankey_info),',字典内容:',kebiankey_info)
# TypeError: unhashable type: 'list'
bukebiankey_info={1:'非暴力沟通',1.2:'红楼梦',False:'d',(1,):"haha"}
print('字典长度:',len(bukebiankey_info),',字典内容:',bukebiankey_info)
字典长度: 4 ,字典内容: {1: '非暴力沟通', 1.2: '红楼梦', False: 'd', (1,): 'haha'}
2、字典的增删改查
2.1、查
# 获取单个值
info={"name":'非暴力沟通',"bonus":'红楼梦',False:'d',(1,):"haha"}
print(info["name"])
print(info.get("name"))
# > 非暴力沟通
# 依次循环获取多个key,value:
for key,values in info.items():
print(key,values)
'''
name 非暴力沟通
bonus 红楼梦
False d
(1,) haha
'''
# 获取所有的key
print(info.keys())
# dict_keys(['name', 'bonus', False, (1,), 'hobby'])
# 获取所有的value
print(info.values())
# dict_values(['非暴力沟通', '红楼梦', 'd', 'haha', '游泳'])
2.2、新增和修改
# 如果key在字典中没有,则为新添加元素,如果key存在则为修改元素
info["name"]="大话西游"
print(info["name"])
# 大话西游
info["hobby"]="游泳"
print(info["hobby"])
# 游泳
2.3、删除
# 只能通过key去删除
info.pop("hobby")
知识点2 - 集合
3、集合
# set()集合是一个无序的不重复的序列
# 1、去重
set_values={"good","moning","hello","hi","i an fine","good"}
print(set(set_values))
# {'hi', 'i an fine', 'good', 'hello', 'moning'}
# 2、新增元素
new_set= set(set_values)
new_set.add("你好")
print(new_set)
# {'i an fine', '你好', 'moning', 'hi', 'hello', 'good'}
# 添加元素,且元素可以是元组,列表,字典
new_set.update((1,))
print(new_set)
# {1, 'hi', 'good', 'moning', 'i an fine', 'hello', '你好'}
# 3、移除元素
new_set.remove(1)
print(new_set)
# {'hi', 'i an fine', '你好', 'moning', 'hello', 'good'}
# 移除元素,且不存在不会报错
new_set.discard("1")
print(new_set)
# {'moning', 1, '你好', 'i an fine', 'hello', 'hi', 'good'}
# pop() 移除随机的元素
知识点3 - 运算
4、运算
4.1 算数 【+,-,*,/,//,%,**】
# 加减乘除就不说了
'''
% 取模
返回除法的余数
'''
print(11%3)
# 2
'''
** 幂
返回x的y次幂
'''
print(11**3) # 11的3次方
1331
'''
// 取整除
向下取接近商的整数
'''
print(11//3)
# 3
'''
4.2 赋值 【=,+=,-=,*=,/=,//=,%=,**=】
# 举个列子
a =12
b=a
print(b)
# 12
b+=2
print(b)
# 14
4.3 比较 【==,!=,>=,<=,>,<】
'''
==
表示二者是否相等
!=
表示二者是否不相等
'''
# 得到true or false
a=12
b=14
print(b==a)
# False
4.4 逻辑 【and,or,not】
'''
and:
布尔"与" - 如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值,只有所有条件都为真时才返回true
'''
print("a:",a,"b:",b,b!=a and b>=a)
#a: 12 b: 14 True
print("a:",a,"b:",b,b!=a and b<=a)
# a: 12 b: 14 False
'''
or:
布尔"或" - 只要一个条件为真他就为真
'''
print("a:",a,"b:",b,b!=a or b<=a)
# a: 12 b: 14 False
'''
not:
布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。
'''
print("a:",a,"b:",b,not b<=a)
# a: 12 b: 14 True
4.4 成员 【in,not in】
# in x是否在什么什么的里面
# not in x是否不在什么什么的里面
# 一般是:元组,列表,集合,字典,字符串
str= "hava a bonus"
print("a" in str)
print("j" not in str)
#True
5、浮点数的精度控制
# 现象
print(0.1+0.2)
# 0.30000000000000004
print(0.1+0.2 == 0.3)
# False
# 处理办法:
from decimal import *
print(Decimal(str(0.1)) + Decimal(str(0.2)) == Decimal(str(0.3)))
# Turn
来吧,练习一下吧~
题目:使用字典和列表存储和操作以下数据
# a. 某相亲节目需要获取你的个人信息,请存储你的:姓名、性别、年龄
vip_info=[]
info_detail_dict={}
name=input("嘿,欢迎来到相亲大会,首先我们需要获取你的名字:")
gander =input("做的好,请输入你的性别,只能填写男或女哦")
age =input("好的,为了更好的匹配,请问您的年龄是?")
info_detail_dict["name"]=name
info_detail_dict["gander"] =gander
info_detail_dict["age"]=age
vip_info.append(info_detail_dict)
print("恭喜入会成功,请查看你输入的信息",vip_info)
# b. 有一个人对你很感兴趣,平台需要您补足您的身高和联系方式;
stature=input("哇~ 好棒,识别到有人想更加深入的了解你,是否同意告诉他你的身高")
phone =input("给他你的联系方式把~")
info_detail_dict["stature"] =stature
info_detail_dict["phone"] =phone
print(vip_info)
# c, 平台为了保护你的隐私,需要你删除你的联系方式;
vip_info[0]["phone"] =""
print("尊贵的会员,处于安全考虑,我们将删除你的手机号,你在平台的最新数据是:")
print(vip_info)
# d, 你为了取得更好的成绩,需要取一个花名,并修改自己的身高和其他你觉得需要改的信息。
nikename= input("请输入您的花名")
vip_info[0]["age"] ="100"
vip_info[0]["stature"] ="196"
print("平台根据最新的数据监测,将实时更新你的身高和年纪,你在平台的最新数据是:",vip_info)
# e, 你进一步添加自己的兴趣,兴趣至少包含 3个(注意:兴趣是另外一个列表。请将这个列表作为一个成员,添加到原个人信息列表当中,添加到末尾即可。
hobby=[input("请输出您的爱好,用逗号隔开:")]
info_detail_dict["hobby"] = hobby
print(vip_info)
题目(字符串和列表):利用下划线将列表li=["python","java","php"]的元素拼接成一个字符串,然后将所有字母转换为大写。
lis=["python","java","php"]
str1="_".join(lis).upper()
print(str1)
---------------------------------------
'''题目(类型操作)有下面几个数据 :
t1 = ("aa",11)
t2= ("bb",22)
li1 = [("cc",11)]
请进行相关操作变为如下字典:
{"aa":11,"cc":11,"bb":22} '''
----------------------------------------
t1 = ("aa",11)
t2= ("bb",22)
li1 = [("cc",11)]
li2=[]
li2.extend(list(li1[0]))
li2.extend(list(t1+t2))
print(li2)
dict_new={}
for i in range(0,len(li2)-1,2):
dict_new[li2[i]]=li2[i+1]
print(dict_new)
方式2:
dict_new[t1[0]]=t1[1]
dict_new[t2[0]]=t2[1]
dict_new[li1[0][0]]=li1[0][1]
print(dict_new)
------------
'''
题目:简述学过的数据类型
可变类型有哪些
{"列表":'list','字典':'dict','集合':'set'}
不可变类型有哪些
{"数字":'(int,float)';布尔:(bool),字符串:(str);元组:(tuple)}
'''