构建由星号组成的三角形的程序

时间:2015-01-08 02:23:38

标签: python

这是“使用Python开始”一书中的精确副本。

base_size = 8

def main():

    for r in range(base_size):
        for c in range(r + 1):
            print('*')
        print()

main()

但它没有给出正确答案:

*
**
***
****
*****
******
*******
********

这是程序的输出,以新行打印每个*。那么什么是错的?

*

*
*

*
*
*

2 个答案:

答案 0 :(得分:0)



base_size = 8

def main():

    for r in range(base_size):
        for c in range(r + 1):
            print('*',sep=" ",end="")
        print()

main()




也许你可以尝试在你的代码中插入(sep ="",end ="")。 希望我能帮助你

或者你可以尝试更轻松的一个 例如:



base_size = 8

def main():

    for r in range(1,(base_size)):
        print("*"*r)

main()




答案 1 :(得分:0)

因为print会将您告诉它的内容输出到加上换行符。如果你想输出而不是换行符,你需要稍微改变一下。

Python 3允许您指定print函数的终结符:

base_size = 8
def main():
    for r in range(base_size):
        for c in range(r + 1):
            print('*', end="")
        print()
main()

但是,如果你正在使用Python 2,你可以使用:

import sys
sys.stdout.write('*')

表示等效行为,如:

import sys
base_size = 8
def main():
    for r in range(base_size):
        for c in range(r + 1):
            sys.stdout.write('*')
        sys.stdout.write('\n')
main()