第六章、分支、循环、条件和枚举
第六章、分支、循环、条件和枚举
一、什么是表达式
-
平常写的代码就是表达式
-
定义:表达式是运算符和操作数所构成的序列
-
a = 1+2*3 # 也是表达式,“=”在python中也是运算符 a = 1 b = 2 c = 3 a + b * c # 结果是7 a or b and c # 结果是1
-
表达式在运算时,要遵循优先级,优先级相同时,都是从左向右[1]运算,若想打破运算顺序,可以加小括号
二、在文本中编写代码
- 在Notepad++中创建.py文件,书写代码,本教程是用vscode书写
- 在命令行中运行.py文件方式
-
vscode的配置
-
IDE的功能就是智能感知和断点调试,不安装插件也是可以运行程序的
-
插件安装
-
快捷键:
ctrl+~
:打开命令行、ctrl+p
:快速索引 -
python不强制加分号,不需要花括号将代码包裹起来,python靠缩进将代码段区分
-
三、流程控制语句
-
注释,可以让解释器不运行代码
-
单行注释
-
# csaicha
-
快捷键:
ctrl+/
-
-
多行注释
-
""" caycgasc """
-
快捷键:
shilf+Alt+A
-
-
-
if...else...[2]
-
# 格式if空格表示bool类型值的数据: mood = True if mood: print("go to left") mood = True # 运行结果没有区别,但是在逻辑上时有区别的,同一缩进下,为同一代码片段里的 if mood: print("go to left") print("1345") print("1345") # if...else... mood = False if mood: print("go to left") else : print("1345") print("xhauica") # 运行结果:1345 xhauica,所以下面一个输出是物理如何都会运行的
-
if
后面的关键字不一定是变量,也可以是表达式 -
a = 1 b = 2 c = 2 if a or b + 1 == c: print("go to left") else : print("1345")
-
接收用户输入input()[3]
-
account = "qiyue" password = "123456" user_account = input() user_password = input() if account == user_account and password == user_password: print("密码相同") else: print("密码不相同")
-
深入if...else..
-
软件小技巧,代码片段
-
在书写代码片段时,tap键可以用来跳转到下一个修改的变量,shift和tap键可以用来修改上一个变量
-
if
可以单独使用,但是else不可以 -
if True: pass if True: pass
-
pass
语句叫占位语句 -
if True: # 会报错,必须加pass
-
if...else...嵌套
-
if a: if a: pass else: pass else: if a: pass else: pass
-
代码块的概念
-
if a: a a a else: a a a # 同级别,都会被执行
-
-
多层判断时
if...elif...
-
if a: a elif a: a elif a: a else: a
-
为什么在python中没有switch.case语句:因为官方给出了更好的方案,
if...elif..elif...else
或者字典来替代
-
-
-
循环[4]
-
while
循环-
# 基本结构,condition是bool类型的数据或者表达式 while condition: # 代码块
-
# 死循环 condition = True while condition: print("I am while")
-
# while 在执行的时候会先判断后面的值 condition = 0 while condition: condition += 1 print(condition) # 结果是什么也不会印出来,因为会先进行判断
-
如何避免while形成死循环,那么就需要将在whlie中有使while不成立的语句
-
while...else
当while正常执行的时候结束的时候,才会执行else中的代码段 -
while中使用场景,递归
-
-
for
循环语句-
# 代码结构 # target_list:临时变量,expression_list:容器,序列,集合,字典 for target_list in expression_list: pass
-
使用场景:主要是用来遍历/循环 序列或者说集合、字典
-
a = ["anad", "cvav", "dasf", "affaf"] for x in a: print(x) # 结果: anad cvav dasf affaf
-
for
循环嵌套 -
a = [["anad", "cvav", "dasf", "affaf"],[1,2,3]] for x in a: for y in x: print(y) # 结果: anad cvav dasf affaf 1 2 3
-
想让数据只在一行显示,在print中加
end = ""
-
a = [["anad", "cvav", "dasf", "affaf"],[1,2,3]] for x in a: for y in x: print(y,end=" ") # 结果: anad cvav dasf affaf 1 2 3
-
for...else
-
a = [["anad", "cvav", "dasf", "affaf"],[1,2,3]] for x in a: for y in x: print(y) else: print("cgacgacasv") # 结果: anad cvav dasf affaf 1 2 3 cgacgacasv
-
-
强制终止循环
break/countine
[5]-
# break a = [1,2,3,4] for x in a: if x==2: break print(x) # 结果: 1
-
# countine a = [1,2,3,4] for x in a: if x==2: continue print(x) # 结果: 1 3 4
-
# break...else a = [1,2,3,4] for x in a: if x==2: break print(x) else: print("cabicg") # 结果: 1
-
# countine...else a = [1,2,3,4] for x in a: if x==2: countine print(x) else: print("cabicg") # 结果: 1 3 4 cabicg
-
-
在python中怎么书写,重复10次的操作的代码:用
range
[6]-
for x in range(0,10): print(x,end = " ") # 结果: 0 1 2 3 4 5 6 7 8 9 for x in range(0,10,2): print(x,end = " ") # 结果: 0 2 4 6 8 # 练习: a = list(range(1,9)) for x in a: if x%2 == 0: print(x)
-
序列的切片操作
[a:b:c]
[7] -
b = a[0:len(a):2] print(b)
-
-