python学习之循环(4)

文章目录

  • 创建文件夹
  • for 循环
  • break和continue区别
  • 字符串大小写转换
  • demo
    • 要求输入员工的薪资,若薪资小于0则重新输入,最后打印出录入员工的数量和薪资明细以及平均薪资:
  • while/for后的else
  • 循环代码的优化
    • 计算
    • 其他优化方法
  • 使用zip()并行迭代

创建文件夹

要创建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!!")breakelse:print(a)
#continue:结束本次循环,但不能跳出for/while
while True:a = input("please enter a q or Q: ")if a == "q" or a == "Q":print("out!!")continueelse: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("终止")breakif float(w_salary) < 0:continueprint(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!!")breakif float(s) < 0:continueempNum += 1salarys.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!!")breakif float(s) < 0:continuesalarys.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 timestart1 = 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 * 1000for 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]))