python语言之控制语句

    科技2026-03-08  5

    控制语句

    for 循环和可迭代对象遍历for语句和range语句练习嵌套循环和综合练习打印乘法表练习使用字典和列表打印数据break语句continue语句for或者while语句中的else循环循环代码优化zip()并行迭代练习:利用海龟绘图画5种颜色的同心圆 五章函数用法和底层分析

    for 循环和可迭代对象遍历

    Python 包含以下几种可迭代对象:

    序列。包含:字符串、列表、元组字典迭代器对象(iterator)生成器函数(generator)文件对象

    for语句和range语句练习

    for x in (30,40,50): print(x*3) d={'location':'beijing','age':'18','name':'xianbao'} for x in d: print(x) for x in d.values(): print(x) for x in d.items(): print(x) for i in range(3): print(i) sum_all=0 sum_even=0 sum_odd=0 for k in range(101): sum_all=sum_all+k if k%2==0: sum_even+=k if k%2==1: sum_odd+=k print('1-100之内自然数之和是{0},偶数和是{1},奇数和是{2}'.format(sum_all,sum_even,sum_odd))

    嵌套循环和综合练习

    for x in range(5): for y in range(5): print (x,end='\t') print('\n')

    结果

    打印乘法表

    for m in range(1,10): for n in range(1,m+1): print('{0}*{1}={2}'.format(m,n,m*n),end='\t') print()

    运行结果

    练习使用字典和列表打印数据

    r1={'姓名':'张三','月薪':10000,'居住地':'北京'} r2={'姓名':'李四','月薪':20000,'居住地':'上海'} r3={'姓名':'王五','月薪':30000,'居住地':'深圳'} tb=[r1,r2,r3] for x in tb: if x.get('月薪')>10000: print(x)

    注意:此处的月薪不加引号,加引号为字符串不是整型,下一步判断报错。

    运行结果

    break语句

    while True: a=input('请任意输入字符(输入Q或q程序结束):') if a=='q' or a=='Q': print('程序结束') break

    while循环在条件不满足时结束,for循环遍历完序列后结束。如果在循环条件仍然满足或序列没有遍历完的时候,想要强行跳出循环,就需要用到break语句。当有嵌套循环时,break 语句只能跳出最近一层的循环。 注意if后面a=的语句是a==若为=则报错。

    continue语句

    练习

    sum_salary = 0 salary_list = [] salary = 0 while True: salary = input('请输入员工的薪资,输入Q结束计算:') if salary.upper() == 'Q': print('程序结束') #salary = 0 break elif float(salary) <= 0: print('您输入的数值有误,请重新输入') continue salary_list.append(salary) sum_salary += float(salary) if len(salary_list) == 0: print('您没有输入任何薪资,程序退出') else: print('员工数量为:{0}'.format(len(salary_list))) print('薪资明细为:{0}'.format(salary_list)) print('平均工资为:{0}'.format(sum_salary/len(salary_list)))

    for或者while语句中的else循环

    while、for 循环可以附带一个 else 语句(可选)。如果 for、while 语句没有被 break 语句结束,则会执行 else 子句,否则不执行。

    salarySum= 0 salarys = [] for i in range(4): s = input("请输入一共 4 名员工的薪资(按 Q 或 q 中途结束)") if s.upper()=='Q': print("录入完成,退出") break if float(s)<0: continue salarys.append(float(s)) salarySum += float(s) else: print("您已经全部录入 4 名员工的薪资") print("录入薪资:",salarys) print("平均薪资{0}".format(salarySum/4))

    注意:代码if break语句在if continue前面。

    循环代码优化

    问题往往出在循环语句处。性能问题上“斤斤计较”

    (1)尽量减少循环内部不必要的计算 (2)嵌套循环中,尽量减少内层循环的计算,尽可能向外提。 (3)局部变量查询较快,尽量使用局部变量 (4)连接多个字符串, 使用 join()而不使用+,列表进行元素插入和删除, 尽量在列表尾部操作

    zip()并行迭代

    可以通过 zip()函数对多个序列进行并行迭代,zip()函数在最短序列“用完”时就会停止。

    列表、字典、集合的推导式

    #列表的推导式 s='I love you' y=[x for x in s] print(y) # 字典的推导式 a='I love you' My={c:a.count(c) for c in a} print(My) #集合推导式 b={x for x in range(20) if x%5==0} print(b)

    列表、字典、集合都有推导式,元组有没有?”,能不能用小括号呢?

    #生成器推导式(生成元组) gnt=(x for x in range(6)) print(gnt) print(tuple(gnt)) print(tuple(gnt)) #只能遍历一次,该次为空

    注意:小括号的元组推导式是生成器,只能遍历一次

    练习:利用海龟绘图画5种颜色的同心圆

    import turtle t=turtle.Pen() My_color=('red','blue','black','green','orange') for i in range(4): t.penup() t.goto(0, -i*10) t.pendown() t.color(My_color[i%len(My_color)]) t.circle(10+i*10) turtle.done() #画完后图形继续显示

    五章函数用法和底层分析

    Python 中,定义函数的语法如下: def 函数名 ([参数列表]) : ‘’‘文档字符串’’’ 函数体/若干语句

    def tes1(): print('#'*6) print('$'*6) tes1()

    **注意:**在运行test函数时生成了pytest_cache文件,且报错,要避免使用test函数名称即可。

    Processed: 0.018, SQL: 10