Python 中的分支,循环,条件与枚举
表达式
C语言中关于表达式的定义:表达式(Expression)是运算符(operator)和操作数(operand)所构成的序列。
1+1
a = [1,2,3]
a > b
1 + 2 * 3 # 有顺序
c = int('1') + 2 # 可调用函数
以上全部都是表达式。
优先级
a = 1
b = 2
c = 3
a + b * c # 7
a or b and c # 1 先计算 b and c, 返回3,再计算 a or 3,返回1
Python 优先级排序(查资料)
同优先级运算从左到右计算,否则按照优先级从高到低运算,如果需要刻意改变优先级,可使用()
包含。
没有赋值运算符 = ,左结合,存在赋值运算符,右结合。
优先级:算数运算符 > 比较运算符 > 逻辑运算符。
not > and > or。
not 1 or 2 + 2 == 2 # 先计算2+2,然后计算4==4,再计算 not 1,得到结果False or False 返回False
条件控制
python中的条件控制可以通过使用 if else,if elif else来实现,语法:
# if else 语法
if condition:
pass
else:
code
# if elif else 语法
if condition:
code1
elif condition2:
code2
else
code3
!!! python中并没有switch语法,不过我们可以借助if elif 来实现同样的功能。
相关文档:https://docs.python.org/3/faq/design.html
循环控制
python中的循环控制可以使用while和for来实现,while循环尝试用在递归操作中,而for循环则常常用来遍历序列,集合,字典等。
while循环语法
CONDITION = True
while CONDITION:
pass
# 以上是一个无限循环/死循环
count = 0
while count <= 11:
count += 1
print(count,end="|")
# 输出 0|1|2|3|4|5|6|7|8|9|10|
for 循环语法
下面的代码分别实现了循环输出一个列表和嵌套列表。
#列表循环
a = ['a','b','c','d']
for x in a:
print(x)
# 列表和元组嵌套的场景
l = [['a','b','c','d'],(1,2,3)]
for b in l:
for c in b:
print(c,end=' ')
# for else 用法
l = [['a','b','c','d'],(1,2,3)]
for b in l:
for c in b:
print(c,end=' ')
else:
print('遍历完成')
跳出语句 break continue
break 和 continue 仅能跳出当前循环,使用时应当注意。
# break
l = ['a','b','c','d']
# 遇到 'c' 跳出
for c in l:
if c == 'c':
break
print(c)
# 输出 ['a','b']
l = ['a','b','c','d']
# continue 跳过c 输出
for c in l:
if c == 'c':
continue
print(c,end='|')
# 输出 ['a','b','d']
可以借助range方法和for实现重复执行10次
range函数的用法:
range(start,end,step)
for x in range(0,10,2):
print(x,end="|")
print('\r')
# 输出 0|2|4|6|8|
输出等差数列
for x in range(20,0,-2):
print(x,end="|")
print('\r')
# 输出 18|16|14|12|10|...
打印指定间隔元素
l = [1,2,3,4,5,6,7,8,9,10]
for x in range(0,10,2):
print(l[x],end="|")
print('\r')
# 输出 1|3|5|7|9|
# 改进
l = [1,2,3,4,5,6,7,8,9,10]
for x in range(0,len(l),2):
print(l[x],end="|")
print('\r')
# 输出 1|3|5|7|9|
列表的切片可以通过如下方式实现:
l = [1,2,3,4,5,6,7,8,9,10]
s = l[0:len(l):2]
print(s)
# 输出 [1, 3, 5, 7, 9]