Python核心技术开发指南(023)——while语句


版权声明

  • 本文原创作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl

在这里插入图片描述

while语句

while语句是Python中的循环控制结构之一,用于在满足特定条件的情况下重复执行一段代码块。其主要特点是先判断条件,再根据条件结果决定是否执行循环体。

while语句的语法

while 条件表达式:
    循环体(条件为True时执行)
    [可选:改变条件的语句,如变量自增/自减]

语法说明:

  • 条件表达式的值为布尔类型(True/False)。
  • 当条件表达式为True时,执行缩进的循环体;执行完毕后,重新重新判断条件表达式,直至其值为False,循环终止。
  • 循环体中通常需包含改变条件的语句,否则可能导致无限循环。

while语句的示例描述及实现

1. 累加求和

描述:使用while语句计算1到指定正整数n的累加和。

n = 10
sum_result = 0
current = 1

while current <= n:
    sum_result += current
    current += 1

print(f"1到{n}的累加和为:{sum_result}")  # 输出:1到10的累加和为:55

2. 计算阶乘

描述:使用while语句计算指定正整数n的阶乘(n! = 1×2×…×n)。

n = 5
factorial = 1
current = 1

while current <= n:
    factorial *= current
    current += 1

print(f"{n}的阶乘为:{factorial}")  # 输出:5的阶乘为:120

3. 打印指定范围内的偶数

描述:使用while语句打印1到20之间的所有偶数。

start = 1
end = 20

print(f"{start}{end}之间的偶数为:")
current = start
while current <= end:
    if current % 2 == 0:
        print(current, end=" ")
    current += 1

# 输出:1到20之间的偶数为:
# 2 4 6 8 10 12 14 16 18 20 

4. 猜数字游戏

描述:程序随机生成1到100的整数,用户通过输入猜测数字,while语句循环判断猜测结果(过大/过小/正确),直至猜对为止。

import random

target = random.randint(1, 100)
guess = None

while guess != target:
    guess = int(input("请输入你猜测的数字(1-100):"))
    if guess < target:
        print("猜小了,请重试!")
    elif guess > target:
        print("猜大了,请重试!")
    else:
        print(f"恭喜你,猜对了!目标数字是{target}")

# 示例输出:
# 请输入你猜测的数字(1-100):50
# 猜小了,请重试!
# 请输入你猜测的数字(1-100):75
# 猜大了,请重试!
# 请输入你猜测的数字(1-100):63
# 恭喜你,猜对了!目标数字是63

while语句的嵌套

while语句的嵌套是指在一个while循环的循环体中包含另一个while循环,用于处理需要多层重复的逻辑。外层循环控制内层循环的执行次数,内层循环完成具体的重复操作。

1. 嵌套while语句的语法

while 外层条件表达式:
    外层循环体(外层条件为True时执行)
    [可选:改变外层条件的语句]
    
    while 内层条件表达式:
        内层循环体(内层条件为True时执行)
        [可选:改变内层条件的语句]
    [可选:重置内层条件的语句,以便外层循环下次执行时重新进入内层循环]

语法说明:

  • 内层循环完全包含在外层循环的循环体中,外层循环每执行一次,内层循环会完整执行其所有迭代。
  • 内层循环的条件通常与外层循环的变量相关,且需在每次外层循环迭代时重置内层循环的控制变量。

2. 嵌套while语句的示例描述及实现

(1)打印九九乘法表

描述:使用嵌套while语句打印九九乘法表(9行9列,第i行显示i×1到i×i的乘积)。

i = 1  # 外层循环控制行数(1-9)
while i <= 9:
    j = 1  # 内层循环控制每行的列数(1-i)
    while j <= i:
        print(f"{j}×{i}={i*j}", end="\t")
        j += 1
    print()  # 换行
    i += 1

# 输出:
# 1×1=1	
# 1×2=2	2×2=4	
# 1×3=3	2×3=6	3×3=9	
# ...(省略中间行)
# 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	

(2)打印直角三角形星号图案

描述:使用嵌套while语句打印5行直角三角形星号图案,第i行包含i个星号(*)。

rows = 5
i = 1  # 外层循环控制行数(1-rows)
while i <= rows:
    j = 1  # 内层循环控制每行的星号数量(1-i)
    while j <= i:
        print("*", end="")
        j += 1
    print()  # 换行
    i += 1

# 输出:
# *
# **
# ***
# ****
# *****

(3)打印100以内的素数

描述:使用嵌套while语句找出100以内的所有素数(大于1的自然数,除了1和自身外无其他因数)。外层循环遍历2到100的整数,内层循环判断该数是否为素数。

num = 2  # 外层循环:遍历2到100的整数
while num <= 100:
    is_prime = True
    divisor = 2  # 内层循环:判断num是否为素数(除数从2到num-1)
    
    while divisor < num:
        if num % divisor == 0:
            is_prime = False
            break  # 若存在除1和自身外的因数,跳出内层循环
        divisor += 1
    
    if is_prime:
        print(num, end=" ")
    num += 1

# 输出:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谷哥的小弟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值