版权声明
- 本文原创作者:谷哥的小弟
- 作者博客地址: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