python错误,不知道为什么

时间:2015-09-15 14:03:32

标签: python if-statement mean

实现一个程序,该程序从用户请求四个数字(整数或浮点数)。你的程序应该计算前三个数字的平均值,并将平均值与第四个数字进行比较。如果他们是平等的,你的程序应该打印“等于”#39;在屏幕上。

DateTime startDate = Sitecore.DateUtil.IsoDateToDateTime(Event["Start Date"]);

if(startDate.Month == DateTime.UtcNow.Month)
{
    // ...
}

4 个答案:

答案 0 :(得分:1)

你的例子中的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')

答案 1 :(得分:1)

无需使用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: ')

答案 2 :(得分:0)

你想要这个吗?

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: ')

答案 3 :(得分:0)

试试这个解决方案(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 更好。