我试图得到一个函数调用,但是我无法打印出来。请在这里帮助。这是代码:
def foo():
name = input ('>>').lower().split()
for item in name:
if name == foo:
print ('foo here!')
else:
bar()
def bar():
name = input ('>>').lower().split()
for item in name:
if name == bar:
print ('bar here!')
def start():
print('Welcome Home')
name = input
foo()
start()
双方print ('foo here!')
并print ('bar here!')
没有因为布尔表达式执行name == foo
和name == bar
评估,以虚假的在大多数情况下。例如,在name == foo
定义下的布尔表达式中foo()
,将列表的第一个元素与进行name
比较foo
。foo
返回对象函数的友好字符串表示形式foo()
(通常用于调试目的)。实际上,您可以foo()
通过执行print(foo)
返回值并将其分配给列表name
中的打印机来尝试打印foo()
(在我的情况下<function foo at 0x7fad58f35d40>
,它可能与您的计算机不同)。这将评估name == foo
为true,因此将导致print ('foo here!')
被执行。话虽如此,这是for循环的工作方式:
name
列表中的第一个元素已分配给item
变量。接下来,执行for循环的主体。执行完主体之后,在再次执行for循环的主体之前,将列表中的第二个元素name
分配给变量item
。继续此过程,直到name
列表中没有其他元素为止。现在print('foo here!')
,要使语句执行,必须将if语句中的布尔表达式评估为true。
这是一个示例,print('foo here!')
当用户在运行程序后键入foo时,将在其中执行。
def foo():
name = input('>>').lower().split()
for item in name:
if item == 'foo':
print('foo here!')
else:
bar()
def bar():
name = input('>>').lower().split()
for item in name:
if item == 'bar':
print('bar here!')
print('Welcome Home')
foo()
在定义中foo()
,将列表的第一个元素name
与字符串foo进行比较,从而满足条件if name == 'foo'
。这是执行的示例:
[firas@arch Python]$ ./foobar.py
Welcome Home
>>foo
foo here!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句