Python课程作业:用嵌套for循环实现指定上限的乘法表
解决乘法表作业问题的修正方案
嘿,我来帮你搞定这个Python乘法表的作业问题!先梳理下你现有代码里的几个关键问题,再给你修正后的可运行版本:
你的代码存在的问题:
- 函数参数
column和tuple完全多余,且函数内部重新定义了同名变量,导致参数被覆盖,完全没必要传入这两个值 - 用户输入的上限值
x没有被用到,当前代码固定生成1-12的乘法表,不符合“上限为输入值”的要求 - 变量名
tuple是Python内置类型(用于创建元组),作为自定义变量名会引发混淆,甚至潜在问题 - 函数
mathTable没有返回值,最后执行print(mathTable(column, tuple))会额外输出None,这是不必要的
修正后的代码:
def mathTable(upper_limit): # 外层循环控制乘法表的行 for row in range(1, upper_limit + 1): # 内层循环控制每行的列(嵌套for循环实现要求) for column in range(1, upper_limit + 1): # 格式化输出,确保每个数字占6位宽度,保持对齐 print("%6d" % (row * column), end='') # 每行输出完成后换行 print() # 获取用户输入的乘法表上限值 x = int(input("Enter the value of the multiplication table: ")) # 调用函数,传入用户指定的上限 mathTable(x)
关键修改说明:
- 让函数接收
upper_limit参数,直接使用用户输入的数值作为乘法表的范围边界 - 将变量名
tuple替换为row,避免与Python内置类型冲突,代码可读性更强 - 嵌套循环的范围改为
range(1, upper_limit + 1),因为range是左闭右开区间,这样能确保包含用户输入的上限值 - 移除了无意义的变量赋值(
column = ""、tuple = ''),直接调用函数即可,无需打印函数返回结果
内容的提问来源于stack exchange,提问作者Kyle Fleming
相关产品推荐
相关产品推荐

