问题是:
编写一个程序,首先提示用户输入数字 要输入的数字然后使用while循环重复提示 这些数字的用户并将数字添加到运行总计中。 输入正确的数字后,程序即可 应打印平均值。
您可以假设输入的数字是一个更大的整数 比零,每个后续数字都是浮点数。
到目前为止我得到的代码..
number_of_entries = int(input('Please enter the number of numbers: '))
sum=0
i=0
while i<=float(number_of_entries):
num = input('Enter the number')
num=float(num)
sum+= num
i += 1
print(sum/i)
引发的错误是
读取行时的EOF
它没有告诉我任何其他事情。我想我的while循环的条件是错误的......也许整个逻辑很奇怪..
问题给出了第一行 我初始化了将在while循环中使用的变量, 然后我总结了所有输入的数字,并计算它循环的次数,最后打印平均值..
答案 0 :(得分:0)
我猜这个程序是通过重定向stdin来测试的。例如,如果你有文件:
3
1
2
3
运行cat filename | python your-script.py
预期结果将是程序计算1,2,3和打印2.0的平均值。但是你的循环条件是错误的,所以你最终运行循环一次太多,最后一次input
函数满足文件结束条件(关闭stdin)。正确的(呃)将是:
number_of_entries = int(input('Please enter the number of numbers: '))
sum=0
i=0
while i < number_of_entries:
num = input('Enter the number')
num=float(num)
sum+= num
i += 1
print(sum/i)
该计划仍然不受邪恶输入的影响。
答案 1 :(得分:0)
当使用Sublime-Text作为编辑器提示用户输入时,我遇到了类似的问题。显然,默认的sublime控制台无法处理用户输入。
http://www.bestpythonide.com/python-input-eoferror-in-sublime-text-2.html
建议安装软件包sublime-repl
我还没试过这个。如果有效,请更新。
编辑:刚刚尝试使用SublimeREPL插件,它修复了“input()导致EOFError”。只需要修正逻辑错误,即改变&lt; = to&lt;如前所述。
答案 2 :(得分:0)
我尝试阻止使用Python中预先存在的变量名称 - 例如'sum'。
这是你要找的吗?以下示例适用于我。
number_of_entries = input("Enter the no. of entries: ")
total = 0.0
num = 0
i = 0
while i < int(number_of_entries):
num = input("Enter the number: ")
num = float(num)
total += num
i += 1
print (total/i)
input("Press any key to close.")
答案 3 :(得分:0)
choice = int (raw_input ("How many number of times , u gonna input the numbers"))
def num():
global f;
f = int (raw_input("Enter the number: "))
i = 0
sum = 0
while i < choice:
num()
i = i + 1
sum = sum + f
print (sum%i)
#Hope this helps u