python笔记之流程控制

流程控制

条件语句

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='\t')
    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='\t')
    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}] 将成绩合格学生(score>=60)的信息放入 info_up_60列表中, 列表元素为字典 将成绩良好(90>score>=80)的 姓名信息 放入 names_80_90列表中, 列表元素为字符串 将成绩不及格(score<60)的 姓名及成绩 信息放入 info_down_60列表中。 列表元素为字典 将以上所有列表中成绩score转为字符串,要求浮点数保留两位小数。如98.8 转为98.80 打印以上所有列表,切记不能修改原列表infos信息

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)
posted @ 2019-12-31 14:31  星海呀  阅读(247)  评论(0编辑  收藏  举报