我不确定为什么以下代码无效。我在python 3.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)
答案 0 :(得分:1)
您需要将输入值单独转换为整数
averageWin = (int(year1) + int(year2) + int(year3) + int(year4) + int(year5)) / 5
你之前做的是连接字符串:
int('100' + '100') => int('100100') => 100100
答案 1 :(得分:0)
您正在连接字符串,然后将其转换为整数。在添加之前,您必须将每个单独的字符串转换为整数。
>>> 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
答案 2 :(得分:0)
input()
返回一个字符串。您正在添加字符串,然后将结果转换为int.
假设我们将输入1, 2, 3, 4, 5
作为变量。您的代码'1'+ '2' + '3' + '4' + '5'
代替1 + 2 + 3 + 4 + 5
。您的结果是'12345'
而不是15
。因此,您将12345除以5而不是15分。要解决此问题,请在int()
次调用周围添加input()
,将这些答案转换为数字。
答案 3 :(得分:0)
试试这个。
year = 0
for i in range(5):
ann = "{:,.0f}".format(i+1)
year=year+input("Enter wins for year "+ann+": ")
print year/5.
缩短并且有效。