Python嵌套循环实现乘法表输出遇阻,求技术指导
乘法表输出异常的问题分析与解决
需求回顾
要求输入一个正整数,输出所有两个操作数均从1到该数的乘法表达式,示例如下:
Please type in a number: 3
1 x 1 = 1
1 x 2 = 2
1 x 3 = 3
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
问题分析
你的代码核心问题是循环变量未在每次外层循环时重置:
- 变量
n在循环外初始化为2,第一次处理i=1时,while n <= limit会把n递增到limit+1(比如输入3时,n会变成4),后续i=2、3时,这个条件永远不成立,导致内层打印逻辑完全不执行 something变量属于冗余设计,它的存在反而打乱了第二个操作数的遍历逻辑,你原本只需要让第二个操作数从1遍历到limit即可
解决思路
使用两层嵌套循环:
- 外层循环控制第一个操作数,从1遍历到输入的
limit - 每次外层循环启动时,内层循环重置第二个操作数为1,再遍历到
limit,这样就能覆盖所有需要的乘法组合
修正后的代码
贴合你习惯的while循环版本
limit = int(input("Please type in a number: ")) i = 1 while i <= limit: # 每次外层循环开始时,重置第二个操作数j为1 j = 1 while j <= limit: print(f"{i} x {j} = {i * j}") j += 1 i += 1
更简洁的for循环版本(Python推荐写法)
limit = int(input("Please type in a number: ")) for i in range(1, limit + 1): for j in range(1, limit + 1): print(f"{i} x {j} = {i * j}")
内容的提问来源于stack exchange,提问作者pythonwqqqqqqqqqqq
相关产品推荐
相关产品推荐

