向用户询问数字并输出总和和输入数量的程序

问题描述 投票:1回答:4

我是python的初学者,我正在创建一个程序,要求用户输入任意数量的数字,直到他们输入“stop”。然后程序将输出他们输入的数字和所有数字加在一起的结果。一切都很好,但是一旦我输入另一个数字,添加将是不正确的。

count=1
numberstring=raw_input("Please enter a number: ")
number=float(numberstring)
while number!="stop":
    numberString=raw_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)     
python loops count while-loop add
4个回答
1
投票

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

你的sum变量在这里设置:

sum=number+number1

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

你需要做的是将最新的数字添加到总和中:sum += number1(在while循环之前将sum设置为0)。

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

number1=float(numberString)

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


1
投票

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

我关注自学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))

0
投票
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)

0
投票
  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
© www.soinside.com 2019 - 2024. All rights reserved.