2016-10-27 11 views
1

whileループを使用して、水平方向に反転した三角形を印刷するコードを作成しました。今は動作しますが、私はこれを単純化できるかどうか、つまり "ストア"変数を使用しないかと思いました。リバーストライアングルコードの簡略化(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 

::私は、私はこのコードを簡素化することができるか疑問に思った

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

をしかし、私は、whileループに

現在のコードを使用して、それを維持したいです効率。

+0

'myLen'がバグフリーの最適化問題のためにも – MooingRawr

+2

未定義である多分ここに掲示する検討します。codereview.stackexchange.com – MooingRawr

+0

申し訳ありませんが、私は私が – Xrin

答えて

2

本質的に、あなたはまだあなたがいている行を追跡して、いくつの数があるべきかを知るためにもう少し数学を行う必要があります。お役に立てれば。

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

ああ、これは意味があり、シンプルで明確なものです。ありがとう! – Xrin

+2

個人的な好みがあるかもしれませんが、['rjust'](https://docs.python.org/2/library/string.html#string.rjust)を使うのはもっとうまくいくと思います。 'print((*" * i).rjust(myLen)) ' – asongtoruin