Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python的函数中使用input()作为参数_Python_Function_Input - Fatal编程技术网

在Python的函数中使用input()作为参数

在Python的函数中使用input()作为参数,python,function,input,Python,Function,Input,我创建了这个函数,返回我正在分析的一些国家基于特定年份的人均GDP和人均军费开支 def compare(year): simple = data.loc[year, :].sort_values(by = "gdp_pc", ascending = False) simple = simple.reset_index() simple = simple.drop(["gdp_share", "military_exp", "pop", "gdp"], axis = 1)

我创建了这个函数,返回我正在分析的一些国家基于特定年份的人均GDP和人均军费开支

def compare(year):
    simple = data.loc[year, :].sort_values(by = "gdp_pc", ascending = False)
    simple = simple.reset_index()
    simple = simple.drop(["gdp_share", "military_exp", "pop", "gdp"], axis = 1)
    simple = simple.round(2)
    simple.columns = ["Countries", "GDP per capita", "Military spending per capita"]
    simple.index = simple.index + 1

    return simple

我已经测试了这个函数,它工作得很好。但是,我想让它更加用户友好,让用户输入年份(函数的参数)。如何做到这一点?

定义包装函数;让
compare
完成它的工作(实际的比较),让另一个函数负责调用
input
并将响应传递给
compare

def do_comparison():
    year = int(input("Enter a year to compare against: "))
    return compare(year)

您如何调用
compare
函数?
compare(2010)
对于记录,让函数通过
input
直接从用户处获取输入并不会使其更友好。这使得它的可重用性降低。99%的函数可以并且应该作为参数接收输入,并返回值。其他1%的函数只接受用户输入并提供输出,所有输入和输出值的使用都通过调用中间的其他正常函数来处理。通常,其他函数在逻辑上与程序的
main
方法相匹配(它们可能是为了清洁而被考虑的,但它们在逻辑上是
main
的一部分)。完全同意,@ShadowRanger。但这是针对学校的项目,其中一个要求是使用用户提供的
输入。