创建乘法表?

时间:2016-08-09 14:58:34

标签: python python-2.7

我是编程的初学者,我正在练习如何使用嵌套for循环在python 2.7.5中创建乘法表。 这是我的代码

x=range(1,11)
y=range(1,11)
for i in x:
    for j in y:
        print i*j
    pass

好吧,结果是正确的,但它没有像我希望的那样以方形矩阵形式出现。请帮我改进代码

4 个答案:

答案 0 :(得分:8)

你应该打印没有换行符。

x = range(1,11)
y = range(1,11)
for i in x:
    for j in y:
        print i*j,    # will not break the line
    print   # will break the line

答案 1 :(得分:2)

您可以添加格式以保持单元格宽度

x = range(1,11)
y = range(1,11)
for i in x:
    for j in y:
        # substitute value for brackets
        # force 4 characters, n stands for number
        print '{:4n}'.format(i*j),  # comma prevents line break
    print  # print empty line

答案 2 :(得分:1)

Python的print语句默认情况下会将新行字符添加到您希望输出的数字中。我想你想在内循环的末尾有一个尾随空格,在外循环的末尾有一个换行符。

您可以使用

来实现这一目标
print i * j,   # note the comma at the end (!)

并在外部循环块的末尾添加一个新行:

print ''

要详细了解尾随昏迷及其工作原理,请查看此处:"How to print in Python without newline or space?"。请注意,它在Python 3中的工作方式不同。

最终代码应如下所示:

x=range(1,11)
y=range(1,11)
for i in x:
    for j in y:
        print i*j,
    print ''

您还可以查找'\ t'特殊字符,这样可以让您获得更好的格式(即使这个旧资源足够好:https://docs.python.org/2.0/ref/strings.html

答案 3 :(得分:0)

使用此代码。它工作得更好。我上学时必须这样做,我可以告诉你,经过大约4个小时的学习,它可以正常工作。

def returnValue(int1, int2):
    return int1*int2

startingPoint = input("Hello! Please enter an integer: ")
endingPoint = input("Hello! Please enter a second integer: ")

int1 = int(startingPoint)
int2 = int(endingPoint)

spacing = "\t"

print("\n\n\n")
if int1 == int2:
    print("Your integers cannot be the same number. Try again. ")
    

if int1 > int2:
    print("The second number you entered has to be greater than the first. Try again. ")


for column in range(int1, int2+1, 1):  #list through the rows(top to bottom)
    
    if column == int1:
            for y in range(int1-1,int2+1):
                if y == int1-1:
                    print("", end=" \t") 
                    
                else: 
                    individualSpacing = len(str(returnValue(column, y)))
                    print(y, " ", end=" \t")
            print()
            
    print(column, end=spacing)

    
    for row in range(int1, int2+1, 1): #list through each row's value. (Go through the columns)
        #print("second range val: {:}".format(row))
        
            individualMultiple = returnValue(row, column)
            print(individualMultiple, " ", end = "\t")
        
    print("")

祝你有美好的一天。