循环结构在编程里是比较有用的,对逻辑的要求也更高,很多累加、枚举都要用到循环。
- 场景:重复的执行某条或某些指令
- 两种:一种是
for-in
循环,一种是while
循环
for-in循环
场景:明确的知道循环执行的次数或者要对一个容器进行迭代
计算1~100求和的结果
s=0 #不要忘记给出变量的初值
for i in range(1,101):
s=s+i
print(s)
range(101)
可以产生一个0到100的整数序列。range(1, 100)
可以产生一个1到99的整数序列。range(1, 100, 2)
可以产生一个1到99的奇数序列,其中2是步长,即数值序列的增量。
实现1~100之间的偶数求和:可直接用range(2,101,2),也可以用分支
sum = 0
for x in range(1, 101):
if x % 2 == 0:
sum += x
print(sum)
while循环
场景:不知道具体循环次数的循环结构:表达式的值为True
循环继续,表达式的值为False
循环结束
“猜数字”的小游戏(计算机出一个1~100之间的随机数,人输入自己猜的数字,计算机给出对应的提示信息,直到人猜出计算机出的数字)
import random #随机数生成
answer = random.randint(1,100)
count = 0 #计数器
while True: #常用用法
count+=1
guass=int(input('输入你猜的数字:'))
if guass < answer:
print('大一点')
elif guass > answer:
print('小一点')
else:
print('猜对了!')
break #跳出整个循环
print('共猜了%d次'%count)
if count > 7:
print('你的智商余额明显不足')
break
只能终止它所在的那个循环,这一点在使用嵌套的循环结构需要引起注意。
continue
,它可以用来放弃本次循环后续的代码直接让循环进入下一轮。
输出一个九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print('%d * %d = %d'%(i,j,i*j))
print()
练习1:输入一个正整数判断是不是素数。
from math import sqrt %引入开方函数
num = int(input('输入一个正整数:'))
end = int(sqrt(num))
is_prime = True %默认为真,若满足合数要求值变假
for i in range(2, end+1):
if num % i == 0:
is_prime = False
break
if is_prime and num != 1:
print('%d是素数'%num)
else:
print('%d不是素数'%num)
练习2:输入两个正整数,计算它们的最大公约数和最小公倍数。
a = int(input('输入一个正整数:'))
b = int(input('输入一个正整数:'))
if a > b:
a,b=b,a #交换值,使a小
for i in range(a,0,-1):
if a % i ==0 and b % i ==0:
print('%d和%d的最大公约数是%d'%(a,b,i))
print('%d和%d的最小公倍数是%d'%(a,b,a*b//i))
break
练习3:打印三角形图案。
for i in range(1,6):
print(i*'*')
*
**
***
****
*****
for i in range(1,6):
print(' '*(6-i),end='') #输出不换行,最后加end=‘’
print(i*'*')
for i in range(1,6):
print(' '*(5-i),end='')
print((2*i-1)*'*')
官方参考代码:
row = int(input('请输入行数: '))
for i in range(row):
for _ in range(i + 1):
print('*', end='')
print()
for i in range(row):
for j in range(row):
if j < row - i - 1:
print(' ', end='')
else:
print('*', end='')
print()
for i in range(row):
for _ in range(row - i - 1):
print(' ', end='')
for _ in range(2 * i + 1):
print('*', end='')
print()
总结:
1.循环和分支结构嵌套经常用,逻辑关系和原理一定要搞清楚
2.while 和for循环的使用情况
3.break和continue的用法
4。range函数在循环中经常使用,三种表示方式