繁体   English   中英

要求用户输入数字并输出总和和输入数字数量的程序

[英]Program that asks user for numbers and outputs the sum and the amount of numbers entered

我正在编写一个程序,要求用户输入数字,直到输入“停止”。 该程序应该 output 输入了多少个数字以及数字的总和。

我有这段代码:

count = 1
numberstring = input("Please enter a number: ")
number = float(numberstring)
while number != "stop":
    numberString = input("Please enter another number: ")
    number1 = float(numberString)
    sum = number + number1
    count = count + 1
    print("The amount of numbers you entered was: " + str(count) + " and the sum of all these numbers together is: " + str(sum))

第一次一切正常,但我一输入另一个数字,加法就不正确了。 出了什么问题,我该如何解决?

你在这里有几个问题。 首先,您要做的是找到用户输入的所有数字的总和并将其打印出来。 但是您真正要做的只是打印出用户输入的第一个数字和最新数字的总和。

您的 sum 变量在此处设置:

sum=number+number1

number变量永远不会更新; 它始终是用户输入的第一个数字。 另一方面, number1只是用户输入的最后一个数字。 所以 sum 总是被设置为1st_number + last_number

您需要做的是将最新的数字添加到 sum 中,如下所示: sum += number1 (在 while 循环之前将 sum 设置为 0)。

您的代码的第二个问题是这一行:

number1=float(numberString)

如果numberString不是数字,此行将抛出错误。 你的 while 循环的条件检查numberString == 'stop' ,但这永远不会是真的。 如果用户输入“stop”,程序将抛出错误,因为字符串无法转换为浮点数。 因此,在将 numberString 转换为浮点数之前,您应该检查是否满足您的条件。

我也是整个编程的初学者。 在这里分享我的学习也是使用本网站的第一步。

我正在阅读的一本自学python的书有一个练习如下。

编写一个程序,重复读取数字,直到用户输入“完成”。 输入“完成”后,打印出数字的总数、计数和平均值。 如果用户输入数字以外的任何内容,请使用 try 和 except 检测他们的错误并打印错误消息并跳到下一个数字。

感谢@John1024,我在您的帮助下以这种方式尝试过。

inp = 'Enter a number: '
total = 0
count = 0
average = 0

while True:
        s = raw_input(inp)
        if s == 'done':
                break
        try:
                total += float(s)
                count += 1
                average = total / count
        except ValueError:
                print "Invalid Input. Try again: "
        continue
print 'You entered %s numbers whose total is %s and average is %s.' % (str(count), str(total), str(average))
prompt = "Please enter a number: "
sum = 0
count = 0
while True:
    s = raw_input(prompt)
    prompt = "Please enter another number: "
    if s.lower() == 'stop':
        break
    try:
        sum += float(s)
        count += 1
    except ValueError:
        print "Bad number.  Try again"
print "You entered %s numbers whose sum is %s." % (count, sum)
  1. 我为 Python 编写了这段代码,它似乎适合手头的任务。
  2. 它一个一个地取数字并计算总数并相应地计数。
  3. 如果遇到一个字母,它会从计数中减去 1,否则平均值将是错误的。
  4. 如果遇到“done”,则退出循环。
  5. 平均值在循环外计算,因为它只需要计算一次。

     count = 0 total = 0 average = 0 while True: numlist = raw_input('Enter number\\n') if numlist == 'done': break try: count = count + 1 total = total + float(numlist) except: count = count - 1 print 'Enter a valid number' continue average = float(total)/float(count) print 'Count:',count print 'Total:',total print 'Avg:',average

如果输入为空,则修改为停止/中断。

count = 0
total = 0
average = 0 
while True:
    numlist = input('Enter a number or press Enter to quit: ')
    if numlist == '':
            break
    try:
            count = count + 1
            total = total + float(numlist)
    except:
            count = count - 1
            print('Enter a valid number')
            continue
average = float(total)/float(count) 
print('The sum is',total)
print('The average is',average)`

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM