python入门之类型、条件、运算符、流程控制之if判断,,1:可变、不可变类型


1:可变、不可变类型

可变类型:值改变,id不变,原值可以被修改

可变类型包括:list,dict

l = [111,222,333]print(id(l))l[0] = 444print(l)print(id(l)) # l中的第一个内容被修改,但两个结果id是相同的

技术图片

dic = {'k1':111,'k2':222}print(id(dic))dic['k1'] = 3333333333print(dic)print(id(dic)) # dic中的'k1'被修改,但是两个结果的id是相同的

技术图片

# 补充# 定义:{}内用逗号分隔开多key:value,# 其中value可以是任意类型# 但是key必须是不可变类型

不可变类型:值改变,id也变了,原值不可被修改

int、float、str是不可变类型

x=10print(id(x))x=11 print(id(x))x=3.1print(id(x))x=3.2print(id(x))x="abc"print(id(x))x='gggg'print(id(x))# 三个类型的两个结果值改变了并且两个结果的id也不相同结论:int、float、str都被设计成了不可分割的整体,不能够被改变

技术图片

2、什么是条件?什么可以当做条件?为何要要用条件?
? 显式布尔值:比较运算符、True、False? 隐式布尔值:所有数据类型,其中0、None、空为假
3:逻辑运算符:用来

not、and、or的基本使用

# not:把紧跟其后的那个条件结果取反print(not 16 > 13)print(not True)print(not False)print(not 10)print(not 0)print(not None)print(not '')结果:FalseFalseTrueFalseTrueTrueTrueFalse# and:逻辑与,and用来链接左右两个条件,两个条件同时为True,最终结果才为真print(True and 10 > 3)print(True and 10 > 3 and 10 and 0)print( 10 > 3 and 10 and 0 and 1 > 3 and 4 == 4 and 3 != 3)结果:True00# 运算中条件全部为真则为真,一个条件为假则为假# or:逻辑或,or用来链接左右两个条件,两个条件但凡有一个为True,最终结果就为True,个条件都为False的情况下,最终结果才为Falseprint(3 > 2 or 0)print(3 > 4 or False or 3 != 2 or 3 > 2 or True)结果:TrueTrue

区分优先级:not > and > or

# 如果单独就只是一串and链接,或者说单独就只是一串or链接,按照从左到右的顺讯依次运算即可(偷懒原则)# 如果是混用,则需要考虑优先级了res=3>4 and not 4>3 or 1==3 and 'x' == 'x' or 3 >3print(res)res=(3>4 and (not 4>3)) or (1==3 and 'x' == 'x') or 3 >3print(res)结果:FalseFalse
4、成员运算符

in:某一个对象包含于另一个对象中

print("egon" in "hello egon") # 判断一个字符串是否存在于一个大字符串中print("e" in "hello egon") # 判断一个字符串是否存在于一个大字符串中print(11 in [111,222,33]) # 判断元素是否存在于列表结果:TrueTrueFalse#判断key是否存在于字典print(111 in {"k1":111,'k2':222})print("k1" in {"k1":111,'k2':222})结果:FalseTrue#not inprint("egon" not in "hello egon") # 推荐使用print(not "egon" in "hello egon") # 逻辑同上,但语义不明确,不推荐结果:TrueTrue
5、身份运算符

is:判断两个值的id是否相等

x = 10y = 11l = [x,5]print(x is y)print(x is l[0])结果:FalseTrue
6、流程控制之if判断

什么是流程控制

流程控制即控制流程,具体指控制程序的执行流程,而程序的执行流程分为三种结构:顺序结构(之前我们写的代码都是顺序结构)、分支结构(用到if判断)、循环结构(用到while与for)。

技术图片

分支结构

1.什么是分支结构:

分支结构就是根据条件判断的真假去执行不同分支对应的子代码

技术图片

2.为什么用分支结构?

人类某些时候需要根据条件来决定做什么事情,比如:如果今天下雨,就带伞

所以程序中必须有相应的机制来控制计算机具备人的这种判断能力

如何用分支结构

1.使用if语句来实现

if 条件1:   # 如果条件1的结果为True,就依次执行:代码1、代码2,......   代码1    代码2    ......elif 条件2: # 如果条件2的结果为True,就依次执行:代码3、代码4,......   代码3    代码4    ......elif 条件3: # 如果条件3的结果为True,就依次执行:代码5、代码6,......   代码5    代码6    ......else:     # 其它情况,就依次执行:代码7、代码8,......    代码7    代码8    ......# 注意:# 1、python用相同缩进(4个空格表示一个缩进)来标识一组代码块,同一组代码会自上而下依次运行# 2、条件可以是任意表达式,但执行结果必须为布尔类型     # 在if判断中所有的数据类型也都会自动转换成布尔类型       # 2.1、None,0,空(空字符串,空列表,空字典等)三种情况下转换成的布尔值为False       # 2.2、其余均为True

2.if应用

# 如果我大于22岁我就可以结婚age = 25if age > 22:    print("我可以结婚了")# 如果:成绩>=90,那么:优秀# 如果成绩>=80且<90,那么:良好# 如果成绩>=70且<80,那么:普通# 其他情况:很差score=input('>>: ')score=int(score)if score >= 90:    print('优秀')elif score >= 80:    print('良好')elif score >= 70:    print('普通')else:    print('很差')   
# if嵌套# 如果我大于22岁我就可以结婚,如果结婚了,那我很幸福,没结婚我就不幸福age = 25is_marry = Trueif age > 22:    if is_marry:      print("我很幸福")    else:        print("我不幸福")

技术图片

python入门之类型、条件、运算符、流程控制之if判断

评论关闭