Python 我希望所有三种形状都在同一条线上…请帮助。。。! #三角形的上半部分 对于范围(5)中的行: 对于范围(12)中的行: 打印(“-”,结束=“”) 打印() 对于范围(5)中的行: 星星=0 当星=行时: 打印(“*”,结束=“”) 星=星-1 打印()

Python 我希望所有三种形状都在同一条线上…请帮助。。。! #三角形的上半部分 对于范围(5)中的行: 对于范围(12)中的行: 打印(“-”,结束=“”) 打印() 对于范围(5)中的行: 星星=0 当星=行时: 打印(“*”,结束=“”) 星=星-1 打印(),python,python-3.x,nested-loops,Python,Python 3.x,Nested Loops,编辑:详细版本,按要求(但我这里没有python 3;以下代码在python 2.x中工作,因此您必须稍微修改打印说明): 首先,您的第一个print语句在语法上是错误的:print(“-”,end='')将抛出一个语法错误,询问end=''是什么 但是,如果您的问题是换行符,则可以在print语句末尾使用逗号(“,”)来解决此问题,以跳过换行符,例如: for line in range(1, 5+1): # for each line for c in range (

编辑:详细版本,按要求(但我这里没有python 3;以下代码在python 2.x中工作,因此您必须稍微修改打印说明):


首先,您的第一个print语句在语法上是错误的:
print(“-”,end='')
将抛出一个语法错误,询问end=''是什么

但是,如果您的问题是换行符,则可以在print语句末尾使用逗号(“,”)来解决此问题,以跳过换行符,例如:

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

在Python3中,print是一个函数,其中“end”是一个关键字,表示要在末尾放什么(当然,默认值是
\n
)。end=''将允许字符在同一行上打印,而不是在单独的行上打印。它没有语法错误;我只是在一行上打印所有三个形状时遇到一些问题抱歉,我不知道您使用的是Python 3。我是在2.6上测试的,不要道歉。我本应该更详细地说明这项工作。谢谢:)有没有其他方法,我可以做同样的事情,同时仍然保持一个类似的语法,我有一个?只是想知道。。。
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))
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
for i in range(5):
    print "Hello, World!",