2020-11-06

Python基础知识(5)

for循环结构

嵌套循环

#嵌套循环测试


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('{}*{}={}'.format(m, n, n*m), end='\t')
    print()
#打印表中工资大于15000的数据


#制作表格
r1 = {'name':'老大','salary':10000,'city':'北京'}
r2 = {'name':'老二','salary':20000,'city':'上海'}
r3 = {'name':'老三','salary':30000,'city':'广州'}
tb = [r1,r2,r3]
for x in range(len(tb)):
    if tb[x].get('salary') > 15000:
        print(tb[x].get('name'))
        

break和contiune语句

break跳出循环,continue结束本次循环,开始下一次循环

#录入员工薪资数据,返回平均值
empNum = 0
salarySum = 0
salary = []
while True:
    s = input('输入员工薪资,按q结束录入:')
    if s.upper() == 'Q':
        break
    if float(s) < 0:
        print('输入有误,请重新输入')
        continue
    empNum += 1
    salary.append(float(s))
    salarySum += float(s)
print('员工总人数为:{}'.format(empNum))
print('薪资分别为:{}'.format(salary))
print('平均薪资为:{}'.format(salarySum/empNum))

循环中 else 语句

while,for 循环可附带else语句,循环若被正常执行,则else语句执行。若循环中途break,则else不执行。

#录入固定数量员工薪资,若提前结束录入可弹出

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

循环代码的优化

1.循环代码优化
2.尽量减少循环内部不必要的计算
3.嵌套循环中,尽量减少内层循环的计算,尽量往外提
4.尽量使用局部变量
5.连接多个字符串,尽量使用join()而不是+
6.列表进行插入和删除,尽量在列表尾部进行操作

推导式

列表推导式:【表达式 for item in 可迭代对象】

或【表达式 for item in 可迭代对象 if 条件判断】

字典推导式

{key_expression : value_expression for 表达式 in 可迭代对象}

集合推导式

{key_expression for 表达式 in 可迭代对象}

#列表推导式    【表达式   for   item    in   可迭代对象】或【表达式   for   item    in   可迭代对象   if  条件判断】


a = [(x,y) for x in range(10) for y in range(8) if x%2 == 0 if y%3 == 0]
print(a)



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

my_text = 'i love you ,i love china'
b = {i: my_text.count(i) for i in my_text}
print(b)


#集合推导式    {key_expression   for  表达式   in   可迭代对象}





# 生成器推导式(生成元组)
gnt = (x for x in range(5))
for x in gnt:
    print(x,end=',')

小练习:画不同颜色的同心圆

import turtle
my_color = ['red','blue','yellow','green','black']
p = turtle.Pen()
p.width(5)
p.speed(0)
for i in range(10):
    p.color(my_color[i%5])
    p.circle(10*i+10)
    p.penup()
    p.goto(0,-10*i-10)
    p.pendown()
turtle.done()   #作图后保留画面

在这里插入图片描述
作图如上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值