0

这是我的时间表代码:

Y=int(input(""))
X=int(input(""))

for i in range(1,Y+1):
    print("")
    for j in range(1,X+1):
        print("{:>4}".format(str(i*j)),end="")

这是 X=3 和 Y=2 时的输出:


   1   2
   2   4
   3   6

输出是正确的,但顶部有一个额外的间距,我需要去掉。

   1   2
   2   4
   3   6

这就是我想要得到的。任何人都可以请帮助解决这个问题。

4

4 回答 4

1

你需要移动最后的空print,不需要""进入它,也不需要转换为str

for i in range(1,Y+1):
    for j in range(1,X+1):
        print("{:>4}".format(i*j),end="")
    print()

您还可以连接内部循环,例如

for i in range(1,Y+1):
    val = ""
    for j in range(1,X+1):
         val+= "{:>4}".format(i*j)
    print(val)

或者更短

for i in range(1, Y + 1):
    print("".join(map(lambda j: "{:>4}".format(i * j), range(1, X + 1))))
于 2020-03-20T13:21:41.347 回答
0

在下面试试这个:

Y = int(input(""))
X = int(input(""))
for i in range(1, Y + 1):
    if i > 1:
        print()
    for j in range(1, X + 1):
        print("{:>4}".format(str(i * j)), end="")

或者

    Y = int(input(""))
    X = int(input(""))
    for i in range(1, Y + 1):
        for j in range(1, X + 1):
            print("{:>4}".format(str(i * j)), end="")
        print()
于 2020-03-20T13:21:33.113 回答
0

print("")行移到底部,但保持相同的缩进:

y = int(input("y: "))
x = int(input("x: "))

for i in range(1, y+1):
    for j in range(1, x+1):
        print("{:>4}".format(i*j), end="")
    print()
于 2020-03-20T13:23:24.427 回答
0
for i in range(1,Y+1):
    for j in range(1,X+1):
        print("{:>4}".format(str(i*j)),end="")
    print("")
于 2020-03-20T13:24:05.770 回答