流程控制
条件语句
if语句的基本格式
if 判断条件: 执行语句…… else: 执行语句……
例子:
flag = False name = 'luren' if name == 'python': # 判断变量是否为 python flag = True # 条件成立时设置标志为真 print('welcome boss') # 并输出欢迎信息 else: print(name) # 条件不成立时输出变量名称
if多条件判断
if 判断条件1: 执行语句1…… elif 判断条件2: 执行语句2…… elif 判断条件3: 执行语句3…… else: 执行语句4……
循环语句
for循环
for iterating_var in sequence: statements(s)
例1:求计算1+3+5.....+45+47+49的值
sums = 0 for i in range(1, 50): if i % 2 == 0: continue sums += i print(sums)
while循环基本格式
while(条件判断语句): 语句块1 语句块2
例2:求计算1+3+5.....+45+47+49的值
a = 1 sums = 0 while (a < 50): sums += a a += 2 print(sums)
嵌套循环
例3:打印九九乘法表
for i in range(1, 10): for j in range(1, 10): if j <= i: print("%s*%s=%2s" % (j, i, i * j), end=' ') print("")
break语句
break 语句可以跳出 for 和 while 的循环体
例子:
n = 5 while n > 0: n -= 1 if n == 2: break print(n) print('循环结束。')
continue语句
continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环
例子:
n = 5 while n > 0: n -= 1 if n == 2: continue print(n) print('循环结束。')
pass 语句
pass是空语句,是为了保持程序结构的完整性。
pass 不做任何事情,一般用做占位语句
执行顺序交给该 循环体同一层级的 下一条语句。
LEGB
L: 局部变量 局部作用域 local G:全局变量 整个文件 global E: 闭包变量 闭包空间 enclosing B: 内置变量 整个解释器 builtins
流程控制练习
a=1 while(a<5): print(a) a+=1 if a==3: break print('fesfes')
2.代码实现斐波那契数列(比如前30个项)
num = 30 ret = [] for i in range(num): if i == 0 or i == 1: ret.append(1) else: ret.append(ret[-1] + ret[-2]) print(ret)
3.
for i in range(1, 10): for j in range(1, 10): if j <= i: print("%s*%s=%2s" % (j, i, i * j), end=' ') print("")
4.
infos = [{"name": '张三', "age": 18, "score": 98.8}, {"name": '小明', "age": 25, "score": 40.115}, {"name": 'ls', "age": 30, "score": 60.325}, {"name": 'frank', "age": 20, "score": 85.255}] info_up_60 = [] names_80_90 = [] info_down_60 = [] import decimal import copy for i in infos: score = i.get("score", 0) score_str = str(decimal.Decimal(str(score)).quantize(decimal.Decimal('1.00'))) tmp_i = copy.deepcopy(i) tmp_i["score"] = score_str if score >= 60: info_up_60.append(tmp_i) if 90 > score >= 80: names_80_90.append(tmp_i["name"]) else: tmp_i.pop("age") info_down_60.append(tmp_i) print(infos, info_up_60, nam_80_90, info_down_60)