파이썬에서 부울을 어떻게 사용합니까?


109

파이썬은 실제로 부울 값을 포함합니까? 나는 당신이 할 수 있다는 것을 압니다.

checker = 1
if checker:
    #dostuff

하지만 저는 꽤 현명하고 Java에서 부울을 보는 것을 즐깁니다. 예를 들면 :

Boolean checker;
if (someDecision)
{
    checker = true;
}
if(checker)
{
    //some stuff
}

파이썬에 부울과 같은 것이 있습니까? 문서에서 이와 비슷한 것을 찾을 수없는 것 같습니다.


1
기억하십시오 ... 변수를 만들 때 유형을 선언 할 필요가 없습니다. 'checker = False'만으로 충분합니다.
Dominic Bou-Samra

10
@Dominic Bou-Samra : "타입을 선언 할 필요가 없습니다"? 그것은 사실이 아닙니다. "변수에 대한 유형을 선언 할 수 없습니다"라고 말해야한다고 생각합니다.
S.Lott

2
@ S.Lott "당신은 변수에 대한 유형을 선언 할 수 없습니다."... 당신이 typecast를 할 수 있기 때문에 여전히 사실이 아닙니다 some_var = int("1234")... 그 라인은 명시 적으로 설정합니다 some_var=>int
Kolob Canyon

답변:


142
checker = None 

if some_decision:
    checker = True

if checker:
    # some stuff

[편집하다]

자세한 정보 : http://docs.python.org/library/functions.html#bool

필요한 경우 1로 변환 되므로 코드도 작동 True합니다. 사실 파이썬은 오랫동안 (이전 C에서와 같이) 부울 유형이 없었으며 일부 프로그래머는 여전히 부울 대신 정수를 사용합니다.


17
일반적으로 'if'대신 checker = (some_decision) (예 : checker = (a <b))를 사용하는 것이 더 간단합니다.
MAK

11
이 스 니펫은 약간 오해의 소지가 있습니다. 테스트하기 전에 "checker"를 정의해야합니다. OP가 이전에 정의했지만, 예제에서 checker = None은 절대적으로 필요하지 않거나 UnboundLocalError
dprogramz

파이썬 부울은 정수입니다. TrueFalse확장에 대한 참조 int오버라이드 (override)와 객체 __str____repr__.
Mad Physicist 2015

파이썬 부울은 정수가 아닙니다. 1 is not True,하지만 1 == True.
BallpointBen

@BallpointBen :에 int표시된 것처럼 유형의 인스턴스라는 상식에서 정수입니다 isinstance(True, int).
Bastien Léonard

93

부울 내장은 대문자로 표시됩니다 : TrueFalse.

당신이 할 수 있음을 유의하십시오 checker = bool(some_decision)속기의 비트로 - bool오직 반환 True또는 False.

그것은 미래의 참조를 위해 알고 좋은 클래스를 정의 __nonzero__또는__len__True또는 False그러한 기능의 결과에 따라, 그러나 거의 모든 다른 개체의 부울 결과가 될 것입니다 True합니다 (제외 None대상, 빈 시퀀스 및 숫자 제로).


1
통찰력을 주셔서 대단히 감사합니다. 인기 투표가 다른 답변으로 바뀌면서 Bastien에게 '수락 된 답변'을 수여했습니다. 그러나 당신의 것이 가장 도움이되었습니다! :)
Federer

23
bravado : 가장 도움이된다고 생각하는 답변을 받아들이지 않는 이유는 무엇입니까? 다른 답변이 더 많이 찬성되면 완전히 관련이 없습니다.
tzot 2009

2
그리고 대중의 투표도이 답변에 있습니다. 투표 변경을 고려하십시오.
Alastor Moody

12

True... 그리고 False분명히.

그렇지 않으면 None정수 0와 부동 소수점도 마찬가지로 False로 평가됩니다 0.0(비록 부동 소수점을 사용하지는 않겠지 만). 또한 빈 목록 [], 빈 tuplet (), 빈 문자열 ''또는 ""False로 평가됩니다.

함수로 직접 시도해보십시오 bool().

bool([])
bool(['a value'])
bool('')
bool('A string')
bool(True)  # ;-)
bool(False)
bool(0)
bool(None)
bool(0.0)
bool(1)

기타..


5

부울 유형은 문서에 정의되어 있습니다 :
http://docs.python.org/library/stdtypes.html#boolean-values

문서에서 인용 :

부울 값은 두 개의 상수 개체 False 및 True입니다. 진리 값을 나타내는 데 사용됩니다 (다른 값도 거짓 또는 참으로 간주 될 수 있음). 숫자 컨텍스트 (예 : 산술 연산자에 대한 인수로 사용되는 경우)에서는 각각 정수 0과 1처럼 동작합니다. 내장 함수 bool ()을 사용하여 값이 진리 값으로 해석 될 수있는 경우 모든 값을 부울로 캐스팅 할 수 있습니다 (위의 진리 값 테스트 섹션 참조).

각각 False와 True로 작성됩니다.

그래서 자바 코드에서 중괄호를 제거하고로 변경 true하면 True괜찮을 것입니다 :)



0

선언 할 Java와 달리 boolean flag = TruePython 에서는 다음을 선언 할 수 있습니다.myFlag = True

파이썬은 이것을 부울 변수로 해석합니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.