noobpython While循环
我正在尝试制作一个程序,要求用户输入一个号码,然后询问他们是否想输入另一个号码。根据他们输入的数字,程序将求和并给出平均值 这是我到目前为止所拥有的,但我知道它不起作用。非常感谢您的帮助noobpython While循环,python,Python,我正在尝试制作一个程序,要求用户输入一个号码,然后询问他们是否想输入另一个号码。根据他们输入的数字,程序将求和并给出平均值 这是我到目前为止所拥有的,但我知道它不起作用。非常感谢您的帮助 a = int(input("Enter a number: ")) more = input("Please enter Y or N if you want to add more numbers: ") def funct(more): while more == "Y": b
a = int(input("Enter a number: "))
more = input("Please enter Y or N if you want to add more numbers: ")
def funct(more):
while more == "Y":
b = int(input("Enter another number: "))
abSum = a + b
abMean = a + b / 2
if more == "Y":
return b
else:
break
print(abSum)
print(abMean)
你不需要在某处调用这个函数吗 类似于(未经测试):
简化后,您的程序可能如下所示:
abSum = int(raw_input("Enter a number: "))
while raw_input("Please enter Y if you want to add more numbers or anything else to finish: ") == 'Y':
b = int(raw_input("Enter another number: "))
abSum = abSum + b
abMean = abSum / 2
print(abSum)
print(abMean)
基本上,您循环直到用户输入并清空第二个提示中的行或任何其他内容,然后修复您的总和/平均值
对于您试图完成的任务,您不一定需要单独的功能。如果你想要一个函数,比如说一个家庭作业,那么你可以重写这个片段,将b
的值传递给一个单独的函数,该函数将更新abSum
和abMean
,并在while
循环中调用它
嗯,请原谅,我的例子实际上并没有计算平均值,你需要将输入值的数量计算到第三个变量中,然后除以这个数量。另一位回答者提出了一个解决方案,其中包含一个输入值列表,可以在您的案例中使用。我将其清理干净,并将其转换为一个独立的脚本:
#!/usr/bin/env python
def ask_for_some_numbers():
numbers = []
more = 'y'
while more.lower() == 'y':
number = int(raw_input("Enter a number: "))
numbers.append(number)
more = raw_input("Please enter Y if you want to add more numbers: ")
print (sum(numbers))
print (sum(numbers)/len(numbers))
if __name__ == '__main__':
ask_for_some_numbers()
以下是不同之处:
- 我使用一个列表来存储数字(
)-这样您就可以轻松地拥有任意数量的数字numbers=[]
- 我调用该函数开始提示输入数字
- 我使用
而不是raw\u input
。建议对用户的输入使用原始输入,因为input
将评估输入的内容(如果您有恶意用户,这可能会导致问题)input
- 我使用内置的
方法对列表中的项目进行汇总sum
a = int(input("Enter a number: "))
more = input("Please enter Y or N if you want to add more numbers: ")
summ=a #intialize sum to a
count=1 # no. of integers entered, to calculate mean
while more.lower()=="y":
b = int(input("Enter another number: "))
count+=1 #increase count by 1
summ+= b #add b to sum
abMean = summ/float(count) #used float(count) to get actual value
print("sum=",summ)
print("mean=",abMean)
more = input("Please enter Y or N if you want to add more numbers: ") #ask for user input
print("sum=",summ)
print("mean=",abMean)
输出:
Enter a number: 5
Please enter Y or N if you want to add more numbers: y
Enter another number: 5
sum= 10
mean= 5.0
Please enter Y or N if you want to add more numbers: y
Enter another number: 2
sum= 12
mean= 4.0
Please enter Y or N if you want to add more numbers: y
Enter another number: 15
sum= 27
mean= 6.75
Please enter Y or N if you want to add more numbers: y
Enter another number: 10
sum= 37
mean= 7.4
Please enter Y or N if you want to add more numbers: n
sum= 37
mean= 7.4
下面是一段简单的循环代码,它将询问数字,直到得到一个空白条目,然后打印输入的总和和平均值:
total = 0
count = 0
num = input("Enter a number: ")
while (num):
total += int(num)
count += 1
num = input("Enter another number (or a blank line to quit): ")
print("Total =", total)
print("Average =", total/count)
您的代码中有一个函数定义,但您不能在任何地方调用该函数。你需要一个函数来处理你想做的事情,还是你不确定?没错,我完全忘了。在调用它时处理它,您对
abMean
的计算是不正确的。考虑输入2, 2, 2、10。您的代码将给出6
,而4
是正确答案。这并不提供问题的答案。若要评论或要求作者澄清,请在他们的帖子下方留下评论。无论如何……通过调用函数,他解决了问题……见上面的评论……这确实很有帮助,但我正在尝试这样做,这样它会不断询问您是否要添加更多数字,然后对您输入的数字进行求和。这可能是1或20个数字请参见编辑,并建议@girasquid的实际平均值计算解决方案。这非常有用,正是我想要的。感谢大家猜测,从int(input())
和print()
的使用来看,提问者正在使用Python3。我想这还不确定。
total = 0
count = 0
num = input("Enter a number: ")
while (num):
total += int(num)
count += 1
num = input("Enter another number (or a blank line to quit): ")
print("Total =", total)
print("Average =", total/count)