Python基础学习day05

Python基础学习day05,第1张

Python基础学习day05
# for 循环和可迭代对象遍历.for循环的语法格式如下:
# for 变量 in 可迭代对象:
#     循环体语句
#  *** 作 遍历一个元组或列表
# 如果是这种循环 或者是if什么的  你后面需要加冒号,让编译器之后,这句话没完,接着往下运行。
# 然后这个编译器,需要配制,让pycharm知道应该用哪个编译器去执行代码,在哪里配置呢? 在这
# 这俩都是,如果有多个编译器的话 就可以选择自己应用得了,
# 然后文件名 最好不要用中文,用英文比较好。
# 以后所有的路径,尽量不要有空格,还有中文,
# for x in (20,30,40):
#     print(x*3)
# 可迭代对象
# python包含以下几种可迭代对象:
# 1.序列。包含:字符串、列表、元组
# 2.字典
# 3.迭代器对象(iterator)
# 4.生成器函数(generator)
# 5.文件对象 我们已经学习了序列、字典等知识,迭代器对象和生成器函数将在后面进行详解。
# 接下来我们通过循环来遍历这几种类型的数据:
#  *** 作:遍历字符串中的字符
'''for x in list ('sxt001'):
    print(x)
#  *** 作遍历字典
d = {'name':'gaoqi','age':'18','address':'西三旗001号楼'}
for x in d: # 遍历字典所有的key
    print(x)
for x in d.keys():#遍历字典所有的key
    print(x)
for x in d.values():#遍历字典所有的value
    print(x)
for x in d.items():#遍历字典的所有“键值对”
    print(x)
# range对象
# range 对象是一个迭代器对象,用来产生指定范围的数字序列。格式为:
#      range(start,end[,step])
# 生成的数值序列从start开始到end结束(不包含end)。若没有填写start,则默认从0开始。
# steps 是可选的步长,默认是1。如下是几种典型示例:'''
'''for i in range(10):
#     print(i)
# for i in range(3,10):
#     print(i)
# for i in range(3,10,2):
#     print(i)'''
#  *** 作:利用for循环,计算1-100之间数字的累加;计算1-100之间偶数的累加和,
# 计算1-100之间奇数的累加和。
# sum_all = 0   # 1-100所有数的累加和
# sum_even = 0   # 1-100偶数的累加和
# sum_odd = 0    # 1-100奇数累加和
# for x in range (101):
#     sum_all += x
#     if x%2==1:
#         sum_odd += x
#     else:
#         sum_even += x
# print('1-100所有数的累加和',sum_all)
# print('1-100偶数的累加和',sum_even)
# print('1-100奇数的累加和',sum_odd)
# 嵌套循环
for x in range(5):
    for y in range(5):
        print(x,end='t')
    print(x)  #起到换行的作用

 

# 嵌套循环
for x in range(5):
    for y in range(5):
        print(x,end='t')
    print(x)  #起到换行的作用
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()

 

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() #换行
#  使用列表和字典存储表格的数据
tb = []
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:
    print(x)

 

while True:
    a = input('请输入一个字符(输入Q或q结束)')
    if a.upper()=='Q':
        print('循环结束,退出')
        break
    else:
        print(a)
# continue语句
# continue语句用于结束本次循环,继续下一次。多个循环嵌套时,contin也应用于最近的一层循环。
#  *** 作要求输入员工的薪资,若薪资小于0则重新输入。最后打印出录入员工的数量和薪资明细,以及平均薪资。
empNum = 0
salarySum = 0
salary = []
while True:
    s = input("请输入员工的薪资(按Q或q结束)")
    if s.upper()=='Q':
        print('录入完成,退出')
        break
    if float(s)<0:
        continue
    empNum +=1
    salary.append(float(s))
    salarySum += float(s)
print("员工数{0}".format(empNum))
print("录入薪资:",salary)
print("平均薪资{0}".format(salarySum/empNum))

 

# else:
#     print("您已经全部录入4名员工薪资")
# print("录入薪资:",salary)
# print("平均薪资{0}".format(salarySum/4))
# 循环代码优化
# 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)))

# 使用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(4):
#     print('{0}--{1}--{2}'.format(names[i],ages[i],jobs[i]))

 

 

import turtle
t = turtle.Pen()
t.width(4)
t.speed(0)
my_colors = ('red','green','yellow','black')
for i in range(100):   # 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 = 3
t = turtle.Pen()
t.speed(10)
t.color('green')

for i in range(19): # 0,50,100,150,200
    t.goto(0+i*15,300)   # 0,50,100,150,200
    t.penup()
    t.goto(15+i*15,0)
    t.pendown()
    t.goto(15+i*15,300)
for m in range(21): # 0,50,100,150,200
      # 0,50,100,150,200
    t.penup()
    t.goto(285, 0 + m * 15)
    t.pendown()
    t.goto(0,m*15)
    t.penup()
    t.goto(285,m * 15)
    t.pendown()

 

# # 推导式创建序列
# 推导式是从一个或者多个迭代器快速创建序列的一种方法。他可以将循环和条件判断结合,
# 从而避免冗长的代码。推导式是经典的python风格,会使用他代表你已经超过python初学者水平。
# # 列表推导式
# 列表推导式生成列表对象,语法如下:
# [表达式 for item in 可迭代对象]
# 或者:{表达式 for item in 可迭代对象 if 条件判断}
y = [x*2 for x in range(1,50) if x%5==0]
print(y)
# 字典推导式
# {key_expression : value_expressiom for 表达式 in 可迭代对象}
# 类似于列表推导式,字典推导也可以增加If条件判断、多个for循环。
# 统计文本中字符出现的次数:
my_text='i love you,i love sxt,i love dabai'
char_count = {c:my_text.count(c)for c in my_text}
print(char_count)
# 集合推导式
b = {x for x in range(1,100) if x%9==0}
print(b)
# 生成器推导式生成元组
gnt =(x for x in range(4))
print(tuple(gnt))
# print(tuple(gnt))
for x in gnt:
    print(x,end=',')
print(tuple(gnt))

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5658683.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存