python学习(1)-循环

循环中的else

salarySum = 0
salarys = []
for i in range(4):
    s = input("请输入工资,按Q结束")
    if s.upper() == 'Q':
        print("录入完成,退出")
        break
    if float(s) < 0:
        continue

    salarys.append(float(s))
    salarySum += float(s)
# python特有,执行完整个循环进入else,如果循环中途退出,贼不执行此else
else:
    print('您已经全部录入4名员工的薪资了')
print("录入薪资:", salarys)
print("平均薪资{0}".format(salarySum / 4))

python 中的for 和while 循环,在后面均可跟else,这是在java和c#中没有见过的,代码中的else 在整个循环执行完毕后执行,如果循环中途进入break,则不执行else中的内容

循环优化

优化方法主要记住以下几个:

  • 1 尽量减少循环内部不必要
    2 嵌套循环中,尽量减少内层循环的计算,尽可能往外提
    3 局部变量查询较快,尽量使用局部变量

    其他:
    1 连接多个字符串,使用join()而不使用+
    2 列表进行元素插入和删除,尽量在列表尾部操作

# 方法一
start = time.time()
for i in range(1000):
    result = []
    for m in range(10000):
        result.append(i * 1000 + m * 100)
end = time.time()

print("耗时为{0}".format(end - start))

# 方法2

start2 = time.time()
for i in range(1000):
    result = []
    n = i * 1000
    for m in range(10000):
        result.append(n + m * 100)
end2 = time.time()

print("耗时为{0}".format(end2 - start2))

代码方法2中减少了内循环中执行i*100的次数,效率得到提升,方法一执行耗时为1s,方法二执行耗时为0.85s

zip()并行迭代

使用zip可以对多个数组同事进行遍历,遍历次数以数组长度最短的为准:

# 测试zip并行迭代
names = ("张三", "李四", "王五", "赵六")
ages = (18, 19, 20, 31)
jobs = ("老师", "销售", "程序员")

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

结果为:
张三–18–老师
李四–19–销售
王五–20–程序员

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值