簡體   English   中英

在 while 循環中計算用戶的平均值(通過提示輸入數據),直到 Python 中的某個條件

[英]Calculating average from user (through prompt input data) in a while loop until some condition in Python

我已經編寫了以下對我來說工作正常的代碼,我想在 function 中編寫相同的代碼(即 def function_name())——我也在下面嘗試過,但這不是一個好方法,而且寫得不好) . 那么,如何修復代碼以及如何在調用/調用參數時將輸入輸入到我的 function 名稱的參數中,以便獲得最終答案。

# Normal code:
from statistics import mean 
lst = list()
while True:
    user_int = input("Enter a number: ")
    if user_int == "done":
        break
    try:
        float_user_int = float(user_int)
    except:
        print("Bad input. Enter a valid number")
        continue 
    lst.append(float_user_int)
print(mean(lst)) 
# Function Method I have tried which is working fine but it's poorly written and not yielding correct output. Rather, I am getting an error i.e., NameError: name 'float_user_input' is not defined. How can I write user_input integer numbers in an argument of my function name?

def avg_list(float_user_input):
    from statistics import mean # import statistics
    lst = list()
    while True:
        user_int = input("Enter a number: ")
        if user_int == "done":
            break
        try:
            float_user_int = float(user_int)
        except:
            print("Bad input. Enter a valid number")
            continue # quit()
        lst.append(float_user_int)
    return(mean(lst)) # statistics.mean()
print(avg_list(float_user_input))

# This is the one I tried and it seems to be working with function but I don't think this code is perfect because I have done nothing in it except copy pasting the entire code under def function statement. How can I put user input number in an argument of function name?

def avg_list():
    from statistics import mean # import statistics
    lst = list()
    while True:
        user_int = input("Enter a number: ")
        if user_int == "done":
            break
        try:
            float_user_int = float(user_int)
        except:
            print("Bad input. Enter a valid number")
            continue # quit()
        lst.append(float_user_int)
    return(mean(lst)) # statistics.mean()
print(avg_list())

您的幫助將不勝感激。 謝謝。

從 function 聲明和 function 調用中刪除float_user_input

我認為您想要一個 function ,它從用戶那里獲取輸入列表,例如get_input_list並計算如下平均值:

from statistics import mean # import statistics

def avg_list(input_list):
    return(mean(input_list))


def get_input_list():
    # Take user input here
    lst = list()
    while True:
        user_int = input("Enter a number: ")
        if user_int == "done":
            break
        try:
            float_user_int = float(user_int)
        except:
            print("Bad input. Enter a valid number")
            continue
        lst.append(float_user_int)
    return lst

# call function
print(avg_list(get_input_list()))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM