python中的循环

1.循环结构

用来重复执行一条或多条语句。
表达逻辑:如果符合条件,则反复执行循环体里的语句,每次执行完都判断一次条件是否为true,如果为true则重复执行循环体内的语句。

1.1 while循环

句式: while 条件表达式:
循环体语句
例:

num=0
while num<=10:
    print(num)
    num+=1

1.2 for循环

通常用于可迭代对象的遍历
语法格式:
for 变量 in 可迭代对象:

for x in (20,30,40):
    print(x)#遍历一个元组
for y in 'address':
    print(y)#遍历一个字符串
d={'name':'ju','age':18,'address':'China'}
for x in d:#遍历字典所有key
for x in d.keys:#遍历字典所有key
for x in d.values:#遍历字典所有值
for x in d.items:#遍历所有键值对

1.3嵌套循环

一个循环体内可以嵌入另一个循环

for x in range(5):
    for y in range(5):
        print(x,end="\t")
    print()#起到换行的作用

使用嵌套循环打印九九乘法表:

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()

zip()并行迭代:
zip()函数对多个序列进行并行迭代

names=('marry','charry','betty')
ages=(18,20,22)
jobs=('witch','saber','archer')
for name,age,job in zip(names,ages,jobs):
    print("{0}--{1}--{2}".format(name,age,job)

循环代码优化技巧:
1.尽量减少循环内部不必要的计算
2.嵌套循环中,尽量减少内层循环的计算
3.局部变量查询较快,尽量使用局部变量

1.4 break,continue和else语句

break语句:用于while和for循环,用来结束整个循环,有嵌套循环时,break只能跳出最近一层的循环。

while True:
    a = input('请输入一个字符,输入Q或q退出:')
    if a.upper() == 'Q':#转换成大写
        print('循环结束,退出')
        break
    else:
        print(a)

continue语句:用于结束本次的循环,继续下一次循环,有嵌套循环时应用于最近一层的循环。

"""输入员工工资,打印出录入员工的数量,薪资明细和平均薪资"""
empNum=0
salarySum=0
salarys=[]#列表
while True:
    s = input('请输入员工的薪资(按q或Q结束):')
    if s.upper()=='Q':
        print('录入完成,退出')
        break
    if float(s)<0:
        continue
    empNum+=1
    salarys.append(float(s))
    salarySum+=float(s)
print('员工数{0}'.format(empNum))
print('录入工资:',salarys)
print('平均工资:{0}'.format(salarySum/empNum))

else语句:while,for循环可以附带一个else,如果循环没有被break结束,则会执行else语句。
格式:
while 条件表达式:
循环体
else:
语句块

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

1.5 推导式创建序列

推导式:从一个或多个迭代器快速创建序列,将循环和条件判断结合,避免冗长代码。
1.列表推导式
语法:[表达式 for item in 可迭代对象]
或[表达式 for item in 可迭代对象 if 条件判断]

a=[x for x in range(1,5)]
b=[(m,n) for m in range(5)for n in range(5)]

2.字典推导式
格式:{key_expression:value_expression for 表达式 in 可迭代对象}

"""计算字符串中每个字符出现的次数"""
my_text='i like u to be still'
char_count={c:my_text.count(c)for c in my_text}
print(char_count)

3.集合推导式
格式:{表达式 for item in 可迭代对象}

y={x for x in range(1,100)if x%9==0}
print(y)

4.生成器推导式
生成的是元组,一个生成器推导式只能运行一次

gnt=(x for x in range(1,100) if x%9==0
发布了5 篇原创文章 · 获赞 0 · 访问量 129
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 深蓝海洋 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览