我正在尝试进行编码,这是进入类所要做的作业的一部分。
“编写一个始终要求用户输入数字的程序。当用户输入负数-1时,该程序应停止要求用户输入数字。然后,该程序必须计算输入数字的平均值排除-1。”
我可以执行的while循环...计算就是我遇到的问题。
negative = "-1"
passable = "0"
while not passable <= negative:
passable = input("Write a number: ")
我只是想让它正常工作,并在可能的情况下提供一个解释
答案 0 :(得分:0)
您正在为变量分配字符串,我认为这不是您的意图。
这将起作用:
next_input = 0
inputs = []
while True:
next_input = int(input('Please enter a number:'))
if next_input == -1:
break
else:
inputs.append(next_input)
return sum(inputs) / len(inputs)
首先,您需要创建一个容器来存储所有输入的值。即inputs
,list
。
接下来,您确实需要一个while
循环。这是构造它的另一种方法:一个循环将无限期运行,并在其中进行比较以将当前输入与-1比较,并在循环中以break
终止循环。否则,它将把该输入追加到已输入的list
上。
退出循环后,通过将输入输入中所有值的总和除以包含它们的list
的长度(即其中的元素数)来计算平均值。
答案 1 :(得分:0)
我会先使用do-while初始化列表,然后再问用户一个数字。然后,将每个数字添加到该列表中,除非数字== -1。如果是这样,则您对列表中的每个元素求和并输出平均值。
这里的伪代码可以帮助您
my_list = []
do
input_nb = input("Please enter a number: ")
if(input_nb != -1)
my_list.add(input_nb)
while (input_nb != -1)
average = sum(my_list) / len(my_list)
print('My average is ' + average)
答案 2 :(得分:0)
正如此处其他一些答案所指出的,您必须总结所有答案,然后除以您输入的数字。
但是,请记住$output = array_merge($output, $tekrar);
是一个字符串。这意味着我们的input()
循环在找到字符串while
时必须中断,并且您必须添加数字的'-1'
才能将数字相加。
float()