for循环 for 变量 in 可迭代对象 :
循环体
嵌套循环
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() #换行
使用列表和字典存储表格数据
r1= dict(name="高小一",age=18,salary=30000,city="北京")
r2= dict(name="高小二",age=19,salary=20000,city="上海")
r3= dict(name="高小三",age=20,salary=10000,city="深圳")
tb = [r1,r2,r3]
for x in tb:
if x.get("salary")>15000:
print(x)
break语句 中断循环
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))
循环代码优化:1、减少循环内部不必要的计算
2、嵌套循环,减少内层循环计算,尽可能向外提
3、局部变量查询较快,尽量使用局部变量
循环代码优化测试
import time
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)))
start2 = time.time()
for i in range(1000):
result = []
c = i*1000
for m in range(10000):
result.append(c+m*100)
end2 = time.time()
print("耗时:{0}".format((end2-start2)))
测试结果
其他优化手段:1、连接多个字符串,用join不用+
2、尽量列表尾部删插
测试zip()
# 测试zip()并行迭代
for i in [1,2,3]:
print(i)
names = ("高淇","高老二","高老三","高老四")
ages = (18,16,20,25)
jobs = ("老师","程序员","公务员")
for name,age,job in zip(names,ages,jobs):
print("{0}--{1}--{2}".format(name,age,job))
for i in range(3):
print("{0}--{1}--{2}".format(names[i],ages[i],jobs[i]))
推导式
通过推导式生成列表,字典,集合,元组
列表推导式
[表达式 for item in 可迭代对象] 或 [表达式 for item in 可迭代对象 if 条件判断]
字典推导式
{键值对 for item in 可迭代对象} 或 {表达式 for item in 可迭代对象 if 条件判断}
集合推导式
{表达式 for item in 可迭代对象} 或 {表达式 for item in 可迭代对象 if 条件判断}
生成器推导式
gnt = (x for x in range(4))
gnt是生成器对象,生成器是可迭代对象,只能使用一次
#生成器推导式(生成元组)
gnt = (x for x in range(4))
#print(tuple(gnt))
for x in gnt: #gnt是生成器对象,生成器是可迭代的对象,只能使用一次
print(x,end=",")
print(tuple(gnt))
画同心圆
import turtle
t = turtle.Pen()
my_colors = ("red","green","yellow","black")
t.width(4)
t.speed(1)
for i in range(10): #0 1 2 3 4
t.penup()
t.goto(0,-i*10) #0, -100,-200,-300,-400
t.pendown()
t.color(my_colors[i%len(my_colors)])
t.circle(15+i*10) #100,200,300, 400,, 500
turtle.done() #程序执行完,窗口仍然在
画棋盘
#画棋盘
import turtle
width = 30
num = 18
x1 = [(-400,400),(-400+width*num,400)]
y1 = [(-400,400),(-400,400-width*num)]
t = turtle.Pen()
t.speed(10)
# t.goto(x1[0][0],x1[0][1])
# t.goto(x1[1][0],x1[1][1])
for i in range(0,19):
t.penup()
t.goto(x1[0][0],x1[0][1]-30*i)
t.pendown()
t.goto(x1[1][0],x1[1][1]-30*i)
for i in range(0,19):
t.penup()
t.goto(y1[0][0]+30*i,y1[0][1])
t.pendown()
t.goto(y1[1][0]+30*i,y1[1][1])
t.hideturtle() #隐藏画笔
turtle.done() #保证运行窗口不被自动关闭
python函数分类:内置函数
标准库函数
第三方库函数
用户自定义函数
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)