eval必须是字符串或代码对象吗?

2024-06-23 19:49:53 发布

您现在位置:Python中文网/ 问答频道 /正文

当我运行下面的代码时,得到以下错误:eval()arg 1必须是字符串或代码对象

有人知道为什么吗?这是我从一本书中学到的代码,所以我认为它是正确的。

 # 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)

Tags: the对象字符串代码numberinput错误eval
1条回答
网友
1楼 · 发布于 2024-06-23 19:49:53

您正在Python 2上使用input(),它已经在输入上运行eval()。只需删除eval()调用,或者用raw_input()替换input()

或者,使用Python 3来运行这段代码,它显然是针对那个版本的。如果您的书使用这种语法,那么您需要使用正确的版本来运行代码示例。

最重要的是,不要在Python 2上使用input(),也不要在Python 3上使用eval()。如果需要整数,请改用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)

相关问题 更多 >

    热门问题