[英]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.