没有输入的输入与函数的函数 - Python

时间:2017-12-31 02:07:00

标签: python function

这似乎是一个基本问题,但让我感到困惑。以下2个示例以类似的方式工作我认为(假设输入相同)它会提示用户输入一个数字,将该数字乘以5并返回答案。

我的问题是,为什么以及何时会选择第一个例子? (反之亦然)。更一般地说,为什么函数带有参数而不是函数中给出的参数。如果这是有道理的。如果这是一个不好的例子,我道歉,我只是想绕过这个。

由于

没有参数:

def func():
    x = int(input('Enter a number:'))
    y = x * 5
    print(y)

func()

一个论点:

def func_2(y):
    x = int(input('Enter a number:'))
    y = x * 5
    return y

print(func_2(6))

1 个答案:

答案 0 :(得分:1)

好问题!

基本上,两个函数之间的区别在于第一个函数处理计算和向用户呈现。第二个函数只处理计算。 (更正,第二个功能也处理接受用户输入,我会改变...就像这样:)

def func_2(x):
    y = x * 5
return y

x = int(input('Enter a number:'))
print(func_2(x))

使用第二个功能的原因:

第一个原因:可重用性

假设您需要多次从函数中获取值,并且您并不总是希望打印结果。有时可能会将结果打印给用户,但在另一个实例中,结果将输出到文件中。分离计算和演示可以节省您的时间。

第二个原因:递归

您可能希望以递归方式调用您的函数。保持你的计算功能只允许你做这样的事情 - 这是一个函数计算阶乘的例子:

def factorial(n):
    if n == 1:
        return 1
    else:
        return n * factorial(n-1)

(谷歌“递归”很酷)

第三个理由:良好做法

我的意见,但我认为人们会同意。我们越能分离代码的不同方面,就越容易对其他人进行故障排除,重用和阅读......而且......可能更多......