2017-11-10 12 views
-2

私はPythonでwhileループを作ろうとしていますが、ループは無限にループし続けます。ここでPythonでIf/elif文を使った後、whileループを終了させる方法は?

は、私がこれまで持っているものです。

def pvalue(num): 
    ans = '' 
    while num > 0: 
     if 1 <= num <= 9: 
      ans += 'B' 
      num -= 1 
     if num >= 10: 
      ans += 'A' 
      num -= 10 
    return ans 

私は次のようにnumはANSとして返すことにしたい。

numが5であれば、私はANSはBBBBB

になりたいNUM場合10、ansはA

numが22の場合、私はansをAABBにします。

+2

break文 –

+0

どこに置くのですか? – newarsenic

+3

また、あなたのロジックには、 '<= 9'にする必要があります。そうでなければ9が入力であるとき無限ループ。 – Miraj50

答えて

2

break statementについて知りたいことがあります。あなたのコードについては

def pvalue(num): 
    ans = '' 
    while num > 0: 
     if num >= 10: 
      ans += 'A' 
      num -= 10 
     else: 
      ans += 'B' 
      num -= 1 
    return ans 

num == 9が正しく

+0

2番目のif文の代わりにelseを使う以外、これが私のコードとどのように違うのか分かりません。 – newarsenic

+0

@newarsenicあなたのコードは今動作すると思います。 – Miraj50

+0

@ Miraj50ループはまだ無限です。 – newarsenic

0

を扱っている場合は、ループから抜け出すためにbreak文を使用して、はるかに優れています。

def pvalue(num): 
    ans = '' 
    while num > 0: 
     if 1 <= num <= 9: 
      ans += 'B' 
      num -= 1 
     if num >= 10: 
      ans += 'A' 
      num -= 10 
     if num<=0: 
      break 
    return ans 
関連する問題