Python函数定义时打印提示信息
我正在使用 Python 3.41。
如果我理解下面这个讨论串,为什么这个 def 函数在 Python 中没有被执行?,是正确的,那么在 Python 中定义一个函数其实是把这个函数存起来,只有在调用它的时候才会执行。我的理解对吗?
我想找出一个数字的所有因数,把它们存到一个元组里,然后打印出来。
最开始我写了,
if x < 0:
print ('not positive')
else:
div = ()
for i in range(1, x):
if x%i == 0:
div = div + (i,)
print (div)
这个是可以工作的。
现在我想把它做成一个函数,以便在更大的代码中使用。以下是我尝试过的代码。
def find_dt(x = int(input('enter a positive number '))):
if x < 0:
print ('not positive')
else:
div = ()
for i in range(1, x):
if x%i == 0:
div = div + (i,)
print (div)
当我执行这个代码时,程序窗口里打印出了函数的提示信息,但并没有调用这个函数。而且如果我输入一个数字,它也没有返回任何结果。我原本以为在程序窗口里不会有明显的反应。
你能详细解释一下发生了什么,并教我怎么正确地写这个函数吗?我希望我的问题足够清楚。
谢谢,
1 个回答
6
你看到这个提示是因为你把 input()
的调用放在了函数定义的 参数 中——具体来说,是作为一个默认值,这个默认值是在定义的时候就被计算出来的。
听起来你真正想要的是一个不需要任何参数的函数,并且只有在运行的时候才调用 input()
:
def find_dt():
x = int(input('enter a positive number: '))
if x < 0:
print ('not positive')
...