# 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))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)