栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python基础4 循环相关知识、推导式

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python基础4 循环相关知识、推导式

目录

for循环与可迭代对象遍历

可迭代对象

range对象

嵌套循环

九九乘法表

打印表格数据

break语句

continue语句

循环里面的else

循环代码优化(非常重要!)

zip()并行迭代

推导式创建序列

列表推导式

字典推导式

集合推导式

生成器推导式(生成元组)


for循环与可迭代对象遍历

可迭代对象

1.序列:字符串、列表、元组

2.字典

3.迭代器对象(iterator)

4.生成器对象(generator)

5.文件对象

s={'name':'gao','age':18,'job':'programmer'}
for i in s:
    print(i)
for i in s.keys():
    print(i)
for i in s.items():
    print(i)
for i in s.values():
    print(i)

range对象

range(start,end,step)

嵌套循环
for x in range(5):
    for y in range(5):
        print(x,end="t")
    print()

九九乘法表
for m in range(1,10,1):
    for n in range(1,10,1):
        if m>=n:
            print("{0}*{1}={2}".format(m,n,m*n),end="t")
    print()
for m in range(1,10,1):
    for n in range(1,m+1):
        print("{0}*{1}={2}".format(m,n,m*n),end="t")
    print()

打印表格数据
r1={"name":"高小一","age":18,"salary":30000,"city":"北京"}
r2={"name":"高小2","age":19,"salary":20000,"city":"上海"}
r3={"name":"高小3","age":20,"salary":10000,"city":"南京"}
 
tb=[r1,r2,r3]
print(tb[1].get("salary"))
for i in tb:
    if i.get("salary")>15000:
        print(i.get("name"),i.get("age"),i.get("salary"),i.get("city"))

break语句

循环结束,涉及到嵌套循环时只跳出最近一层

continue语句

结束本次循环,继续下一次 ,涉及到嵌套循环时只跳出最近一层

练习 

peonum=0
salarysum=0
salary=[]

while True:
    floats=input("请输入员工薪资,Q或q结束")
    if floats.upper()=="Q":
        print("结束录入")
        break
    if float(floats)<=0:
        print("输入有误,请重新输入")
        continue
    peonum+=1
    salarysum+=float(floats)
    salary.append(float(floats))
print("员工数是{0}".format(peonum))
print("平均工资是{0}".format(salarysum/peonum))
print("工资明细{0}".format(salary))

循环里面的else

如果在运行中间  break  则 不执行else

salarysum=0
salary=[]

for i in range(4):
    floats=input("请输入员工薪资,Q或q结束")
    if floats.upper()=="Q":
        print("结束录入")
        break
    if float(floats)<=0:
        print("输入有误,请重新输入")
        continue

    salarysum+=float(floats)
    salary.append(float(floats))
else:
    print("4人已经全部录入")
print("平均工资是{0}".format(salarysum/4))
print("工资明细{0}".format(salary))

循环代码优化(非常重要!)

1.减少循环内部不必要计算

2.嵌套减少内层循环计算

3.尽量使用局部变量

4.链接多个字符串  尽量join不要+

5.列表操作尽量在尾部

zip()并行迭代
names=("sarah","john","peter")
ages=("18","19","20")
jobs=("programmer","cleaner","teacher")

for name,age,job in zip(names,ages,jobs):
    print("{0}__{1}__{2}".format(name,age,job))

推导式创建序列

简化代码,避免冗长

列表推导式

可以加限制条件,可以使用两个循环

cells=[(row,col) for row in range(10) for col in range(10)]
print(cells)

字典推导式
my_test="i love you ,i love xxx,i love g"
char_count={c:my_test.count(c) for c in my_test}
print(char_count)

集合推导式
b={x for x in range(100) if x%9==0}
print(b)

生成器推导式(生成元组)

每次生成器只能用一次

get =(x for x in range(4))
print(tuple(get))
get =(x for x in range(5))
for x in get:
    print(x)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/979887.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号