# 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换数字类型,但是只要是容器的类型都可以转换