所以我一直在试图创建一个程序,提示用户输入的行数,然后程序打印出输入行数的菱形。Python 3.4:创建一个星号钻石
这是什么程序应该做的事:(image)
这是我的代码看起来像
def main():
ROWS = get_input()
draw_pattern(ROWS)
def get_input():
return int(input("Enter the number of rows (or -1 or -99 to quit): "))
def draw_pattern(ROWS):
if ROWS == -1 or ROWS == -99:
quit
else:
for x in range(0,(int)((ROWS/2)+1),1):
print ((int)((ROWS/2)-(2*x+1)/2)*" " + (2*x+1) * '*')
for t in range((int)(x),0,-1):
print((int)((ROWS/2)-(2*t-1)/2)*" " + (2*t-1) * '*')
main()
这是它结束了做:
Enter the number of rows (or -1 or -99 to quit): 7
*
***
*
*****
***
*
*******
*****
***
*
那么什么我做错了吗?我认为这是我的for循环,使行不正确排列。任何人都可以给我一点帮助吗?谢谢。
你有一个压痕问题,你的第二个'for'循环是不正确缩进。什么是“退出”? – AChampion
好的,我会检查缩进。退出是,如果在提示输入行数时输入-1或-99,则会停止程序。 代码运行,但不是我想让它运行的菱形图案,我不知道为什么。我在Windows 7上。 – Altairis
它应该是'quit()' –