繁体   English   中英

从用户输入中计算总和、乘积和平均值

[英]Figuring out Sum, Product, and Average from User Inputs

我正在做一些作业,这要求我执行以下操作:

编写一个程序,接收来自用户的一系列数字,并允许用户按下回车键以表明他或她已完成输入。 用户按下回车键后,程序应该打印数字的总和、数字的乘积和数字的平均值。

使用以下输入运行您的程序:
1, 2, 3, 4, 5, 6, 7, 8
2, 24, 11, 1, 4, 10
不输入数字

这是我到目前为止所拥有的,但我的数字没有正确显示。 有人可以告诉我我做错了什么。 我是初学者,所以,如果你能用最简单的术语说话,那就太好了。

从用户获取数字直到用户按下“Enter” 计算输入数字的总和、乘积和平均值显示结果

#main program start
def main():

    #initialize variables
    count = 0
    sum = 0.0
    product = 1.0
    data = input("Enter a number or press Enter to quit: ")

    while True: 
        #request input from user
        data = input("Enter a number or press Enter to quit: ")
        
        #set up the termination condition    
        if data == "":
            break

        #convert inputs into floats
        number = float(data)
        
        #calculate sum, product, and average
        sum += number
        product *= number
        average = sum / number

    #display results
    print("The sum is", sum)
    print("The product is", product)
    print("The average is", average)
           

#main program end
main()

不知道你的意思是这些值是错误的。 除了平均水平,似乎没有什么不正常的。

如果您想要平均值,则需要一个列表来收集值。 尝试手动编写您的算法,您就会明白我的意思。

data = input("Enter a number or press Enter to quit: ")
numbers = []

while True: 
    #request input from user
    data = input("Enter a number or press Enter to quit: ")

    #set up the termination condition    
    if data == "":
        break

    #convert inputs into floats
    numbers.append(float(data))

# these can all be done outside and after the while loop
count = len(numbers)
if count > 0:
    _sum = sum(numbers)
    product = 1.0
    for n in numbers:
        product *= n
    average = _sum / float(count)

    #display results
    print("The sum is", _sum)
    print("The product is", product)
    print("The average is", average)
else:
    print("Nothing was entered")

由于您一次输入一个数字,因此您没有所有数字。 最好让用户输入这样的列表:

def main():
    average = 0
    sum_nums = 0
    product = 1
    nums = []
    while True:
        data = input("Enter a number or press Enter to quit: ")
        if data == ""
            sum_nums = sum(nums)
            for num in nums:
                num *= product
            average = sum_nums/len(nums)   
            print("The sum is {},".format(sum_nums))
            print("The product is {}.".format(product))
            print("The average is {}.".format(average))
        else:
            nums.append(data)
            continue

它的工作原理是将所有输入输入到一个列表中。 退出输入的唯一方法是使用 enter 所以如果输入什么都没有,那么它只能是 Enter 键。 一旦按下回车键,我就得到了所有的值并打印出来。

numbers = []
print("enter key to stop")
while(True):
    num = input("enter a number :")
    if num:
        numbers.append(int(num))
    elif(num == ''):
            break
sum_num =0
for num in numbers:
    sum_num += num
avg = sum_num / len(numbers)
print(sum_num)
print(avg)

暂无
暂无

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

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