这似乎是一个基本问题,但让我感到困惑。以下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))
答案 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)
(谷歌“递归”很酷)
我的意见,但我认为人们会同意。我们越能分离代码的不同方面,就越容易对其他人进行故障排除,重用和阅读......而且......可能更多......