我目前正在解决这个问题,要求我使用看起来像这样的循环函数来生成箭头图案:
"How many columns? 3"
*
*
*
*
*
我知道我可以使用for循环(也可能更有效率)来执行此操作,但这不是我的目标。我只想使用while循环来实现。
我有一些想法:我设置了一个控制变量和一个累加器来控制循环2.然后,我编写2个单独的循环以生成模式的上部和下部。我正在考虑使用如下方法在星号之前插入空格:(累加器-(累加器-整数))*空格。
#Ask the user how many column and direction of column
#they want to generate
Keep_going = True
Go = 0
while keep_going:
Column_num = int(input("How many columns? "))
if Column_num <= 0:
print("Invalid entry, try again!")
else:
print()
Go = 1
#Upper part
while Keep_going == True and Go == 1:
print("*")
print(""*(Column_num - (Column_num - 1) + "*")
...但是我很快意识到这是行不通的,因为我不知道用户输入,因此无法手动计算要在星号前插入多少空格。现在互联网上的所有内容都告诉我使用循环和范围函数,我可以做到这一点,但是我认为这对我学习python并没有帮助,因为我还不能很好地利用循环并以其他方法蛮力地使用它只是不会提高我的技能。
我认为只有使用while循环才能实现。
#Take your input in MyNumber
MyNumber = 5
i = 1
MyText = '\t*'
while i <=MyNumber:
print(MyText.expandtabs(i-1))
i = i+1
i = i-1
while i >=1:
print(MyText.expandtabs(i-1))
i = i-1