range(10) 返回一个生成器,往往和for循环结合
一、while循环
-python 是以强制缩进作为区分代码块的
-标准是4个空格,tab和4个空格不是一样的
while 判断条件:(判断条件boolean类型的表达式)
循环体(可以有多行)
避免死循环-->正规代码
n=1
while n<=10:
print(n)
n=n+1
第一题:求1-100的偶数和
n=1 sum=0 while n<=100: if n%2==0: sum+=n n=n+1 print(sum)第二题:请用户输入数字,求和,直到输入0退出
sum=0 while True: n=int(input('请输入一个数字:')) if n==0: break sum+=n print(sum)
第三题:1-100
遇到3和5的倍数输出当前值是3和5的倍数
遇到5的倍数输出当前值是5的倍数
遇到3的倍数输出当前值是3的倍数
n=1 while n<=100: if (n%3==0)and(n%5==0): print(str(n),end='当前值是3和5的倍数') elif n%5==0: print(n, '当前值是5的倍数') elif n%3==0: print(n, '当前值是3的倍数') n=n+1 else print('循环结束') while...else 在条件语句为false时执行else块
二、for 迭代变量 in列表/字典/元组 逐个列表取值
range()函数 生成数列,不包含结尾参数
range(5):一个参数从0开始到5不包含5自己
range(5,15):两个参数从5开始到15不包含15自己
range(5,55,5):三个参数从5开始到55不包含自己,最后的参数5是步长
end=''不换行
1.for x in range(1,X):
循环体
2.list1 = [1,2,3,4] test_str = 'hello world'
for item in list1: for item in test_str:
print(item) print(item)
即
for item in '序列': 依此去序列中取出它的元素 (字符串也是一个序列)
print(item) 遍历
3.nums=range(5)
for i in range(5,19,2):
print(i)
第一题:输出一行9个*
for i in range(9): print('*',end='')
第二题:输出9行9个*
for i in range(9):#几行 for i in range(9):#一行几个星星 print('*',end=' ') print()
第三题:直角三角形
for i in range(1,6): for j in range(i): print('*',end='') print()
第四题:九九乘法表
for i in range(1,10): for j in range(1,i+1): print(j,'*',i,'=',(j*i),end='\t') print()
第五题:菱形
rows=int(input('请输入菱形的行数')) s=rows//2+1 x=rows-s for i in range(s): for j in range(s-1,i,-1): print(' ',end='') for k in range(i*2+1): print('*',end='') print() for i in range(1,x+1): for j in range(i): print(' ',end='') for k in range((s-i)*2-1): print('*',end='') print()
三、嵌套循环
break 结束所在循环执行外层代码-->外侧大循环
continue 返回到循环条件判断的位置 必须在循环体中 结束本次循环继续下一次循环 continue下面的代码不执行
第一题:请用户输入成绩 统计各区间的人数,超出0-100重新输入,正确 询问是否继续
a=b=c=d=0 while True: num=int(input('请输入成绩:')) if num>=90 and num<=100: a+=1 elif num>=80 and num<90: b+=1 elif num>=60 and num<80: c+=1 elif num>=0 and num<60: d+=1 else: print('超出范围 请重新输入:') continue print(num) str1=int(input('是否继续?1/0:')) print(str1) if str1==0: break print('>=90:',a) print('>=80:',b) print('>=60:',c) print('<60:',d)
第二题:统计3个班级中每个班级3个学生的成绩:大于80的人数几个
count=0 for i range(1,4): print('请输入第',i,'个班级的学生成绩') for j in range (1,4): score=int(input('请输入第',j,'个学生成绩')) if score<0: print('输入负数进入下一个班级') break if score<80: continue count+=1 print('大于80的人数:',count)