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

目录

一、while循环

二、for循环

三、break

四、continue

五、pass语句

六、指数爆炸

七、练习题

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

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

3.猴子吃桃问题

4.九九乘法表


一、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 
相关推荐
萧鼎40 分钟前
Python并发编程库:Asyncio的异步编程实战
开发语言·数据库·python·异步
学地理的小胖砸41 分钟前
【一些关于Python的信息和帮助】
开发语言·python
疯一样的码农41 分钟前
Python 继承、多态、封装、抽象
开发语言·python
^velpro^42 分钟前
数据库连接池的创建
java·开发语言·数据库
秋の花1 小时前
【JAVA基础】Java集合基础
java·开发语言·windows
小松学前端1 小时前
第六章 7.0 LinkList
java·开发语言·网络
可峰科技1 小时前
斗破QT编程入门系列之二:认识Qt:编写一个HelloWorld程序(四星斗师)
开发语言·qt
全栈开发圈1 小时前
新书速览|Java网络爬虫精解与实践
java·开发语言·爬虫
面试鸭1 小时前
离谱!买个人信息买到网安公司头上???
java·开发语言·职场和发展
小白学大数据1 小时前
JavaScript重定向对网络爬虫的影响及处理
开发语言·javascript·数据库·爬虫