-1

というわけで、現在チップ計算機を作っています。私がこだわっているのは、コストの合計額を入力できる場所です。彼らが整数を入力した場合はループから抜け出したいのですが、整数以外のものを入力した場合はループに留まり、整数を入力するように伝えたいです。これが、この部分のために作成したコードです。(すべてのコードではありません)

Integer = range(1,10000)




while True:
    while True:
        Cost = raw_input("What was the cost? ")
        Cost = int(Cost)
        if Cost in Integer:
            break
        else:
            pass

間隔は正しくないように見えるかもしれませんが、実際のスクリプトには含まれています。すべての行に 4 つのスペースを追加せずにここにコードを貼り付ける方法がまだわかりません。とにかく、私が必要とするタスクを完了するために何をするか教えてください.

4

2 に答える 2

1

Cost = int(Cost)Cost が Integer の文字列でない場合、ValueError が発生します。

そのような、

    while True:
        Cost = raw_input("What was the cost? ")
        try:
             Cost = int(Cost)
             break
        except ValueError:
             print("Please enter an Integer for the cost")

ご覧のとおり、ブレークは ValueError が発生していない場合にのみ実行されます。

ただし、これを行うべきではありません。キャストする前に isdigit をテストする必要があります。

    while True:
        Cost = raw_input("What was the cost? ")
        if Cost.isdigit():
             Cost = int(Cost)
             break
        else:
             print("Please enter an Integer for the cost")

例外は制御フローをわかりにくくするため、可能であれば回避する必要があります。

于 2013-09-10T06:46:37.673 に答える