# 成员检测与标识号检测
in:判断对象是否在序列(列表、字符串、元组、字典)中,如果存在则返回true
not in:判断对象是否不在序列中,如果是则返回true
is:判断两个对象是否相同
数字、字符串和元组相同则相同,都是不可变的数据类型
列表、字典和集合是要比较内存地址的,都是可变的数据类型
is not:判断两个对象是否不相同
# python的数据类型转换
type(object):检测数据类型
a = 123
b = "123"
c = [1, 2, 3]
d = (1, 2, 3)
e = {1, 2, 3}
f = {
1: 1,
2: 2,
3: 3
}
print(type(a)) # <class 'int'> 整型
print(type(b)) # <class 'str'> 字符串
print(type(c)) # <class 'list'> 列表
print(type(d)) # <class 'tuple'> 元组
print(type(e)) # <class 'set'> 集合
print(type(f)) # <class 'dict'> 字典
强制数据类型转换
str(obj):将其他类型数据转换为字符串类型,所有类型都可以转换为字符串类型
int(obj):将其他类型的数据转换为整型类型。数字类型之间可以相互转换,只有纯数字的字符串可以转换为数字类型。
float(obj):将其他类型的数据转换为浮点数类型。数字类型之间可以相互转换,只有纯数字的字符串可以转换为数字类型。
bool(obj):将其他类型转为True、False
容器类型转布尔值:(字符串、列表、元组、字典、集合):容器为空则False 不为空则True
非容器类型转布尔值:(数字类型、布尔类型):int中0为False其他为True,float中0.0为False其余为真
list(obj):将其他类型转换为列表类型
数字类型为非容器类型,不能转换为列表
字符串转列表时,会将字符串中每一个字符当成列表的元素
元组转列表时,会将元组中每一个元素当成列表的元素
集合转列表时,结果时无序的
字典转列表时,只会保留字典的key
tuple(obj):将其他类型转换为元组类型,规则与list(obj)相同
set(obj):数字类型非容器不能转换,其他类型转换为集合后结果都是无序的
dict(obj):其他类型转字典类型
数字类型非容器不能转换
字符串无法生成二级容器不能转换
列表必须为等长二级容器,子容器中元素个数必须为2
list1 = [["name", "otto"], ["age", "28"]]
# {'name': 'otto', 'age': '28'}
print(dict(list1))
元组必须为等长二级容器,子容器中元素个数必须为2
tuple1 = (("name", "otto"), ("age", "28"))
# {'name': 'otto', 'age': '28'}
print(dict(tuple1))
集合不能转换为字典类型
判断一个对象是否是已知的数据类型
isinstance(对象,对象类型):判断后返回一个布尔值
对象类型:int(整型) float(浮点型) list(列表) tuple(元组)
set(集合) dict(字典) bool(布尔) str(字符串)
print(isinstance(tuple1, tuple)) # True
# python的流程控制
if...elif...else分支语句:
if True:
执行语句
elif True:
执行语句
...
else:
执行语句
for循环遍历序列:
不通过下标实现对序列每一个元素的访问(字符串、列表、元组、字典、集合) 其中对字典的遍历只能得到key
for 变量 in 序列:
print(变量)
通过for循环得到字典的键值对
d = {
"name": "otto",
"age": "28"
}
# 字典中items()方法 - 以列表的形式返回字典中所有键值对
for i in d.items():
# ('name', 'otto')
# ('age', '28')
print(i)
range(start,end,step):start到end的区间 step默认为1
for i in range(0,6,2):
# 024
print(i)
双层for循环提取嵌套列表中的元素
a = [1, 2, [3, 4], [5, 6]]
for i in a:
# 提取到元素后进行判断是否为列表 是的话再次循环提取
if isinstance(i, list):
for j in i:
print(j) # 3 4 5 6
while循环:
while boolean:
满足判断执行
else:
不满足后执行
循环中的关键字:
break:可以跳出for、while循环体 - 跳出
continue:用来跳过当前循环体中的剩余语句,再进行下一轮循环 - 跳过
pass语句:空语句,为了保持程序结构的完整性
用于那些语法上必须要有什么语句,但程序什么也不做的场合,相当于占位作用
for i in range(0, 10):
pass #结构完整编译不会报错