You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否有其他实现方式?基于while循环的数值计算程序开发需求

几种替代实现方案

针对需求,这里提供几种不同风格的实现方式,兼顾健壮性、模块化和代码可读性:

方案1:预计算常量+异常处理(更健壮)

先把公式里的固定值90+2-9+3预计算为86,减少重复计算;同时添加输入异常处理,避免用户输入非整数时程序崩溃。

def random_calculation(user_val):
    # 预计算固定常量,提升执行效率
    fixed_constant = 86
    return user_val * 77 + fixed_constant

while True:
    user_input = input("Please enter a number: ")
    try:
        user_val = int(user_input)
        if user_val == 0:
            break
        print(random_calculation(user_val))
    except ValueError:
        print("无效输入!请输入整数。")

方案2:用循环条件替代break语句

将循环终止逻辑整合到while的条件判断中,避免使用break,让循环结构更直观。

def random_calculation(user_val):
    return user_val * 77 + 86

user_val = -1  # 初始化非0值,确保循环启动
while user_val != 0:
    user_input = input("Please enter a number: ")
    try:
        user_val = int(user_input)
        if user_val != 0:
            print(random_calculation(user_val))
    except ValueError:
        print("请输入有效的整数。")
        user_val = -1  # 重置值,防止循环意外终止

方案3:模块化拆分输入逻辑

将获取用户输入的逻辑单独封装为函数,让代码职责更清晰,主逻辑更简洁。

def get_valid_integer():
    while True:
        user_input = input("Please enter a number: ")
        try:
            return int(user_input)
        except ValueError:
            print("输入无效,请重新输入整数。")

def random_calculation(user_val):
    return user_val * 77 + (90 + 2 - 9 + 3)

while True:
    num = get_valid_integer()
    if num == 0:
        break
    print(random_calculation(num))

方案4:用生成器处理输入流

借助生成器持续产出有效的整数输入,主循环通过遍历生成器实现,代码更简洁优雅。

def valid_number_stream():
    while True:
        user_input = input("Please enter a number: ")
        try:
            yield int(user_input)
        except ValueError:
            print("不是有效整数,请重试。")

def random_calculation(user_val):
    return user_val * 77 + 86

for num in valid_number_stream():
    if num == 0:
        break
    print(random_calculation(num))

内容的提问来源于stack exchange,提问作者Georges Buh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 07:05:52