python错误,不知道为什么

python错误,不知道为什么,python,if-statement,mean,Python,If Statement,Mean,实现一个向用户请求四位数整数或浮点的程序。您的程序应该计算前三个数字的平均值,并将平均值与第四个数字进行比较。如果它们相等,程序应在屏幕上打印“相等” n1= eval(input '[Enter first number: ]') n2= eval(input '[Enter second number: ]') n3= eval(input '[Enter third number: ]') n4= eval(input '[Enter fourth number: ]') n= ("n1

实现一个向用户请求四位数整数或浮点的程序。您的程序应该计算前三个数字的平均值,并将平均值与第四个数字进行比较。如果它们相等,程序应在屏幕上打印“相等”

n1= eval(input '[Enter first number: ]')
n2= eval(input '[Enter second number: ]')
n3= eval(input '[Enter third number: ]')
n4= eval(input '[Enter fourth number: ]')
n= ("n1 + n2 + n3 / 3")
     if n== n4:
     print ('equal: ')
你想要这个吗

n1 = int(input('Enter first number: '))
n2 = int(input('Enter second number: '))
n3 = int(input('Enter third number: ')
n4 = int(input('Enter fourth number: ')

n = (n1 + n2 + n3) / 3


if n == n4:
     print('equal: ')

尝试此解决方案Python3:

n1 = int(input('[Enter first number: ]'))
n2 = int(input('[Enter second number: ]'))
n3 = int(input('[Enter third number: ]'))
n4 = int(input('[Enter fourth number: ]'))

n = (n1 + n2 + n3) / 3

if n == n4:
    print('Equal')

如果需要浮点值,可以使用float函数强制转换输入值。我相信这样做比使用int更好。在您的示例中,Eval是多余的。解决方案:

from decimal import Decimal, InvalidOperation

def request_number(msg):
    number = None
    while number is None:
        user_input = input(msg)
        try:
            number = Decimal(user_input)
        except InvalidOperation:
            pass
    return number

n1 = request_number('Enter first number: ')
n2 = request_number('Enter second number: ')
n3 = request_number('Enter third number: ')
n4 = request_number('Enter fourth number: ')

if (n1 + n2 + n3) / 3 == n4:
    print('Equal')
无需使用eval,将输入和存储到变量中

n1 = int(input('Enter first number: '))
n2 = int(input('Enter second number: '))
n3 = int(input('Enter third number: '))
n4 = int(input('Enter fourth number: '))
完成后,如果它们的平均值等于n4,则打印。很简单

不要使用,这使它成为一个字符串作为一个整体

print 'equal: ' if (n4 == (n1 + n2 + n3) / 3) else 0
如果你想按你的方式做,修复缩进。按如下方式操作:

n= (n1 + n2 + n3 / 3) 
# paranthesis isn't needed here, but it's ok to use
if n== n4:
    print ('equal: ')

你会遇到什么错误?为什么要使用eval?你的代码无法工作,因为你写的是n1+n2+n3/3而不是n1+n2+n3/3