python学习之循环(4)

创建文件夹

要创建python package 才可导入自定义的文件!!!

for 循环

>>> a = {"name":"吴悦","age":21,"身高":163}
>>> a
{'name': '吴悦', 'age': 21, '身高': 163}
>>> for x in a:
...     print(x)
... 
name
age
身高
>>> for x in a.keys():
...     print(x)
... 
name
age
身高
>>> for x in a.values():
...     print(x)
... 
吴悦
21
163
>>> for x in a.items():
...     print(x)
... 
('name', '吴悦')
('age', 21)
('身高', 163)

break和continue区别

#break:跳出最近的for和while循环
while True:
    a = input("please enter a q or Q: ")
    if a == "q" or a == "Q":
        print("out!!")
        break
    else:
        print(a)
#continue:结束本次循环,但不能跳出for/while
while True:
    a = input("please enter a q or Q: ")
    if a == "q" or a == "Q":
        print("out!!")
        continue
    else:
        print(a)

字符串大小写转换

s = "abcde"
s.upper()
Out[3]: 'ABCDE'
s = "ABCDE"
s.lower()
Out[5]: 'abcde'

demo

要求输入员工的薪资,若薪资小于0则重新输入,最后打印出录入员工的数量和薪资明细以及平均薪资:

i = 0
list1 = []
while True:
    w_salary = input("(输入Q退出)请输入员工的工资: ")
    if w_salary.upper() == "Q":
        print("终止")
        break
    if float(w_salary) < 0:
        continue

    print(w_salary)
    i +=1
    #讲薪水添加到list1中
    list1.append(w_salary)

b = []
#遍历list1,创建字典
for x in range(len(list1)):
    a = dict(name="worker_{0}".format(x),salary=list1[x])
    #将字典内容添加到列表中
    b.append(a.copy())
print(i)
print(a)
print(b)
empNum = 0
salarySum = 0
salarys = []
while True:
    s = input("please enter a worker of salary(if out,input a 'q')")
    if s.upper() == "Q":
        print("out!!")
        break
    if float(s) < 0:
        continue

    empNum += 1
    salarys.append(float(s))
    salarySum += float(s)

print("numbre of empolyees:{0}".format(empNum))
print("enter salary:{0}".format(salarys))
print("enter total salary:{0}".format(salarySum))

while/for后的else

在这里插入图片描述

salarySum = 0
salarys = []
for x in range(4):
    s = input("please enter a worker of salary(if out,input a 'q'): ")
    if s.upper() == "Q":
        print("out!!")
        break
    if float(s) < 0:
        continue

    salarys.append(float(s))
    salarySum += float(s)
else:
    print("You have entered salaries of 4 employees")

print("enter salary:{0}".format(salarys))
print("enter total salary:{0}".format(salarySum))

循环代码的优化

计算

在这里插入图片描述

import time

start1 = time.time()


for x in range(1000):
    list1 = []
    for m in range(10000):
        list1.append(x*1000+m+100)

end1 = time.time()

print("time is {0}".format(end1 - start1))


start2 = time.time()


for x in range(1000):
    list2 = []
    c = x * 1000
    for m in range(10000):
        list2.append(c+m+100)

end2 = time.time()

print("time is {0}".format(end2 - start2))
#运行结果
time is 1.4495453834533691
time is 1.2023136615753174

其他优化方法

  1. 连接多个字符串,使用join(),而不用"+"
  2. 列表进行删除和插入时,尽量在尾部操作!

使用zip()并行迭代

names = ("吴悦一","吴悦二","吴悦三")

ages = (88,66,33)

jobs = ("www","eee","rrr")

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

print("*******************\n")

for i in range(3):
    print("name:{0},age:{1},job:{2}".format(names[i],ages[i],jobs[i]))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值