모두 print ('foo here!')
및 print ('bar here!')
이 실행되지 않습니다. 예를 들어, foo()
이라는 정의의 부울 표현 name == foo
에서 목록 name
의 첫 번째 요소는 foo
과 비교됩니다. foo
은 객체 함수 foo()
(일반적으로 디버깅 목적으로 사용됨)의 친숙한 문자열 표현을 반환합니다. print(foo)
을 실행하여 실제로 foo()
을 시도하고 인쇄 할 수 있으며 반환 된 값을 name
foo()
(내 경우에는 <function foo at 0x7fad58f35d40>
- 컴퓨터에 따라 다를 수 있음) 목록에 할당 할 수 있습니다. 그러면 name == foo
이 true로 평가되므로 print ('foo here!')
이 실행됩니다. 즉 here is how for loop works 말했다되는 : 당신의 name
목록에
첫 번째 요소는 item
변수에 할당됩니다. 그런 다음 for 루프의 본문이 실행됩니다. 본문이 실행 된 후 목록의 두 번째 요소 name
은 for 루프의 본문이 다시 실행되기 전에 item
변수에 할당됩니다. 이 프로세스는 name
목록에 더 이상 요소가 없을 때까지 계속됩니다. 이제 print('foo here!')
을 실행하려면 if 문의 진리 값을 true로 평가해야합니다.
다음은 사용자가 프로그램을 실행 한 후 foo를 입력 할 때 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()
는
name
리스트의 첫 번째 요소는
string foo에,
if name == 'foo'
이 충족 따라서 조건과 비교된다. 다음은 실행 샘플입니다.
[[email protected] Python]$ ./foobar.py
Welcome Home
>>foo
foo here!
이 작업을 수행 하시겠습니까? 그냥 코드를 읽고 나서 "if name == foo"가 아마도 당신이 원하는 것 (foo의 정의에서)이 아니라면 "name"(문자열 목록)과 "foo"(a 함수 객체)와 그것들은 절대 동일하지 않을 것입니다. –