Python语言零基础入门——循环

目录

一、while循环

二、for循环

三、break

四、continue

五、pass语句

六、指数爆炸

七、练习题

1.打印出m行n列的图形(*组成的矩阵)

2.打印出n行的字符三角形

3.猴子吃桃问题

4.九九乘法表


一、while循环

初始条件设置——通常是重复执行的 计数器

while 条件(判断 计数器 是否达到 目标次数):
    条件满足时,任务1
    条件满足时,任务2
    条件满足时,任务3
    ……
    处理条件(计数器 + 1)

例1:打印5次hello Python

n = 0
while n < 5 :
    print('hello Python')
    n += 1

运行结果:

hello Python
hello Python
hello Python
hello Python
hello Python

例2:计算1+2+3+……+100的和

n = 1
result = 0
while n < 101:
    result += n
    n += 1
print(result)

运行结果:

5050

例3:计算1!+2!+……+n!

sum = 0
n = 1
while n<=4:
    result = 1
    m = 1
    while m<=n:
        result *= m
        m += 1
    sum += result
    n+=1
print(sum)

运行结果:

33

二、for循环

for x in range(5):
    print("python")
  • range()函数可以用来创建一个数字序列,常与for循环结合使用来重复执行代码块指定的次数

例1:打印5次hello Python

for i in range(5):
    print('hello Python')

运行结果:

hello Python
hello Python
hello Python
hello Python
hello Python

例2:

result = 0
for i in range(101):
    result += i
print(result)

运行结果:计算1+2+3+……+100的和

5050

例3:计算1!+2!+……+n!

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)

运行结果:

1
2
6
24
33

三、break

  • 作用:退出循环。在循环过程中,如果某一个条件满足后,不再希望循环继续执行,可以使用break退出循环
  • 注意:只能跳出距离最近的for或者while循环
  • 与else结合:没有通过 break退出循环,循环结束后,会执行else的下级代码
# 示例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

运行结果:

# 示例1
请输入你的名字:123
请重新输入
请输入你的名字:-17
输入正确
#示例2
3

例1:判断一个数n是不是质数(while循环实现)

n = 7
a = 2
while a<n:
    if n%a==0:
        print(n,'不是质数')
        break
    a += 1
if a==n:
    print(n,'是质数')

运行结果:

7 是质数

例2:判断一个数n是不是质数(for循环实现)

n = 8
for i in range(2,n):  # 从2开始,到n-1结束,不包括n
    if n%i==0:
        print(n,'不是质数')
        break
else:
    print(n,'是质数')

运行结果:

8 不是质数

四、continue

  • 作用:跳过本次循环后面的剩余语句,然后继续下一次循环
  • 注意:只能跳过距离最近的for或者while循环
for i in range(5):
    if i==2:
        continue
    print(i)

运行结果:

0
1
3
4

五、pass语句

  • 作用:当语句要求不希望任何命令或代码来执行时使用
  • 说明:pass语句表示一个空操作,在执行时没有任何的响应,pass的位置最终应该有代码来执行,只不过暂时写不出来
  • 可以使用在流程控制和循环语句中

六、指数爆炸

# 纸的厚度
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)

运行结果:

*****纸的厚度*****
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列的图形(*组成的矩阵)

m = 4
n = 5
for i in range(m):
    print('*'*n)

运行结果:

*****
*****
*****
*****

2.打印出n行的字符三角形

n = 8
for i in range(n):
    print(' '*(n-1-i) + '*'*(i*2+1))

运行结果:

       *
      ***
     *****
    *******
   *********
  ***********
 *************
***************

3.猴子吃桃问题

一只小猴买了若干个桃子。第一天他刚好吃了这些桃子的一半,又贪嘴多吃了一个;第二天他也刚好吃了乘桃子的一半,贪嘴多吃了一个;第三天他又刚好吃了剩下的桃子的一半,并贪嘴多吃了一个。第四天起来一看,发现桃子只剩下一个了。请问小猴买了几个桃子?

# 猴子吃桃 -- 穷举法
peach = 1
while True:
    d1 = peach//2 -1
    d2 = d1//2 - 1
    d3 = d2//2 - 1
    if d3 == 1:
        print(peach)
        break
    peach += 1

运行结果:

22

4.九九乘法表

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()

运行结果:

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 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值