这是“使用Python开始”一书中的精确副本。
base_size = 8
def main():
for r in range(base_size):
for c in range(r + 1):
print('*')
print()
main()
但它没有给出正确答案:
*
**
***
****
*****
******
*******
********
这是程序的输出,以新行打印每个*。那么什么是错的?
*
*
*
*
*
*
答案 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()