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