无法将输出旋转180度

时间:2019-03-07 14:27:23

标签: python

我需要制作一个由哈希符号组成的嵌套三角形。但是我不能让它像我需要的那样旋转180度,我也没有得到我需要的12行。

这是我的代码。

auth_user_user_permissions

输入值为6。

n = int(input("Enter a number: "))
for i in range (0, n):
    for j in range(0, i + 1):
        print("#", end='')
    print("")
for i in range (n, 0, -1):
    for j in range(0, i -1):
        print("#", end='')
    print("")

但是我一直得到这个:

Enter a number:6
     #
    ##
   ###
  ####
 #####
######
######
 #####
  ####
   ###
    ##
     #

我该如何解决?

4 个答案:

答案 0 :(得分:1)

您可以使用str.rjust方法将字符串右对齐:

n = int(input("Enter a number: "))
for i in range(2 * n):
    print(('#' * (n - int(abs(n - i - 0.5)))).rjust(n))

演示:https://ideone.com/27AM7a

答案 1 :(得分:0)

您可以使用此方法(手动计算空格和#标签的数量):

n = int(input("Enter a number: "))
for i in range (1, n + 1):
    print(" "*(n - i) + "#"*i)
for i in range (n, 0, -1):
    print(" "*(n - i) + "#"*i)

或使用rjust

n = int(input("Enter a number: "))
for i in range (1, n + 1):
    print(("#"*i).rjust(n))
for i in range (n, 0, -1):
    print(("#"*i).rjust(n))

答案 2 :(得分:0)

有点晚

def absp1(x):
    if (x < 0):
        return -x - 1
    return x

n = int(input("Enter a number: "))
for i in range(-n, n):
    for j in range(absp1(i)):
        print(' ', end='')
    for k in range(n-absp1(i)):
        print('#',end='')
    print()

答案 3 :(得分:0)

这也很好

num = 6
sing = "#"
for i in range(1, num * 2):
    if i > num:
        spaces = " " * (i - num)
        signs = sign * (2 * num - i)
        line = "{0}{1}".format(spaces, signs)
    elif i == num:
        spaces = " " * (num - i)
        signs = sign * i
        line = "{0}{1}\n{0}{1}".format(spaces, signs)
    else:
        spaces = " " * (num - i)
        signs = sign * i
        line = "{0}{1}".format(spaces, signs)

    print(line)