You need to enable JavaScript to run this app. Python基于while循环编写圆周长、面积计算表格程序及异常排查
优惠活动
大模型
产品
解决方案
定价
更多

Python基于while循环编写圆周长、面积计算表格程序及异常排查

原代码无输出的原因与调整实现方案

原代码核心错误清单

  • 循环变量初始化错误:i = float 是将浮点类型本身赋值给变量,而非定义一个初始值为浮点型的可遍历变量,直接导致while条件永远无法成立
  • 循环判断逻辑错误:while i in range(1, radius+1) 一是成员关系判断的写法不符合while循环需要布尔值条件的使用规则,二是range生成的整数序列无法覆盖0.5cm的增量要求
  • 计算逻辑错位:代码全程使用固定的radius=20的数值计算面积和周长,没有遍历不同半径的逻辑,哪怕循环触发,所有行的数值都是相同的
  • 提前终止循环:循环内部写了break语句,哪怕循环能触发,执行一次就会直接终止,无法遍历全部半径值
  • 格式化规则不匹配:原f-string里用{i:3d}的整数格式化规则处理后续的浮点型半径值,会直接触发格式报错

符合需求的调整后代码

调整逻辑完全匹配要求:使用while循环覆盖1cm-20cm(含两端)、步长0.5cm的所有半径值,计算对应周长与面积并输出对齐的表格。

import math

def main():
    # 半径从1cm起始
    current_r = 1.0
    # 打印对齐的表格表头
    print(f"{'半径(cm)':<8}{'面积(cm²)':<12}{'周长(cm)':<12}")
    print("-" * 32)
    # 循环终止条件:半径不超过20cm(含端点)
    while current_r <= 20.0:
        # 计算当前半径对应的面积、周长
        area = math.pi * current_r ** 2
        circumference = 2 * math.pi * current_r
        # 格式化输出,保留指定小数位保证对齐
        print(f"{current_r:<8.1f}{area:<12.2f}{circumference:<12.2f}")
        # 按0.5cm增量更新半径
        current_r += 0.5

if __name__ == "__main__":
    main()

代码调整说明

  • 用current_r作为循环载体,初始值设为1.0,完全匹配0.5cm的步长计算要求
  • while循环条件设置为current_r <=20.0,刚好覆盖1cm到20cm的两端取值,不会遗漏端点
  • 每次循环完成计算和打印后,给当前半径增加0.5cm,实现要求的增量规则
  • 去掉原代码中提前终止循环的break语句,保证所有半径值都能被遍历计算
  • 调整所有输出的格式化规则为浮点数模式,保证表格对齐,不会触发格式错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.27 04:36:07