被简单计算的结果弄糊涂了

2024-09-28 01:28:19 发布

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

我不知道为什么下面的代码不起作用。我在python3.5.2中运行这个程序,问题似乎出在代码的计算部分。它不返回任何错误,但给出的值不应该是5个输入的平均值。你知道吗

#inputs
year1 = input("Enter wins for year 1: ")
year2 = input("Enter wins for year 2: ")
year3 = input("Enter wins for year 3: ")
year4 = input("Enter wins for year 4: ")
year5 = input("Enter wins for year 5: ")

#calculation
averageWin = int(year1 + year2 + year3 + year4 + year5) / 5
#output
print ("Average wins are", averageWin)

Tags: 代码程序forinput错误year平均值enter
3条回答

您需要将输入值分别转换为整数

averageWin = (int(year1) + int(year2) + int(year3) + int(year4) + int(year5)) / 5

您之前所做的是连接字符串:

int('100' + '100') => int('100100') => 100100

试试这个。你知道吗

    year = 0
    for i in range(5):
        ann = "{:,.0f}".format(i+1)
        year=year+input("Enter wins for year "+ann+": ")
    print year/5.

更短,更有效。你知道吗

连接字符串,然后将其转换为整数。在添加字符串之前,必须将每个字符串转换为整数。你知道吗

>>> a = '3'
>>> b = '5'
>>> c = '4'
>>> x = a+b+c
>>> int(x)
354
>>> x
'354'
>>> int(a)+int(b)+int(c)
12

另外,使用list,而不是命名单个变量。你知道吗

>>> result = [int(input('Enter wins for year %d: ' % i)) for i in range(1,6)]
Enter wins for year 1: 3
Enter wins for year 2: 4
Enter wins for year 3: 3
Enter wins for year 4: 5
Enter wins for year 5: 5
>>> sum(result)/len(result)
4.0

相关问题 更多 >

    热门问题