今日内容概要:
一、补充
二、可变不可变类型(重点)
三、赋值运算(重点)
四、身份运算(重点)
五、流程控制之if判断(重点)
内容详解:
一、补充
1、换行符
# 换行 print(('abc def')) print('abc def') # 制表符(即空格,每种语言空格不同) print('abc def') # 加空格 print('abc',end = ' ') print('def',end = ' ') print(123)
2、原生字符串(rawstring)
print('xxx is \nb') #xxx is b 表示转意 print(r'xxx is b')#r的作用取消掉字符串中所有符号的意义
3、列表类型
存多个任意类型值,索引对应值
4、字典类型
存多个任意类型值,key对应值
5、布尔类型
只有True 和 False
#直接定义布尔类型的变量值 tag = True #通过比较运算得到布尔值 10 == 10 3 > 2 #隐式布尔值 #隐式布尔值为False的数据类型有:0,None,空 #规则:从左至右,有优先级优先,算到哪返回值到哪 print(bool(0))#False print(1 or 3)#1 print(1 and 3)#3 print(0 or False and 1)#False
二、可变不可变类型
# 1、可变类型:list,dict # 在值改变的情况下,id号不变,也就是说内存地址不变,证明就是在改原来内存空间中的值,即原值可变 # # 2、不可变类型:int、float、str # 在值改变的情况下,id号也跟着变了,也就是说内存地址变了,证明不是在改原来内存空间中的值, # 而是申请了新的内存空间,产生了新的值,即原值不可变 # x=10 # print(id(x)) #8791401940928 # x=11 # print(id(x)) #8791401940960 # x=10.3 # print(id(x))#35870864 # x=11.4 # print(id(x))#34042832 # x="abc" # print(id(x)) #34646256 # x="aBc" # print(id(x))#35783344 # l1=[111,"aaaa"] # print(id(l1))#36181696 # l1[0]=222222 # print(l1)#[222222, 'aaaa'] # print(id(l1))#36181696 # dic={'k1':111,'k2':222} # print(id(dic))#6439744 # dic['k1']="abc" # print(dic)#{'k1': 'abc', 'k2': 222} # print(id(dic))#6439744 # 字典的value可以是任意类型,但是字典的key必须是不可变类型 # dic={1111111:"abc","k2":"def",3.1:'aaa'} # print(dic[1111111])#abc # # # # # 下面写法推荐使用列表代替 # dic={0:'egon',1:"egon1",2:"egon3"} # # print(dic[0])#egon # print(dic[1])#egon1 # print(dic[2])#egon3 # 了解:不可哈希类型就是可变类型,可哈希类型就是不可变类型 dic={[1,2,3]:"abc"}#报错,字典中key要是不可变类型
三、赋值运算
# 1、增量赋值 # age=18 # age += 1 # print(age) # 2、链式赋值 # x=10 # y=x # z=y # z = y = x = 10 # print(x, y, z)#10 10 10 # print(id(x), id(y), id(z))#8791399778240 8791399778240 8791399778240 # 3、交叉赋值 # m = 111 # n = 222 # temp=m # m=n # n=temp #交叉赋值可以将三横简化成一横 m, n = n, m # print(m, n) # 4、解压赋值 salaries = [1.1, 2.2, 3.3, 4.4, 5.5] # mon0 = salaries[0] # mon1 = salaries[1] # mon2 = salaries[2] # mon3 = salaries[3] # mon4 = salaries[4]#解压赋值将5横简化成一横 mon0, mon1, mon2, mon3, mon4 = salaries # print(mon0) # print(mon1) # print(mon2) # print(mon3) # print(mon4) # 变量名的个数必须与包含的值的个数相同,多一个不行,少一个也不行 # mon0, mon1, mon2, mon3, mon4, mon5 = salaries#报错 # mon0, mon1, mon2, mon3 = salaries#报错 # mon0, mon1, mon2, *_ = salaries # print(mon0)#1.1 # print(mon1)#2.2 # print(mon2)#3.3 # print(_)#[4.4, 5.5] # *_, x, y, z = salaries # print(x) # print(y) # print(z) # x, *_, z = salaries # print(x) # print(z) # dic={"k1":111,"k2":222} # del dic['k1'] # print(dic)#{'k2': 222} # dic["kkk"]=111 # print(dic)#{'k2': 222, 'kkk': 111} # 对于字典来说解压赋值取出来的是字典的key dic = {"k1": 111, "k2": 222} x, y = dic print(x, y)#k1 k2 # 了解 a,b,c,d,e="hello" print(a,type(a))#h <class 'str'> print(b) print(c) print(d) print(e)
四、身份运算
is与==
# ==判断的是值是否相等 x = ['a', 'b'] y = ['a', 'b'] # print(x == y) # is判断的是id是否相等 # print(id(x))#31188992 # print(id(y))#31214272 # print(x is y)#False # 分析: # is判断的结果为True,即二者的id一样,即二者内存地址一样,即二者就是一个东西,即值一定相等 # 如果==判断的结果为True,即二者的值一样,那么二者的内存地址可能不一样 # x=None # y=None # # print(x == None) # print(x is None)#True # print(x is y)#True # print((10 > 3) is True)#True # print((10 > 3) == True)#True # x=True # y=True # z=True # print(id(x))#8791406315344 # print(id(y))#8791406315344 # print(id(z))#8791406315344 # 结论:如果要判断一个变量是否等于None、True、False,推荐使用is去判断 x = 10 y = 10 print(x is y)#True print(x == y)#True print(x == 10)#True print(x is 10) # 不要这么用
五、流程控制之if判断
1、什么是if判断
判断 条件1 并且 条件2:
做什么事。。。
否则:
做什么事。。。
2、为何要有if判断
为了控制计算机能够像人一样去完成判断的过程
3、如何用if判断
# 1、介绍 # print('start....') # if 3 != 3 and 10 > 8: # print("条件成立1") # print("条件成立2") # print("条件成立3") # else: # print("条件不成立1") # print("条件不成立2") # print("条件不成立3") # print('end....') # if判断完整的语法 """ if 条件1: 子代码块1 elif 条件2: 子代码块2 elif 条件3: 子代码块3 ... else: 子代码块 """ # 2、必须要有的是if,只有一个if是可以的 # inp_name=input('你的名字: ') # if inp_name == "egon": # print('输入正确') # # print('其他代码') # 3、if+elif # inp_name=input('你的名字: ') # if inp_name == "egon": # print('您的身份是超级vip') # elif inp_name == "张三": # print('您的身份是钻石vip') # elif inp_name == "李四": # print('您的身份是铂金vip') # # print('其他代码') # 4、if+else # inp_name = input('你的用户名: ') # inp_pwd = input('你的密码: ') # # if inp_name == "egon" and inp_pwd == "123": # print('登录成功') # else: # print("刚刚输入的用户名或密码错误") # # print('其他代码') # 5、if+elif+else """ 如果:成绩>=90,那么:优秀 如果成绩>=80且<90,那么:良好 如果成绩>=70且<80,那么:普通 其他情况:很差 """ # score = input("请输入您的成绩: ") # score = int(score) # if score >= 90: # print("优秀") # elif score >= 80: # print("良好") # elif score >= 70: # print("普通") # else: # print("很差") # 补充 # age = 19 # age >= 18 and age <= 20 # print(20 >= age >= 18) # print(18 <= age <= 20) # if判断嵌套if print('ok0') if 10 > 3: if 1 == 1: print('ok1') print('ok2') print('ok3') print('ok4')