함수 호출을 받으려고하지만 인쇄 할 수 없습니다. 여기에서 도와주세요. 다음은 코드입니다.
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
대부분의 경우에 false로 평가됩니다. 예를 들어, name == foo
정의 아래 의 부울 표현식 에서 foo()
목록의 첫 번째 요소 name
는와 비교됩니다 foo
. foo
객체 함수의 친숙한 문자열 표현을 반환합니다 foo()
(일반적으로 디버깅 목적으로 사용됨). 실제로 반환 된 값을 foo()
실행 print(foo)
하고 목록 name
에 할당하여 인쇄 를 시도하고 인쇄 할 수 있습니다 foo()
(제 경우에는 <function foo at 0x7fad58f35d40>
컴퓨터에서 다를 수 있음). 이것은 name == foo
참으로 평가 되어 print ('foo here!')
실행될 것입니다. 즉, for 루프가 작동하는 방법은 다음과 같습니다.
name
목록 의 첫 번째 요소가 item
변수에 할당됩니다 . 다음으로 for 루프의 본문이 실행됩니다. 본문이 실행 된 후 목록의 두 번째 요소 는 for 루프 본문이 다시 실행되기 전에 name
변수에 할당 item
됩니다. 이 프로세스는 name
목록에 더 이상 요소가 없을 때까지 계속 됩니다. 이제 say 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'
이 충족됩니다. 다음은 실행 샘플입니다.
[fira[email protected] Python]$ ./foobar.py
Welcome Home
>>foo
foo here!
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다