目录
小伙伴们昨天已经讲了一点python的数据类型了,今天我们来讲讲python剩下的数据类型以及运算符,一些小伙伴已经可以开始尝试写点简单的小程序了。坚持就是胜利同志们,fighting!!!
相比于列表,字典可以精准的找到存储的数据,字典使用花括号括起来的,括号内存放的是键值对,键值对之间用逗号隔开,键即key是用来描述值的。值即value是真正的数据,value可以是任意数据类型。因为字典是无序的,不能用索引来查找数据,需要靠键(key)来进行引用数据,所以键是唯一的,当有多个同名键的时候,最后的会代替掉前面,值可以不唯一。
tinydict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} # 字典
tinydict['Name'] # 字典取值
字典键的特性
集合的功能很单一基本上是用来去重和关系运算,使用频率很低。集合是用大括号括起来的,括号里面装的不是键值对。集合是一个无序不重复的元素序列,如果大括号定义空的数据那么这个数据集的类型就是字典,创建空集合是用set()。
s = {1, 2, 3, 4 ,5} # 集合
s = set() # 空集合
元组和列表相似,使用的是小括号,元组存储的数据一般是只给看不能改的。任意无符号的对象,以逗号隔开,默认为元组。小括号括起来,里面可以放一个或多个元素,元素之间用逗号分隔,元素可以是任意数据类型。
注意:当元组中只有一个元素时要在元素后面加个逗号,不加逗号就不是元组而是其它单个的数据类型。
t = (1, 2, 3, 4, 5) # 元组
t = 1, 2, 3, 4, 5 # 默认为元组
布尔值只有两种状态,True意为正确,False意为错误。布尔值是被用来在逻辑判断中描述事物对错的。除了0、None、一些空的数据集等外都是True。同时,布尔值的变量名是以is开头的,比如is_right、is_delete等。
与用户交互主要是涉及到输入和输出,使用input来获取用户的输入数据,在python3.x中,input获取的数据都会转换成字符串型,而python2.x中只有raw_input和input几乎一样外,python2.x中的input在用户输入数据时,用户输入的是什么数据类型,就是什么数据类型。用print在计算机中将输入数据打印出来。
age = input("请输入你的年龄:") # 输入18
print(type(age)) # str python3.x
age = input("请输入你的年龄:") # 输入18
print(type(age)) # int python2.x
age = raw_input("请输入你的年龄:") # 输入18
print(type(age)) # str python2.x
格式化输出主要知识就是占位符,%s可以给任意数据占位,%d只能给数字占位。
name = 'king'
age = 18
gender = 'male'
print("我的名字叫%s,今年%s岁,性别%s" % (name, age, gender)) # 第一种格式化输出
print(f"我的名字叫{name},今年{age}岁,性别{gender}") # 第二种格式化输出,要求python3.6及以上。
乘 ==> *
除 ==> /
整除 ==> //
取余 ==> %
等于 ==> ==
增值赋值是为了少写一个变量名,增值赋值相比一般赋值在内存中具有空间占用优势,数学赋值计算中,+有合并的用法,list1 = list1 + list2会改变list1的地址,但list1 += list2不会改变list1的地址。
x += 100 # x = x + 100
x -= 100 # x = x - 100
x /= 100 # x = x / 100
x *= 100 # x = x * 100
链式赋值没什么好讲的直接上过程
x = y = z = 100
'''
上述链式赋值等价于
x = 100
y = x
z = x
链式赋值的原理是,找一个中间变量先指向变量值,然后让x,y,z都指向temp指向的变量值。
temp = 100
x = temp
y = temp
z = temp
'''
继续上过程,但是记住交叉赋值可以多个变量,但是为了防止被绕晕,建议数量不要太多。
m = 10
n = 100
m, n = n, m
在正常情况下,解压赋值需要注意变量的个数要和列表的元素个数一样。
ls = [12, 32, 51, 62, 36, 78]
age1, age2, age3, age4, age5,age6 = ls # 左右数量要一致
'''打破数量限制'''
a, b, *_ = ls # a, b, *_ ==>12, 32, [51, 62, 36, 78]
a, *_, b = ls # a, b, *_ ==>12, [32, 51, 62, 36], 78
'''
星号后面可以是任何符合变量命名标准的变量名,当用单独下划线作为变量名时意味着,指向的值暂时用不到,星号的意思就是取暂时不要的值赋值给星号后面的变量名,并以列表的形式体现。
'''
and即与,连接多个条件必须都满足才为True,or即或,连接多个条件必须都不满足才为False,not即非,用来翻转条件的,True翻转后为False,False翻转后为True。
注意:三个逻辑运算符之间是有优先级的,not>and>or,但是一般情况下,我们在写逻辑运算时都会用小括号去强制逻辑顺序。
3 > 2 and 10 < 100 and 1 > -1 # True
3 < 2 or 10 > 100 or 1 < -1 # False
not True # False
成员运算符用于判断个体是否在某个数据群内,用in。是否不在用not in。
ls = ['king', 'guido', 'java', 'JavaScript']
print('king' in ls) # True
print('king' not in ls) # False
身份运算符is用于判断两个数据在内存中的地址是否一样,即id是否一样。==用于判断两个值是否一样。python为了避免频繁的创建和销毁对象,python采用了缓存池技术,[-5,257),在缓存池中的数值不管怎么赋值id都是一样,当然把大于257的值赋值给一个变量名,再把该变量名指向的变量值赋值给另一个变量名,两个变量名地址一样。
a = 1
b = 1
print(a is b) # True
print(a == b) # True
a = 257
b = 257
print(a is b) # False
print(a == b) # True
手机扫一扫
移动阅读更方便
你可能感兴趣的文章