# a = range(100,999)
# print (a)
list1 = [10 , 20 , 30, [40, 50], 60]
# print (list1)
# list2 = list1#普通的赋值,两个列表其实指向的是同一个地址
# list2[1]=80
# print(list1,id(list1))
# print(list2,id(list2))
#如果不想让其中的一个列表影响另外的一个列表怎么办
# list2 = list1[:]#切片相当于浅拷贝,两个列表是不同的列表,但是子列表还是指向同一个地址
# list2[1] = 80#改变其中一个列表不影响其他列表
# list2[3][0]=88#改变子列表还是影响到其他列表
# print (list1,id(list1))
# print (list2,id(list2))
#浅拷贝
import copy
# list2 = copy.copy(list1)
# list2[1]=80
# list2[3][0] = 88
# print(list1,id(list1))
# print(list2,id(list2))
#深拷贝,改变其中的一个子列表不影响另外一个子列表
# list2 = copy.deepcopy(list1)
# list2[1] = 80
# list2[3][0] = 88
# print(list1,id(list1))
# print(list2,id(list2))
#2.布尔表达式
# print(1>2) #Ture和False为布尔型,Ture或者1或者非0为真,False或者0为假
# print("a" > "b")#两个字符相比较,是按照ASCII码来比较大小
# print("A" > "a") #A为65,a为97
# print("Aabc" > "aABC") #多个字符比较,只比较第一个字符,如果第一个字符相同,才往后面比较
# print(True==1) #一个=号是赋值,两个==是恒等
# print(True * False == False) #Ture和False可以进行算术运算,True为1,False为0,结果为0,恒等后结果为真
#in,not in
# print(10 in list1) #判断元素是否在列表中
# print(40 in list1) #40在子列表中,并非属于列表
# print(40 in list1[3])
# print(10 not in list1)
# print(40 not in list1)
#3.逻辑运算符
# print(1>2 and 2<3 and 5>4 and 6>5)#逻辑与,一假为假,全真为真
# print(1>2 or 2<3 or 5>4 or 6>5) #逻辑或,一真为真,全假为假
# print(1>2 and 4>5 or 3>2 or 5<4 and 8>9)#优先级为,not,and ,or,结果为真
# print((1>2 and 4>5 or 3>2 or 5<4 )and 8>9)#括号可以改变优先级
#4.判断实例属于某个类
# print(isinstance(4,int))
# print(isinstance(1.23,float))
# print(isinstance("a",str))