2022.05.08 python基础知识_Day05

循环结构

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值