目录
一、while循环
python
初始条件设置------通常是重复执行的 计数器
while 条件(判断 计数器 是否达到 目标次数):
条件满足时,任务1
条件满足时,任务2
条件满足时,任务3
......
处理条件(计数器 + 1)
例1:打印5次hello Python
python
n = 0
while n < 5 :
print('hello Python')
n += 1
运行结果:
python
hello Python
hello Python
hello Python
hello Python
hello Python
例2:计算1+2+3+......+100的和
python
n = 1
result = 0
while n < 101:
result += n
n += 1
print(result)
运行结果:
python
5050
例3:计算1!+2!+......+n!
python
sum = 0
n = 1
while n<=4:
result = 1
m = 1
while m<=n:
result *= m
m += 1
sum += result
n+=1
print(sum)
运行结果:
python
33
二、for循环
python
for x in range(5):
print("python")
- range()函数可以用来创建一个数字序列,常与for循环结合使用来重复执行代码块指定的次数
例1:打印5次hello Python
python
for i in range(5):
print('hello Python')
运行结果:
python
hello Python
hello Python
hello Python
hello Python
hello Python
例2:
python
result = 0
for i in range(101):
result += i
print(result)
运行结果:计算1+2+3+......+100的和
python
5050
例3:计算1!+2!+......+n!
python
sum = 0
for n in range(5):
if n>0:
result = 1
for i in range(n+1):
if i>0:
result *= i
print(result)
sum += result
print(sum)
运行结果:
python
1
2
6
24
33
三、break
- 作用:退出循环。在循环过程中,如果某一个条件满足后,不再希望循环继续执行,可以使用break退出循环
- 注意:只能跳出距离最近的for或者while循环
- 与else结合:没有通过 break退出循环,循环结束后,会执行else的下级代码
python
# 示例1
while True:
name = input('请输入你的名字:')
if name == '-17':
print('输入正确')
break
else:
print('请重新输入')
#示例2
for i in range(10):
if i>0 and i%3==0:
print(i)
break
运行结果:
python
# 示例1
请输入你的名字:123
请重新输入
请输入你的名字:-17
输入正确
#示例2
3
例1:判断一个数n是不是质数(while循环实现)
python
n = 7
a = 2
while a<n:
if n%a==0:
print(n,'不是质数')
break
a += 1
if a==n:
print(n,'是质数')
运行结果:
python
7 是质数
例2:判断一个数n是不是质数(for循环实现)
python
n = 8
for i in range(2,n): # 从2开始,到n-1结束,不包括n
if n%i==0:
print(n,'不是质数')
break
else:
print(n,'是质数')
运行结果:
python
8 不是质数
四、continue
- 作用:跳过本次循环后面的剩余语句,然后继续下一次循环
- 注意:只能跳过距离最近的for或者while循环
python
for i in range(5):
if i==2:
continue
print(i)
运行结果:
python
0
1
3
4
五、pass语句
- 作用:当语句要求不希望任何命令或代码来执行时使用
- 说明:pass语句表示一个空操作,在执行时没有任何的响应,pass的位置最终应该有代码来执行,只不过暂时写不出来
- 可以使用在流程控制和循环语句中
六、指数爆炸
python
# 纸的厚度
print('*****纸的厚度*****')
n = 0.1
w = n
for i in range(10):
w *= 2
print(w)
# 国王麦粒
print('*****国王麦粒*****')
g = 1 # 当前格子应该放的麦粒数
total = 0 # 总麦粒数
a = 0 # 棋盘格子数量
while a<=10:
total += g
print('在放满了%d个格子后,总的麦粒数是%d' % (a, total))
a += 1
g *= 2
# 人生的复利
print('*****人生的复利*****')
day = 0
total = 1
while day<365:
total = total*1.01 # 每天进步0.01
day += 1
print(total)
运行结果:
python
*****纸的厚度*****
0.2
0.4
0.8
1.6
3.2
6.4
12.8
25.6
51.2
102.4
*****国王麦粒*****
在放满了0个格子后,总的麦粒数是1
在放满了1个格子后,总的麦粒数是3
在放满了2个格子后,总的麦粒数是7
在放满了3个格子后,总的麦粒数是15
在放满了4个格子后,总的麦粒数是31
在放满了5个格子后,总的麦粒数是63
在放满了6个格子后,总的麦粒数是127
在放满了7个格子后,总的麦粒数是255
在放满了8个格子后,总的麦粒数是511
在放满了9个格子后,总的麦粒数是1023
在放满了10个格子后,总的麦粒数是2047
*****人生的复利*****
37.783434332887275
七、练习题
1.打印出m行n列的图形(*组成的矩阵)
python
m = 4
n = 5
for i in range(m):
print('*'*n)
运行结果:
python
*****
*****
*****
*****
2.打印出n行的字符三角形
python
n = 8
for i in range(n):
print(' '*(n-1-i) + '*'*(i*2+1))
运行结果:
python
*
***
*****
*******
*********
***********
*************
***************
3.猴子吃桃问题
一只小猴买了若干个桃子。第一天他刚好吃了这些桃子的一半,又贪嘴多吃了一个;第二天他也刚好吃了乘桃子的一半,贪嘴多吃了一个;第三天他又刚好吃了剩下的桃子的一半,并贪嘴多吃了一个。第四天起来一看,发现桃子只剩下一个了。请问小猴买了几个桃子?
python
# 猴子吃桃 -- 穷举法
peach = 1
while True:
d1 = peach//2 -1
d2 = d1//2 - 1
d3 = d2//2 - 1
if d3 == 1:
print(peach)
break
peach += 1
运行结果:
python
22
4.九九乘法表
python
for i in range(9):
for j in range(i+1):
print('%d×%d=%d' % (j+1,i+1,(j+1)*(i+1)),end=' ')
print()
运行结果:
python
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
1×4=4 2×4=8 3×4=12 4×4=16
1×5=5 2×5=10 3×5=15 4×5=20 5×5=25
1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36
1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49
1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64
1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81