建立一个由星号组成的三角形的程序

Program that builds a triangle made of asterisks

这是本书中显示的一模一样的副本,从 Python 开始。

base_size = 8

def main():

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

main()

但它没有给出正确答案:

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

这是程序的输出,在新行中打印每个 *。那么究竟有什么问题呢?

*

*
*

*
*
*

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()

因为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()