循环(while循环、for循环)
#格式 while 判断条件: # 循环体 #练习1、输出1-100的偶数和 n=1;oushu=0;jishu=0 while n<=100: if n%2==0: oushu+=n else: jishu+=n n += 1 print("1-100偶数和:{0}".format(oushu)) print("1-100奇数和:{0}".format(jishu)) #练习2、请用户输入数字,求和,直到输出0退出。 sum=0 num=int(input("请输入数字:")) while num>0: sum+=num; num -= 1; print("和是:{0}".format(sum)) # 练习3、1-100的 # 遇到3 和 5的倍数输出当前值是3 和 5的倍数 # 遇到5的倍数输出当前值是5的倍数。 # 遇到3的倍数输出当前值是3的倍数 n=1 while n<100: if n%3==0 and n%5==0: print("{0}是3和5的倍数".format(n)) elif n%3==0: print("{0}是3的倍数".format(n)) elif n%5==0: print("{0}是5的倍数".format(n)) n+=1 else:#while … else 在条件语句为 false 时执行 else 的语句块 print("循环结束,判断完毕") # for循环 # 1、 range()函数:生成有序数列 #range(5): 一个参数 从0开始到5 不包含自己 # range(5,9):二个参数 从5开始到9 不包含自己 # range(5, 55, 5) :三个参数 从5开始到55 不包含自己,第3个参数是迭代部分,步长 # 格式:for 迭代变量 in range(1,X) n=range(5); print(n) for i in range(5): print(i) # 三个参数 for i in range(5,90,5): print(i) #参数可为负数 for i in range(1,-20,-2): print(i) # 2、for循环 # 格式:for 迭代变量 in 列表/字典/元组 # 循环体 # for ...else:如果for循环中以break结束,则不进入else, 否则当for循环自己结束时进入else # 例子 for i in range(1,-20,-2): print(i) else: print("正常结束") # 嵌套循环/双重循环 # 输出五行1个* for i in range(1,6): print("*") # 输出五行5个*:for嵌套for循环 for i in range(1,6): for j in range(1,6): print("*",end=" ") print() # while嵌套for循环 i=0; while i<5: for j in range(1,6): print("*",end=" ") print(); i+=1; # for嵌套while循环 for i in range(1,6): j=0; while j<5: print("*",end=" ") j+=1; print() #练习2、输出一个直角三角形 for i in range(1,6): for j in range(i): print("*",end=" "); print(); # 练习3、输出九九乘法表 for i in range(1,10): for j in range(1,i+1): # print(str(j)+"*"+str(i)+"="+str(j*i),end="\t") print("{0}*{1}={2}".format(j,i,j*i),end="\t") print() #3、循环体中的 break continue '''练习、请用户输入成绩统计各区间的人数 超出0 - 100重新输入正确询问是否继续''' a,b,c,d,n=0,0,0,0,1 # while True: while n<6: score=int(input("请第{0}个用户输入成绩".format(n))); if score>=90 and score<=100: a+=1; elif score<90 and score>=70: b+=1; elif score<=70 and score>=60: c+=1; elif score<60 and score>0: d+=1; else: print("输入错误,停止输入") # continue break #两者的区别 # xunwen=input("是否继续?y or n") # if xunwen=="n": # break; n+=1; else: print("什么时候执行啊?") print(a,b,c,d) # 练习2、打印等腰三角形 row=6; for i in range(1,row): for j in range(row,i,-1): print(" ",end=" ") for k in range(i*2-1): print("*",end=" ") print() # 练习3、双重循环中break continue #统计3个班级 中每个班级3个学生的成绩: 大于80的人数几个 count=0 for i in range(1,4): print("第{0}个班级的学生成绩".format(i)); for j in range(1,4): print("第{0}个学生的成绩".format(j)); score=int(input()); if score<80: continue; count+=1; # if score>80: # count+=1; # elif score<0: # print("输入错误,停止本班") # break; print('大于 80分 人数是{0}'.format(count)) # continue 结束本次循环,继续下一次循环 # break 结束内层循环,执行外层代码 #列表:处理多个数据 # 1.创建列表:方括号括起来的,不同的数据项由逗号隔开,数据项可以是任意数据类型 # 2.列表切片:同字符串切片 list1=['小明','xiaohua',20,80,"name","age"] print(list1[1]) #输出第二位 print(list1[-1]) #最后一位 print(list1[:]) #全部 print(list1[:2]) #前两位:包含前一项,不包含后一项“2’ print(list1[1:5:1]) print(list1[-1:-4:-1]) print(list1[::]) #全部 print(list1[::-1]) #倒序显示 # 3.增删改查(动态数组): # 增 list.append("")尾部追加 insert(位置下标,“”) list+list2 与或非 extent(list) list1.append('python') print(list1) list1.insert(0,'html') #在下标0处插入,0和后面位置的项后挪一位, print(list1) list11=[1,3,5,7,9] list22=[2,4,6,8,10] # print(list11+list22) # # print(list11-list22) #不能相减 # print(str(list11) and str(list22)) # print(list11 or list22) list11.extend(list22) print(list11) # 改 list[i]="修改后字符" # 删 del list1[2] # list1.pop():把最后一个删除,也可以指定删除的下标 # list1.remove("")删除括号中的内容,但只删除一次 lista=[1,2,3,4,5,6,7,8,9] del lista[0] #删除了第一位 print(lista) del lista #删除了lista列表 listb=[1,2,3,4,5,6,7,8,9] listb.pop() #删除尾部数据 print(listb) listb.pop(0) #下标是第一位,删除第一位1 print(listb) listb.remove(5) #删除内容为5的一项 print(listb) # 作业: # 1 菱形 for i in range(1,9): for j in range(8,i-1,-1): print(" ",end=" ") for k in range(0,i*2-1): print('*',end=" ") print() for l in range(1,9): for m in range(l+1): print(" ",end=" ") for n in range(8*2,l*2+1,-1): print("*",end=" ") print() # 方法2 for i in range(1,10,2): print(("*"*i).center(20," ")) for j in range(7,0,-2): print(("*"*j).center(20," ")) # 2 求1-100内的所有质数:除了1和本身外,不能被小于本身的数整除,就是素数;除了1,从2开始 i=2;a=[] for i in range(2,101): j=2; for j in range(2,i): if i%j==0: break else: a.append(i) print(a) # 3 斐波那切序列:1,1,2,3,5,8,13,21....特点是第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和 i,j=0,1 while i<100: print(i, end=" ") i,j=j,i+j;