#python #logic
Вопрос:
Поэтому я должен напечатать * в форме А, что я и сделал.
pattern = ""
for row in range(7):
for col in range(5):
if ((col==0 or col==4) and row!=0) or ((row==0 or row==3) and (col>0 and col<4)):
pattern = pattern "*"
else:
pattern = pattern " "
pattern = pattern "n"
pattern = pattern " "
print(pattern, end="")
выход:
***
* *
* *
*****
* *
* *
* *
Но я хочу печатать больше по горизонтали.
Пример: L отображается как звездная программа 3 раза выглядит так, как показано ниже
* * *
* * *
* * * * * * * * *
Пожалуйста, помогите!
Ответ №1:
Я не сильно изменил ваш код, но подумал, что его включение в функцию может быть полезным. Как вы можете видеть в последней строке, теперь вам просто нужно назвать его с количеством букв, которые вы хотите напечатать. Кроме того, я добавил цикл for между вашими, чтобы поместить все необходимые символы в соответствующую строку. Наконец, я добавил элемент if/else, который проверяет, что это конец строки, и в противном случае не переходит в следующую строку.
def multiplePatterns(n):
pattern = ""
for row in range(7):
for i in range(n):
for col in range(5):
if ((col==0 or col==4) and row!=0) or ((row==0 or row==3) and (col>0 and col<4)):
pattern = pattern "*"
else:
pattern = pattern " "
if i == n-1:
pattern = pattern "n"
else:
pattern = " "
pattern = pattern " "
return pattern
print(multiplePatterns(2))
Ответ №2:
Самый простой способ-использовать библиотеку, подобную pyfiglet : https://pypi.org/project/pyfiglet/ .
Если вы хотите сделать это самостоятельно, консоль python пишет в строке, вы должны печатать свой текст (например,»AAA») строка за строкой. если ваша конечная цель именно в этом, то:
print(" *** *** ***")
print("* * * * * *")
print("* * * * * *")
print("***** ***** *****")
print("* * * * * *")
print("* * * * * *")
print("* * * * * *")
сделает свою работу.
Если ваша цель-написать какой-либо текст, то, вероятно, лучше создать какой-то «шрифт» для каждой буквы в списке.