在一段时间循环中计算用户(通过提示输入数据)的平均值,直到 Python 中的某个条件



我编写了以下代码,它对我来说工作正常,我想在函数中编写相同的代码(即def function_name((( - 我也在下面尝试过,但这不是一个好方法,而且写得很差(。那么,我如何修复代码以及如何在调用/调用参数时将输入放入函数名称的参数中,以便我可以获得最终答案。

# 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())

您的帮助将不胜感激!谢谢。

从函数声明和函数调用中删除float_user_input

我认为您想要一个函数,该函数从用户(例如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()))

相关内容

最新更新