2017-03-28 1 views
3
def f1(x,y): 
     if x:  
      x = [1,2,3] 
      x.append(4) 
     else: 
      x = 2 
     return x + y 

L1 = [1,2,3] 
L2 = [55,66] 
L3 = [] 
y = 3 
print(f1(L3,y))   # Line 1 
print(L3)     # Line 2 
print(f1(L1,L2))   # Line 3 
print(L1)     # Line 4 

#이 표현을 이해하고 싶습니다. 무엇을 말하고 있습니까? "if x :"는 무엇을 의미합니까? 일반적으로 if 문 다음에 항상 조건이 있지만이 중 하나에는 조건이 없습니다. 이걸 어떻게 이해할 수 있니? 이 fuction에서 무엇을하고 있습니까?if 조건이없는 명세서

+0

* 비교가없는'if' 문일 수도 있지만 분명히 조건을 가지고 있습니다 *. 조건이없는 if 문은 다음과 같습니다.'if :':-) – paxdiablo

+0

맞습니다. 방금 잘못된 단어를 사용했지만 내 질문을 이해했다고 생각합니다. 대답 해 줄 수 있겠 니? – DiMaria

답변

1

그것은 x가 true 또는 (이진) false인지 확인하는 것입니다.

if x:

true를 반환 x 값이 같지 않은 0 (x가 다수 인 경우)과 적어도 문자 (x가 문자열 인 경우) 갖는 경우 true를 반환. DaiMaria '

'

a = 'DaiMaria' 
if a: 
    print a 

이 인쇄 ':'이 인쇄

a = 10 
if a: 
    print a 

예를 들어

'(10)는 x가'0 '또는' '또는'없음 동일한 경우는 false를 돌려줍니다

a = 0.1 
if a: 
    print a 

인쇄 0.1

a = 0 
if a: 
    print a 

반환 할 때 아무 것도 인쇄하지 않습니다. False.

a = None 
if a: 
    print a 

반품 할 때 아무 것도 인쇄하지 않습니다.

a = '' 
if a: 
    print a 

반품 할 때 아무 것도 인쇄하지 않습니다.

1

조건은 X는 if 문 파이썬은 첫 번째 (파이썬 3 __bool__) x__nonzero__ 방법을 찾기 위해 시도 if bool(x): ...에 해당하는 truthy value

0

여부이며 찾을 수없는 경우 반환 TruexNone, False이 아니며 0을 반환하는 __len__ 메서드를가집니다. 빈 매핑 또는 값이 0 인 숫자 형식입니다.

몇 가지 예 :

>>> class A(object): 
...  pass 
... 
>>> bool(A()) 
True 
>>> class B(object): 
...  def __nonzero__(self): return False 
... 
>>> bool(B()) 
False 
>>> class C(object): 
...  def __len__(self): return 0 
... 
>>> bool(C()) 
False 
>>> class D(object): 
...  def __len__(self): return 0 
...  def __nonzero__(self): return True 
... 
>>> bool(D()) 
True