平方数函数挑战无法运行:不知如何用sys.stdin传递测试输入
代码修复指南:输入数字计算平方
问题诊断
你的代码存在两个核心问题:
square函数里用return print(x**2)逻辑错误——print函数返回None,导致函数无法输出实际的平方计算值sys.stdin的循环仅原样输出输入内容,完全没调用square函数执行计算
修复后的代码
import sys def square(x): return x ** 2 # 专注计算,直接返回平方值,不嵌套print # 处理标准输入的逻辑 for line in sys.stdin: # 清除输入行的换行符,转换为数字类型 try: num = float(line.strip()) result = square(num) print(result) except ValueError: print("输入不是有效数字")
使用说明
- 运行代码后,在控制台输入数字并回车,即可得到对应平方结果
- 若输入非数字内容,会触发错误提示
关键修改点
- 让
square函数仅负责数值计算,分离计算与打印逻辑 - 遍历
sys.stdin时,先处理输入格式(去换行、转数字),再调用计算函数并输出结果 - 添加异常处理,避免输入非数字时程序崩溃
内容的提问来源于stack exchange,提问作者quigley
相关产品推荐
相关产品推荐

