在过去的两天里,我在尝试使用用户输入的 while 循环制作星星金字塔时遇到了麻烦
最终结果的示例如下所示:
*
***
*****
*******
*********
但我什至不清楚这应该如何工作。正如我在过去两个晚上试图解决这个问题一样。
这是我到目前为止所拥有的:
userInput = int(input("Please enter the amount of rows: "))
count = 1
spacing = 0
actualStars = "*"
numberStars = 0
rows = 0
while(userInput <= rows):
rows += count
print()
while(spacing <= userInput):
spacing += count
print(" ")
while(numberStars <= 0):
print(actualStars)
原文由 Austin 发布,翻译遵循 CC BY-SA 4.0 许可协议
由于这是家庭作业,我不会给你一个代码答案,而是给你一个大纲,说明它应该如何工作。鉴于三个循环的约束,这似乎是预期的:
第一个外部循环应该遍历行。第一遍生成第一行,第二遍生成第二行,依此类推。
第二个循环嵌套在第一个循环内。它为当前行生成前导空格。
第三个循环也嵌套在第一个循环中,但 不是 第二个。它在第二个循环之后执行,并且应该在您的代码中跟在它后面。它为当前行生成星星。
这些循环中的每一个都非常简单,您应该不会遇到任何问题。唯一棘手的部分是让
print
打印一个字符串而不用换行符(它结束当前行)。如果您使用的是 Python 3,则可以使用print("abc", end="")
这将打印字符串abc
但不会结束该行。在第三个循环之后,您 需要 结束该行,您可以使用print()
来完成。