#python
#python
Вопрос:
Мне нужно создать вложенный треугольник из хэш-символов. Но я не могу заставить его поворачиваться на 180 градусов, как мне это нужно, я также не получаю 12 строк, как мне нужно.
Это мой код.
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("")
Входное значение равно 6.
Enter a number:6
#
##
###
####
#####
######
######
#####
####
###
##
#
Но я продолжаю получать это:
Enter a number: 6
#
##
###
####
#####
######
#####
####
###
##
#
Как мне это исправить?
Комментарии:
1. Вы не печатаете ни одного из заполняющих пробелов, поэтому ваш результат вряд ли удивителен.
2. Для вывода с выравниванием по правому краю вам нужно напечатать
n-i
пробелы, за которыми следуют символыi
хэштега#
в каждой строке.
Ответ №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))
Комментарии:
1. На самом деле, я думаю, что вы создаете msitake, i должно быть от 1 до n 1
Ответ №2:
Немного поздно
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:
Вы можете использовать это (вручную вычисляя количество пробелов и хэштегов):
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))
Ответ №4:
Также это работает нормально
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)