我正在使用Python 3.41 .
如果我理解了以下线程,Why is this def function not being executed in 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 回答
你're seeing the prompt because you'在函数定义的参数中重新调用
input()
- 具体来说,作为默认值,在定义时计算 .听起来你真正想要的是一个不带任何参数的函数,并且仅在运行时调用
input()
: