我已经成功创建了一个代码,使用while循环打印水平翻转的三角形。现在虽然可以使用,但我想知道是否可以简化此操作,即不使用“ store”变量。但是我想使用while循环保持它

当前代码是:

myLen = int(input("Enter the number of rows: "))
while myLen < 1 or myLen> 40:
      print("The number of rows must be greater than 1 and less than 40")
      myLen = int(input("Enter the number of rows: "))

myNewLen=1
store=myLen
while myNewLen <=store:
      print((" "*(myLen-1))+"*" * myNewLen)
      myNewLen=myNewLen+1
      myLen=myLen-1


它将打印出以下结果:

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


我想知道如何简化此代码以提高效率。

最佳答案

本质上,您仍然需要跟踪您所在的行,并且只需多做一点数学就可以知道应该有多少个*和“”。希望这可以帮助。

myLen = 5
i = 1
while myLen >= i:
    print( ("*" * i).rjust(myLen) )
    i += 1

关于python - 简化反向三角代码(循环时),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40289964/

10-12 20:26