如何使用带输入函数的for循环

时间:2016-11-03 14:27:33

标签: python python-3.x for-loop user-input

我只需要将三个数字相加并计算平均值

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

3 个答案:

答案 0 :(得分:1)

list_with_ids = ["%d: %s" % (i.id, i.name) for i in self.myrecord_ids]会返回一个字符串,您需要从中创建inputint。您还必须处理用户无法遵循简单说明的事实。最后,你需要摆脱那些分号 - 它们是危险的,并创造一个恶劣的工作环境(至少当你碰到其他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会自动初始化数据类型。因此,需要明确的铸造。如果我错了,请纠正我,但这就是我的看法。

希望我帮助过:)