python循环 - 让代码重复执行
·
循环 - 让代码重复执行
1. for循环
1.1语法:
for 变量 in 序列:
循环体
1.2说明:
1)for in - 都是关键字,固定写法
2)变量 - 自定义一个变量名
3)序列 - 容器型数据类型对应的数据
4)常见的序列:字符串,元组,列表,字典,迭代器,生成器,集合
5)循环体:重复执行的代码段
6)执行过程:变量依次从序列中取值,取一次循环体执行一次,直到取完
for i in "I Love You":
print(i)
1.3 range 函数 - 产生指定的数字序列
1)range(N) 产生[0-N)的数字序列,步长默认为1
2)range(M,N) 产生[M,N)的数字序列,步长默认为1
3)range(M,N,step) 产生[M,N)的数字序列 step为指定步长的值
for i in range(10):
print(i)
print("---------------------")
a = 0
for i in range(0,100):
a+=1
print("hello")
print(a)
print("---------------------")
for i in range(10,20,2):
print(i)
print("---------------------")
for i in range(20,2,-3):
print(i)
练习1:打印100以内所有的偶数
for i in range(0,100,2):
print(i)
练习2:打印100-200中所有个位数是3的数
for i in range(100,200):
if i % 10 == 3:
print(i)
练习3:打印所有的水仙花数
for i in range(100,1000):
if (i//100)**3+(i//10%10)**3+(i%10)**3 == i:
print("水仙花数:",i)
练习4:统计100以内的偶数个数
count = 0
for i in range(100):
if i % 2 == 0:
count+=1
print(count)
练习5:统计100以内能被3整除的偶数的个数
count = 0
for i in range(100):
if i % 6 == 0:
count+=1
print(count)
练习6:计算1+2+3+…+100的和
sum = 0
for i in range(101):
sum += i
print(sum)
练习7:计算所有水仙花数的和
sum = 0
for i in range(100,1000):
if (i//100)**3+(i//10%10)**3+(i%10)**3 == i:
sum += i
print(sum)
2.while 循环
2.1语法:
while 条件语句:
循环体
2.2说明:
2.2.1while - 关键字,固定写法
2.2.2条件语句 - 任何有结果的表达式
2.2.3循环体 - 重复执行的代码段
2.3规则:
2.3.1先判断条件,true执行循环体,执行完再次判断,
2.3.2如果为true再次执行,以此类推,直到条件不成立,循环结束
练习:使用while打印十个hello
num = 0
while num<10:
print("hello")
num += 1
2.4while 和 for的选择
2.4.1for循环:循环次数确定的时候使用
2.4.2while循环:循环次数不确定的时候使用
练习:提示用户不断输入内容,直到输入的数据是0停止
b = input("请输入:")
while b !='0':
b = input("请输入:")
3.循环关键字
3.1 continue 和 break
说明:只能出现在循环体中,for循环与while循环都可
3.1.1 continue - 结束一次循环/结束当次循环
如果遇到continue,当次循环结束,直接执行下一次循环
实例1
for i in range(4):
print('======')
continue
print('++++++')
实例2
for i in range(10):
if i == 5 or i == 8:
continue
print(i)
3.1.2 break - 结束整个循环
如果遇到break,整个循环结束
实例1
for i in range(10):
print(i)
break
实例2
for i in range(10):
if i == 5:
break
print(i)
实例3
while True:
value = input("请输入:")
if value == '0':
break
3.2 else关键字
说明:
for循环
for 变量 in 序列:
循环体
else:
代码段
while循环
while 条件语句:
循环体
else:代码段
重点:else结构的存在不影响原来循环的执行
当循环正常结束时,继续执行else后面的代码段,否则不执行
实例1
for i in range(4):
print(i,"====")
else:
print("正常")
实例2
for i in range(4):
print(i,"====")
if i == 2:
break
else:
print("正常")
通过实例1和实例2的对比看else的作用,while相同
基础题
-
使用for和while循环输出 0~100内所有3的倍数。
for循环
for i in range(0,100,3): print(i)
while循环
x = 0 while x<100: if x % 3 ==0: print(x) x+=1
5. 使用for和while循环输出100~200内个位数或者十位数能被3整除的数。
for循环
for i in range(100,200):
if (i%10) % 3 ==0 or (i//10%10) % 3 ==0:
print(i)
while循环
x = 100
while x<200:
if (x % 10) % 3 == 0 or (x // 10 % 10) % 3 == 0:
print(x)
x+=1
6. 统计100~200中十位数是5的数的个数
count = 0
for i in range(100,200):
if i//10%10 == 5:
count+=1
print(count)
7. 打印50~150中所有能被3整除但是不能被5整除的数
for i in range(50,150):
if i % 3 ==0 and i % 5 !=0:
print(i)
8. 计算50~150中所有能被3整除但是不能被5整除的数的和
sum = 0
for i in range(50,150):
if i % 3 ==0 and i % 5 !=0:
sum+=i
print(sum)
进阶题
1. 使用循环计算1*2*3*4*...*10
的结果。
k = 1
for i in range(1,11):
k*=i
print(k)
2. 统计100以内个位数是2并且能够被3整除的数的个数。
count = 0
for i in range(100):
if i % 10 == 2 and i % 3 == 0:
count+=1
print(count)
3. 输入任意一个正整数,求他是几位数?
注意: 这儿不能使用字符串,只能用循环
b = int(input("请输入一个正整数:"))
count = 0
while b>0:
b //=10
count+=1
print("它是一个",count,"位数")
4. 打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字⽴方和等于该数本身。例如:153是⼀个⽔仙花数,因为 1³ + 5³ + 3³
等于 153。
for i in range(100,1000):
if (i//100)**3+(i//10%10)**3+(i%10)**3 == i:
print("水仙花数:",i)
挑战题
1. 判断指定的数是否是素数(素数就是质数,即除了1和它本身以外不能被其他的数整除的数)
x = int(input("请输入一个数:"))
for i in range(2,x):
if x % i == 0:
print("这个数不是素数")
break
else:
print("这个数是素数")
2. 求斐波那契数列列中第n个数的值:1,1,2,3,5,8,13,21,34… (这儿的n可以是任意正整数,可以通过输入来确定)
n = int(input('请输入一个正整数:'))
n1 = 0
n2 = 1
sum = 1
for i in range(2, n+1):
sum = n1 + n2
n1 = n2
n2 = sum
print('第',n,'个数是',sum)
3. 输出9*9口诀。 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
for i in range(1,10):
for j in range(1,i+1):
print(i,"*",j,"=",i*j,end=' ')
print("")
4. 这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?(可以直接使用穷举法)
for i in range(34):
for j in range(51):
k = 100 - i -j
if 3*i+2*j+k/2 == 100 and i+j+k==100:
print("有大,中,小马各",i,j,k,"匹")
更多推荐
已为社区贡献1条内容
所有评论(0)