Python如何在一个循环中多次使用扫描仪?

2024-09-28 21:54:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力学习Python,并试图用一个简单的程序测试我刚刚学到的东西。程序询问用户想要输入多少数字,然后程序将使用一个循环来存储数字的数量并找到平均值。在

numberOfTimes = int(input("How many numbers do you want to use today? "))

count = 0

while(count < numberOfTimes):
    numberInput = int(input("Enter the number: "))
    count += 1

print((numberInput + numberInput + numberInput) / (count))

如何让numberInput存储每个变量?感谢您的帮助!在


Tags: 用户程序input数量count数字domany
3条回答

您可以在循环的上方声明一个类似totalNumber的变量,然后在循环中只需执行以下操作:

totalNumber += int(input("Enter your number: ")

恭喜你学会了python,它是一门很棒的语言。在

因此,如果你想拥有最大的灵活性,你应该把你的数字保存在一个列表中。在

python中的list的行为类似于一个经典的数组列表(例如在java中),因为它可以通过索引访问,并且可以扩展,并且没有固定的长度。在

因此,使用列表可以将每个数字添加到列表中:

numbers = list()

while(count < numberOfTimes):
    numberInput = int(input("Enter the number: "))
    numbers.append(numberInput)
    count += 1

由于您现在使用的是可变长度的列表,您还可以使用length(len(mylist))列表来确定while循环的结束:

^{pr2}$

结合所有这些步骤:

numberOfTimes = int(input("How many numbers do you want to use today? "))
numbers = list()

while(len(numbers) < numberOfTimes):
    numberInput = int(input("Enter the number: "))
    numbers.append(numberInput)

print( sum(numbers) / len(numbers) )

我添加了一些功能以使它更简单,例如sum(numbers)是一个内置函数,而不是将列表中的所有整数求和,len(numbers)再次替换计数器。在

执行这样的程序会很快告诉你,你只得到整数作为结果,而不是正确的平均数,这里你需要知道,在python中,将两个整数除以得到的结果往往不是你想要的结果。有一个诀窍,将其中一个数字(或两个数字)转换为浮点数,然后除以:

average = float(sum(numbers)) / len(numbers)
print(average)

如果您想尝试更多的步骤,例如,根据您输入的内容,跳出while循环,从而摆脱第一个询问数字数量的问题:

print("Write some numbers, I will calculate the average. Finish with 'enter'")
numbers = list()

while(True):
    myinput = raw_input("Enter a number: ")
    if myinput == '':
        break
    numberInput = int(myinput)
    numbers.append(numberInput)

average = float(sum(numbers)) / len(numbers)
print(average)

这次的变化是:使用raw_input而不是推荐的input,如果while循环没有到达break,那么它将永远运行,如果您没有给出任何输入,只按enter键,那么计数的初始问题显然丢失了。在

你不需要存储所有的数字:

count = 0
total = 0

while(count < numberOfTimes):
    total += int(input("Enter the number: "))
    count += 1

print(total / count)

相关问题 更多 >