1

正しい結果を生成する次のコードの関数内を除いて、try を使用します。

def try_function():
    try:
        hrs = float(raw_input("Enter Hours: "))
        rate = float(raw_input("Enter Rate: "))
        return hrs * rate
    except:
        print "Values are non numeric"
        quit()

pay = try_function()
print pay

次の結果が得られました。

Enter Hours: 20
Enter Rate: 10
200.0

コードを次のように変更すると、結果が得られません。

def try_function():
    try:
        hrs = float(raw_input("Enter Hours: "))
        rate = float(raw_input("Enter Rate: "))
    except:
        print "Values are non numeric"
        quit()
    return hrs * rate

pay = try_function()
print pay

ここで私が得るもの:

Enter Hours: 20
Enter Rate: 10

値が 200 にならない理由がわかりません。最初の方法と 2 番目の方法のどちらが優れていますか?

ありがとうございました。

4

1 に答える 1

2

おそらく、インデントにタブとスペースが混在していることに問題があるでしょう。インデントが一貫しているかどうかを確認します。

たとえば、一部の行がタブでインデントされ、一部の行がスペースでインデントされている場合、視覚的にはインデントが正しく見えるかもしれませんが、Python はインデントをエディターでの表示とは異なる方法で解釈する可能性があります。

-tタブとスペースのインデントが混在している場合は、警告を表示するオプションを使用して Python を実行してみてください。例えば:

python -t myprogram.py
于 2014-05-05T01:16:17.437 に答える