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

Python自定义圆面积函数:非预期类型输入的循环重试实现问题

修复圆面积计算函数的输入验证逻辑

原代码的核心问题在于对input()返回值的类型判断错误,以及缺少异常处理机制——input()获取的内容永远是字符串,直接判断类型或者强制转换都会导致逻辑失效甚至报错。下面是修正后的代码,同时优化了循环逻辑:

def circlearea(r):
    print("Calculating Area Of A Circle")
    radius = r
    print("Radius Is ", radius)
    pi = 22/7

    # 圆的数量输入验证
    while True:
        circles_input = input("Count Of Circle: ")
        try:
            circles = int(circles_input)
            # 可选:验证数量为正整数
            if circles <= 0:
                print("请输入大于0的整数!")
                continue
            break
        except ValueError:
            print("输入无效,请输入整数类型的圆数量!")

    # 角度值输入验证
    while True:
        angle_input = input("The Value Of Angle: ")
        try:
            angle = float(angle_input)
            # 可选:验证角度在0-360范围内
            if angle < 0 or angle > 360:
                print("请输入0到360之间的角度值!")
                continue
            break
        except ValueError:
            print("Invalid Angle Please Try Again !!")

    area = pi * radius ** 2 * (angle / 360) * circles
    print("Area Of This Circle Is: ", area)

关键修改说明:

  • 用while True替代自定义循环标记变量,逻辑更简洁直观
  • 使用try-except ValueError捕获类型转换失败的情况,这是处理输入验证的标准方式
  • 新增了可选的数值范围验证(圆数量为正、角度在0-360之间),可根据需求调整
  • 变量命名更清晰,区分输入的原始字符串和转换后的数值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 01:45:36