嵌套for循环乘法表python

时间:2018-04-18 20:52:13

标签: python multiplication

有python类的赋值,我们必须创建一个要求输入的程序,并为输入之前的所有值显示乘法表。它需要我们使用嵌套的for循环。

def mathTable(column, tuple):
    for column in range(1, 13):
        for tuple in range(1, 13):
            print("%6d" % (column * tuple), end = '')
    print("")

x = int(input("Enter the value of the multiplication table: "))
column = ""
tuple = ''
print(mathTable(column, tuple))

这就是它需要的样子:

3 个答案:

答案 0 :(得分:0)

您重复使用变量和参数名称。也就是说,当你创建for循环时,你应该使用新变量来循环,这样你就不会覆盖你的参数,列和元组。我也将元组更改为行更清晰。你的循环变量可以命名为c和r以保持简短。

此外,您将13硬编码为表格大小。您应该确保从1到列数循环,从1到循环数。

def mathTable(column, row):
  for r in range(1, row): #r is a temporary variable for the outer loop
    for c in range(1, column): #c is a temporary variable for the inner loop
      print("%6d" % (c * r), end = '') #note column and row don't change now, they just act as bounds for the loop
    print("")

现在,如果你调用mathTable(3,4),你就会得到一个乘法表

1 2 3 4
2 4 6 8
3 6 9 12

答案 1 :(得分:0)

好吧,所以在我的额头上敲了几个小时后,我意识到自己是个笨蛋。

def mathTable(column, tuple):
    for c in range(1, x + 1):
        print("")
        for t in range(1, 13):
            print("%6d" % (c * t), end = '\t')
    return("\n")

x = int(input("Enter the value of the multiplication table: "))
column = ""
tuple = ''
print(mathTable(column, tuple))

所以这就是完美的工作,我使用第一个for语句来定义我要求的行数,然后第二个for语句是我将两者相乘的次数。 第一个for语句范围内的第二个参数与我的输入直接相关,这允许我将表的输出改变为我想要的任何大小(请不要在其中放入9个数字,从不放置哨兵值,所以你必须关闭你的命令行来做任何事情)

最终要摆脱" NONE"在打印表格后出现的文字你需要记住,你已经创建了一个实际上没有回答任何东西的函数,所以只是说{return("")}适合我的目的,因为我有实现了我创建的输出。

感谢那位试图帮助我的人我很抱歉当时我并不了解你!

答案 2 :(得分:-1)

如果您乐意使用第三方库,numpy这是微不足道的:

import numpy as np

def return_table(n):
    return np.arange(1, 13) * np.arange(1, n+1)[:, None]

print(return_table(3))

# [[ 1  2  3  4  5  6  7  8  9 10 11 12]
#  [ 2  4  6  8 10 12 14 16 18 20 22 24]
#  [ 3  6  9 12 15 18 21 24 27 30 33 36]]