使用嵌套for循环实现Python乘法表报SyntaxError错误怎么解决
报错直接原因
你第6行的print(multiplicationTable(1)缺少右括号,语法未闭合,导致Python解析下一行代码时触发语法错误。
除了这个语法错误外,你的代码还有几处逻辑问题需要修改,才能输出符合预期的乘法表:
- 变量名大小写不匹配:函数参数定义为
maxValue,循环中使用的是全小写的maxvalue,Python变量名大小写敏感,运行时会触发NameError - 遍历范围错误:
range(1, 终止值)的遍历范围不包含终止值本身,要输出1到maxValue的乘法结果,需要将终止值改为maxValue + 1 - 换行位置错误:当前
print()放在外层for循环外部,只会在所有内容输出完成后才换行,要实现每一行乘法计算完成后换行,需要将print()缩进到外层i循环的内部 - 多余的输出:你的函数没有设置返回值,调用
print(multiplicationTable(x))会额外打印None,直接调用函数即可,不需要外层套print - 格式冗余:
("{:6d}".format(i * j,))中format参数后的逗号属于多余内容,外层括号也可以删除,同时可以调整格式符适配预期的紧凑输出效果
修改后可运行代码
def multiplicationTable(maxValue): for i in range(1, maxValue + 1): for j in range(1, maxValue + 1): print("{:4d}".format(i * j), end='') print() multiplicationTable(1) multiplicationTable(5) multiplicationTable(10)
运行效果说明
修改后代码会按正方形格式输出对应大小的乘法表,格式符{:4d}可保证数字对齐,如果你需要更紧凑的空格分隔,也可以修改为{:2d}或者直接用str(i*j) + ' '的格式输出。
内容的提问来源于stack exchange,提问作者Mohammad
相关产品推荐
相关产品推荐

