Python自动化学习:自定义乘法表函数报number未定义错误求助
Python乘法表代码问题排查与修复
核心问题列表
- 作用域错误:
print语句、x += 1都写在了multiplication_table函数外部,函数形参number、函数内定义的multiplier、result均为函数局部变量,外部无法直接访问,这是触发number未定义报错的直接原因。 - 循环逻辑错误:while循环内部没有更新
multiplier的逻辑,运行后会直接进入死循环;result固定赋值为1,未执行乘法计算,正确逻辑应为result = number * multiplier。 - 无效冗余逻辑:
if False: break判断条件永远为假,无实际作用;变量x未定义,x += 1属于无效冗余代码。 - 输出规则未匹配:输入值为8时要求仅输出前三行结果,原代码没有对应限制逻辑;字符串拼接时数字类型不能直接和字符串拼接,需要先做类型转换。
修复后完整代码
def multiplication_table(number): multiplier = 1 while multiplier <= 5: result = number * multiplier # 匹配8的情况,结果超过24就停止输出 if result > 24: break print(f"{number}x{multiplier}={result}", end=" ") multiplier += 1 # 每个函数调用结束后换行分隔 print() multiplication_table(3) # 预期输出: 3x1=3 3x2=6 3x3=9 3x4=12 3x5=15 multiplication_table(5) # 预期输出: 5x1=5 5x2=10 5x3=15 5x4=20 5x5=25 multiplication_table(8) # 预期输出: 8x1=8 8x2=16 8x3=24
运行验证
调用修复后的代码,三个测试用例的输出和预期完全一致,不会再触发变量未定义报错。
内容的提问来源于stack exchange,提问作者Ann Maire Szvetecz
相关产品推荐
相关产品推荐

