我只需要将三个数字相加并计算平均值
File.write
错误:
import sys
sums=0.0
k=3
for w in range(k):
sums = sums + input("Pleas input number " + str(w+1) + " ")
print("the media is " + str(sums/k) + " and the Sum is " + str(sums))
答案 0 :(得分:1)
list_with_ids = ["%d: %s" % (i.id, i.name) for i in self.myrecord_ids]
会返回一个字符串,您需要从中创建input
或int
。您还必须处理用户无法遵循简单说明的事实。最后,你需要摆脱那些分号 - 它们是危险的,并创造一个恶劣的工作环境(至少当你碰到其他python程序员......!)
float
答案 1 :(得分:1)
input()
函数返回一个字符串(str),Python不会自动将其转换为float / integer。您需要做的就是转换它。
import sys;
sums=0.0;
k=3;
for w in range(k):
sums = sums + float(input("Pleas input number " + str(w+1) + " "));
print("the media is " + str(sums/k) + " and the Sum is " + str(sums));
如果你想让它变得更好,可以使用try / except来处理无效输入。此外,不需要import sys
,您应该避免使用分号。
sums=0.0
k=3
for w in range(k):
try:
sums = sums + float(input("Pleas input number " + str(w+1) + " "))
except ValueError:
print("Invalid Input")
print("the media is " + str(sums/k) + " and the Sum is " + str(sums))
答案 2 :(得分:0)
为什么不对简单版本进行优化呢?
def sum_list(l):
sum = 0
for x in l:
sum += x
return sum
l = list(map(int, input("Enter numbers separated by spaces: ").split()))
sum_list(l)
你的问题是你没有从' str' to' int'。请记住,Python会自动初始化数据类型。因此,需要明确的铸造。如果我错了,请纠正我,但这就是我的看法。
希望我帮助过:)