Python for循环重复添加

时间:2017-03-05 20:32:11

标签: python for-loop

我正在尝试创建一个创建n x n乘法表的程序。 分配使用重复加法而不是乘法函数是必需的。

这是我到目前为止的代码:

def main():
import math
print('Hello!')
n = (abs(eval(input("Enter n for the multiplication table n x n: "))))
n = int(n)
a = 0
for i in range(1,n+1):
    for x in range(1,n+1):
        a = i+a
        print(i,' * ',x,' = ',a)
main()

它给我一个这样的输出:

Hello!
Enter n for the multiplication table n x n: 4
1  *  1  =  1
1  *  2  =  2
1  *  3  =  3
1  *  4  =  4
2  *  1  =  6
2  *  2  =  8
2  *  3  =  10
2  *  4  =  12
3  *  1  =  15
3  *  2  =  18
3  *  3  =  21
3  *  4  =  24
4  *  1  =  28
4  *  2  =  32
4  *  3  =  36
4  *  4  =  40

输出显然不正确,那么我可以更改/添加什么来修复计算?

3 个答案:

答案 0 :(得分:5)

在嵌套for循环中有一个变量a,您可以为乘法表的不同值连续添加值。不要在每次迭代中添加ia,而是a = i*x。这将为您提供正确的乘法值。但是,如果您真的想重复添加,请在第二个for循环之外设置a = 0,但在第一个循环内部设置,如下所示:

for i in range(1,n+1):
    for x in range(1,n+1):
        a = i+a
        print(i,' * ',x,' = ',a)
    a = 0

答案 1 :(得分:0)

对于print语句,请尝试使用:

print(i,' * ',x,' = ',i*x)

我不确定你使用'a'变量是什么,但是如果你想输出i和x的乘法仍然使用a,而是保持你的代码相同,只需改变你拥有的a for nest for loop:

a = i*x

希望这有帮助!

答案 2 :(得分:0)

在你的for循环中,你总是递增变量' a'本身就加入了“我”。每一次,你应该乘以i * x

print("Hello!")

n = input("Enter n for the multiplication table n x n: ")
n = int(n)

result = 0

for i in range(1,n+1):
    for j in range(1, n+1):
        result = i*j
        print(i," * ", j, " = ", result)