# python 3.7.5
# Time : 2019/4/1
# #
# 列表的基本操作
# #
# 列表的取值
# 这里我取1
# list=[1,2,3,4,5,6,7,8,9]
# # print(list[0])
# # #取5
# # print(list[4])
# # #反向取值
# # #取7
# # print(list[-3])
# #
# 列表的定义
# list=[1,2,3,['a','b','c']]
# #print(list[3])
# var=list[3]
# print(var)
# 继续取反
# print(list[-1])
# 查看类型
# print(var,type(var))
# #
# 更改列表中的值
# 更改1为100
# 首先解决一个问题为什么我要在列表中定义a,b,c时要加'因为如果不加,列表就会认为他是一个变量,那他既然是变量我又没有给它赋值,所以它当然会报错
# 当然加' " ''' 这些都可以 不加的话也可以就直接在上方给变量赋值就可以了
# list=[1,2,3,['a','b','c']]
# list[0]=100
# print(list[0])
# 更改b为y
# list[3][1]='y'
# print(list[3][1])
# print(list)
# 查看类型
# print(list[3][0],type(list[3][0]))
# #
# 元组
# 它是一系列顺序的组合,标识符时逗号,初始化之后元组内的值不能被更改
# tuple1=("a","b","c","d",1,2,3,4,5)
# print(tuple1,type(tuple1))
# print(tuple1[2])
# var=tuple1[1]
# print(var)
# 元组内的值一旦被定义就无法修改
# tuple1=("a","b","c",1,2,3,("d","e"),[5,6])
# tuple1[6][9]=8
# print(tuple1)
# #
# 当然元组可以为空
# a=()
# print(a,type(a))
# 但是如歌这么设置元组会不成功他会变成一个其他的类型
# a=(1)
# print(a,type(a))
# 这样才可以
# a=(1,2)
# print(a,type(a))
# #
# 集合:它是一个特定的无序组合。在集合中所有元素不能重复,标识符:无
# set1={1,2,3,4,5}
# print(set1,type(set1))
# 上次也说过如果想要定义一个空的集合
# set2=set()
# print(set,type(set))
# #
# 字典是一种键值映射的一组无序组合,他的值可以修改,标识符{}
# 字典时唯一不可以重复
# dict1={"名字1":"杨洋1","名字2":"杨洋2","名字3":"洋洋"}
# print(dict1,type(dict1))
# 打印单个字典中的值时,他的目标时靠键来索引
# var1=dict1["名字2"]
# print(var1)
# #
# 想要更改字典中的值时:
# dict1["名字3"]="杨洋3"
# print(dict1)
# #
# 如果我想在字典中添加一个新的K/V怎做??
# dict1["名字4"]="杨洋4"
# print(dict1)
# #
# 在字典中添加一个更多的值
# dict1={"name1":"yy1","夜深":["人静","我","独自坐在","家中"],"day":["Today","is","good","day"]}
# print(dict1)
# print(dict1,type(dict1["夜深"],))
# var1=dict1["夜深"]
# print(var1)
# #
# dict1={"我现在":"兴奋","状态":{"夜深":"人静","我独自":"坐在家中","敲着":"代码"}}
# print(dict1)
# var1=dict1["状态"]
# print(var1)
# dict1["状态"]["我独自"]="写着"
# print(dict1)
# 更改字典内容
# dict1["状态"]["我独自"]="在我的小屋子里"
# print(dict1)
# #
# #
# li=["hello","seven",["mon",["h","kelly"],'all'],123,446]
# var=li[2][2]
# print(var)
# var1=li[2][1][1]
# print(var1)
# var2=li[3]
# print(var2)
#
#
# tu=("alex",[11,22,{"k1":"v1","k2":["age","name"],"k3":(11,22,33)},44])
# tu[1][2]["k2"][1]="yangyang"
# print(tu)
#
# dict={"k1":"v1","k2":"v2","k3":[11,22,33]}
# print(dict)
# dict["k1"]="alex"
# print(dict)
# num1=1;
# num2=1.5;
# print(num1,type(num1))
# print(num2,type(num2))
# var=num1+num2
# print(var,type(var))
#手动数据类型转换:随开发的意志进行转换(思想,代码需求)
#整型转换
#int
#转换之后会把小数之后的的数全部舍弃,1.51舍弃51
# float1=1.51
# var=(int(float1))
# print(var,type(var))
#bool(布尔类型)
#boll在转换时True会被转换成1,False会被转换成0
# bool1=True
# bool2=False
# var1=(int(bool1))
# var2=(int(bool2))
# print(var1,type(var1))
# print(var2,type(var2))
#复数
#complex
#复数不可以被转换
# complex1=10 + 0j
# var1=(int(complex1))
# print(var1,type(var1))
#str字符串
# str="1"
# var1=(int(str))
# print(var1,type(var1))
#字符串并不能对字符进行转型
# str2="helloworld"
# var2=(int(str2))
# print(var,type(var2))
#字符串只能转型纯整数
# str3="4.2"
# var3=(int(str3))
# print(var3,type(var3))
#列表
#列表可一转型,但是只能转型整数,如果列表中的值为其他的类型而并非整数则不能转型
# list1=[1,2,3,4]
# var1=(int(list1[1]))
# #var1=(int(list1))
# # print(var1,type(var1))
#元组
#元组不能被转型,因为它违反了元组的规则,不可一被更改,!
# tuple1=(1,2,3,4,5,6,7)
# var1=(int(tuple1))
# print(var1,type(var1))
#set(集合)
#当然集合也不能被转型
# set1={1,2,3,4,5,60}
# var1=int(set1)
# print(var1,type(var1))
#字典
#它也不能被转型
#它怎么样都不能被转型
# dict1={"name":1,"name2":2}
#var1=(dict1,int(dict1))
#print(var1,type(var1))
# var2=(int(dict1["name"][0]))
# print(var2,type(var2))
#float(浮点型转型)
# int1 = 1
# print(int1,type(int1))
# var1=float,(int1)
# print(var1)
# var1=(float,(int1))
# print(var1,type(var1))
#布尔类型bool
#可以转换它们转换成小数之后会变成1.0and0.0
# bool1=True
# bool2=False
# var1=float(bool1)
# var2=float(bool2)
# print(var1,type(var1))
# print(var2,type(var2))
#float和整数转换一样
#其中复数,字符串(纯整数),列表,元组,集合,字典都不能进行转型
# list 不可以转换
# tuple 不可以转换
# set 不可以转换
# dict 不可以转换
#复数类型的转换
#int类型(可以转换)
# int1 = 1
# var1=complex(int1)
# print(var1,type(var1))
#float类型
#可以转换
# float1=4.2
# var1=complex(float1)
# print(var1,type(var1))
#boll(布尔类型)
#可以转换
# bool1=True
# bool2=False
# var1=complex(bool1)
# var2=complex(bool2)
# print(var1,type(var1))
# print(var2,type(var2))
#字符串类型可以转换纯整数,但不能转型字符
# str1='1'
# var1=complex(str1)
# print(var1,type(var1))
#列表无法进行转换
# list1=[1]
# var1=complex(list1)
# print(var1,type(var1))
#元组无法被转换
# tuple1=(1,2,3,4)
# var1=complex(tuple1)
# print(var1,type(var1))
#集合无法被转换
# set1={1,2,3,4,5}
# var1=complex(set1)
# print(var1,type(var1))
#字典也无法进行转换
# dict1={"a":"0","b":"1"}
# var1=complex(dict1)
# print(var1,type(var1))
#bool值的转换
#在布尔类型中1为True,0为False
# int1 = 1
# var1=bool(int1)
# print(var1,type(var1))
#0为False
# int1=0
# var1=bool(int1)
# print(var1,type(var1))
#浮点型
#原理与整数int同理
# float1=1.5
# var1=bool(float1)
# print(var1,type(var1))
#
# float2=0.0
# var2=bool(float2)
# print(var2,type(var2))
#复数
#True
# complex1=10 + 5j
# var1=bool(complex1)
# print(var1,type(complex1))
#False为0j
# complex2=0j
#这样写0+0j=0j
# complex2=0+0j
# var2=bool(complex2)
# print(var2,type(var2))
#字符串
#True
# str1="1"
# var1=bool(str1)
# print(var1,type(var1))
#flase
#注意就算这样写字符串的类型也不会变成flase
# str2="0"
# var2=bool(str2)
# print(var2,type(var2))
#所以字符串的类型想为flase如下:
#如果让字符串为flase字符串的值必须为空
# str2=""
# var2=bool(str2)
# print(var2,type(str2))
#列表
#True
# list1=[1]
# var1=bool(list1)
# print(var1,type(var1))
#flase
# list2=[ ]
# var2=bool(list2)
# print(var2,type(var2))
#元组
#True
# tuple1=(1)
# var1=bool(tuple1)
# print(var1,type(var1))
#flase
# tuple2=( )
# var2=bool(tuple2)
# print(var2,tuple2)
#集合
#True
# set1={1,2,3}
# var1=bool(set1)
# print(var1,type(var1))
#flase
# set2=set()
# print(set2)
# var2=bool(set2)
# print(var2,type(var2))
#字典
#true
# dict1={"a":"1","b":"2"}
# var1=bool(dict1)
# print(var1,type(var1))
#flase
# dict2={}
# var2=bool(dict2)
# print(var2,type(var2))
#总结bool:只要不为下面的值,就全是true
"""
int 0
float 0.0
complex 0j
str "" 空字符串
list [ ]空列表
tuple ( )空元组
set set()空集合
dict {} 空字典
"""
#list(列表转换)
#int
#不能转换
# int1=1
# var1=list(int1)
# print(var1,type(var1))
#float(浮点型)
#也不能转换
# float1=10.5
# var1=list(float1)
# print(var1,type(var1))
#布尔bool
#也不能转换
# bool1=True
# var1=list(bool1)
# print(var1,type(var1))
#复数complex
#复数依旧不可以
# complex1=10 + 5j
# var1=list(complex1)
# print(var1,type(var1))
#总结:int float bool complex 都不可以转换
#字符串
#可以转换,list转换会把字符串中的每一个值都划分到一个元素
# str1="12345"
# var1=list(str1)
# print(var1,type(var1))
# 元组
# 可以转换,也是把元组中的每一个数变成一个元素
# tuple1=(1,2,3,4,5,6)
# var1=list(tuple1)
# print(var1,type(var1))
#集合
#也可以转换,依旧是换成元素
# set1={1,2,3,4,5,6,7,8}
# var1=list(set1)
# print(var1,type(var1))
#字典
#字典也可以但是他会按照键来转型,只会转换键,不会转换值
# dict1={"name":"yy1","name2":"yy2"}
# var1=list(dict1)
# print(var1,type(var1))
#字符串的转换
#int类型
#可以转换
# var=1
# val=str(var)
# print(var,type(val))
#浮点型(float)
#可以转换
# var1=4.2
# var2=str(var1)
# print(var2,type(var2))
#复数
#可以
# complex1=10 + 5j
# str1=str(complex1)
# print(str1,type(str1))
#列表
#也可以转换
# var1=[1,2,3,4,5,6]
# var2=str(var1)
# print(var2,type(var2))
#元组
#可以转换
# var1=(1,2,3,4,5,6)
# var2=str(var1)
# print(var2,type(var2))
#集合
#可以转换
# var1={1,2,3,4,5,6,7,8}
# var2=str(var1)
# print(var2,type(var2))
#字典
#可以转换
# dict1={"name1":"yy1","name2":"yy2"}
# var1=str(dict1)
# print(var1,type(var1))
#总结:字符串转换可以转换任何的类型
#元组的转换
#int
#不能转换
# var=1
# var2=tuple(var)
# print(var2,type(var2))
#folat(浮点型)
#浮点型不能转换
# float1=4.2
# tuple1=tuple(float1)
# print(tuple1,type(tuple1))
#复数
#也不能转换
# var1=4 + 2j
# var2=tuple(var1)
# print(var2,type(var2))
#字符串
#可以转换
# var1="hello"
# var2=tuple(var1)
# print(var2,type(var2))
#列表
#可以转换
# var1=[1,2,3,4,5,6]
# var2=tuple(var1)
# print(var2,type(var2))
#元组
#可以转换
# var1=(1,2,3,4,5,6)
# var2=tuple(var1)
# print(var2,type(var2))
#集合
#可以转换
# var1={1,2,3,4,5,6,7,8}
# var2=tuple(var1)
# print(var2,type(var2))
#字典
#可以转换但是只能转换建,不能转换值
# dict1={"name1":"yy1","name2":"yy2"}
# var1=tuple(dict1)
# print(var1,type(var1))
#总结:元组不能转dict换数字类型,但是只要是容器的类型都可以转换