0

以下のコードを実行すると、次のエラーが表示されます: eval() arg 1 must be a string or code object

理由を知っている人はいますか?これは本から学んでいるコードなので、正しいと思いました。

 # Prompt the user to enter three numbers
number1 = eval(input("Enter the first number: "))
number2 = eval(input("Enter the second number: "))
number3 = eval(input("Enter the third number: "))

 # Compute average
average = (number1 + number2 + number3) / 3

print("The average of", number1, number2, number3, "is", average)
4

1 に答える 1

5

入力で既に実行されてinput()いる Python 2 で使用しています。呼び出しを削除するか、に置き換えてください。eval()eval()input()raw_input()

または、Python 3 を使用してこのコードを実行します。明らかにそのバージョンを対象としています。本でこの構文を使用している場合は、適切なバージョンを使用してコード サンプルを実行する必要があります。

何よりもinput()、Python 2 またはeval()Python 3 では使用しないでください。整数が必要な場合は、int()代わりに使用してください。

Python 2 の例:

# Prompt the user to enter three numbers
number1 = int(raw_input("Enter the first number: "))
number2 = int(raw_input("Enter the second number: "))
number3 = int(raw_input("Enter the third number: "))

# Compute average
average = (number1 + number2 + number3) / 3

print "The average of", number1, number2, number3, "is", average

Python 3 バージョン:

# Prompt the user to enter three numbers
number1 = int(input("Enter the first number: "))
number2 = int(input("Enter the second number: "))
number3 = int(input("Enter the third number: "))

# Compute average
average = (number1 + number2 + number3) / 3

print("The average of", number1, number2, number3, "is", average)
于 2013-06-20T09:27:43.680 に答える