我正在使用Python3.41。
如果我正确理解以下线程,Why is this def function not being executed in 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)
当我执行此操作时,它会在程序窗口中打印函数的提示消息,而不调用它。另外,如果我输入了一个数字,它就不会返回任何内容。我以为在程序窗口里不会有什么明显的事情发生。
你能详细说明发生了什么,并教我如何正确地写出它,以达到我想要的目的吗?我希望我的问题足够清楚。
谢谢,
发布于 2014-08-29 03:20:10
看到提示符是因为在函数定义的参数中引入了对input()
的调用--具体来说,它是一个默认值,在定义时进行计算。
听起来,您真正想要的是一个不带任何参数的函数,并且只在运行时调用input()
:
def find_dt():
x = int(input('enter a positive number: '))
if x < 0:
print ('not positive')
...
https://stackoverflow.com/questions/25561188
复制相似问题