Я хочу, чтобы все три фигуры были на одной линии ... пожалуйста, помогите ...! - PullRequest
2 голосов
/ 02 апреля 2010
#Top half of triangle    
for rows in range (5):
     for row in range (12):
          print("-", end='')
     print()


for row in range (5):
     stars=0
     while stars<=row:
          print("*", end='')
          stars=stars+1
     print()


for row in range(5):
     star=4
     while star>=row:
          print("*", end='')
          star=star-1
     print()

Ответы [ 2 ]

3 голосов
/ 02 апреля 2010
shape1 = [12*'-' for i in range(5)]                  # segments of rectangle
shape2 = [i*'*' + (5-i)*' ' for i in range(1,5+1)]   # segments of 1st triangle
shape3 = [(5-i)*' ' + i*'*' for i in range(1,5+1)]   # segments of 2nd triangle 

for line in zip(shape1, shape2, shape3):
    print("   ".join(line))

РЕДАКТИРОВАТЬ: подробная версия, как требуется (но у меня нет Python 3 здесь; следующий код работает в Python 2.x, так что вам придется немного переделать инструкции печати):

for line in range(1, 5+1):        # for each line
     for c in range (12):         # print a bit of the first shape
          print '-',
     print "   ", 

     for c in range (line)    :   # a bit of the second
          print '*',
     for c in range (5-line):
          print ' ',
     print "   ",

     for c in range (5+1-line):   # and a bit of the third
          print '*',
     #for c in range (line):
     #     print ' ',
     print
0 голосов
/ 02 апреля 2010

Прежде всего, ваш первый оператор печати синтаксически неверен: print("-", end='') выдаст синтаксическую ошибку, спрашивающую, что такое end = ''.

Тем не менее, если ваша проблема с переводом строки, то вы можетевсегда исправляйте это запятой (',') в конце оператора print, чтобы пропустить символ новой строки, например:

for i in range(5):
    print "Hello, World!",
...