簡體   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