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

时间:2017-10-03 20:31:12

标签: 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来存储每个变量?感谢先进的帮助!

3 个答案:

答案 0 :(得分:0)

您可以在循环上方声明一个类似totalNumber的变量,然后您在循环中所要做的就是:

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

答案 1 :(得分:0)

您不需要存储所有数字,只需按照您的要求加总:

count = 0
total = 0

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

print(total / count)

答案 2 :(得分:0)

恭喜学习python,它是一门很棒的语言。

因此,如果您想拥有最大的灵活性,则应将您的号码保存在列表中。

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

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

numbers = list()

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

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

numbers = list()

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

结合所有这些步骤:

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建议使用,如果没有到达break,则while循环将继续运行如果您没有提供任何输入但只是点击输入就会执行,并且计数的初始问题显然已丢失。