2011-05-13 4 views
1

:문자열 유형 변수는 어떻게 파이썬에서 부울로 간주됩니까? 아래의 코드에서

def modify_note(self): 
    id = input("Enter a note id: ") 
    memo = input("Enter a memo: ") 
    tags = input("Enter tags: ") 
    if memo: 
     self.notebook.modify_memo(id, memo) 
    if tags: 
     self.notebook.modify_tags(id, tags) 

memotags 문자열 유형의 변수입니다. 만약 당신이 그들을 후에 쓸 수있는, 파이썬은 여기에 부울로 간주합니까?

+0

에 따라인가? 'input()'은 2.x와 3.x에서 다른 의미를 가지고 있습니다. –

+2

참고 : python 3을 사용하지 않는 한 input()을주의하십시오! raw_input과 같지 않습니다. 입력 한 값을 평가하면 eval (raw_input())과 같습니다! – bluepnume

+0

예 파이썬 3.x입니다. 파이썬 3에서 raw_input에 무슨 일이 일어 났습니까? – alwbtc

답변

6

if memoif tags 진술은 및 tags 변수의 truthiness을 확인합니다.

상관 객체

if 또는 while 조건 이하 부울 연산의 오퍼랜드로서 사용 진리 값을 테스트 할 수있다. 거짓 간주 다음 값

  • None
  • False
  • 예를 들면 어떤 종류의 숫자 제로, 0, 0L, 0.0, 0j.
  • 빈 시퀀스는 예를 들어 '', (), []입니다.
  • 비어있는 매핑 (예 : {}). 사용자 정의 된 클래스의 인스턴스
  • 클래스가 방법은 정수 또는 제로 boolFalse 값을 반환하는 __nonzero__() __len__() 또는 방법을 정의하는 경우.

다른 모든 값을 true로 간주됩니다 - 너무 많은 종류의 객체는 항상 사실이다. 이 파이썬 3.x를이

+0

하지만 그 코드에는 태그와 메모 변수에 빈 문자열을 입력 할 방법이 없습니다. 이는 그들이 항상 사실임을 의미합니다. 권리? – alwbtc

+1

@alwbtc : 사용자가 바로 enter 키를 누르면, 반환 값에 개행 문자가 포함되지 않으므로 빈 문자열이 표시됩니다. – delnan

8

파이썬의 모든 객체는 truth value입니다. 문자열이 비어 있지 않은 경우 True입니다.

관련 문제