python
  • boolean
  • operators
  • 2013-06-10 2 views 3 likes 
    3

    int에는 "+ ="연산자가 있습니다.boolean에 "and ="연산자가 있습니까?

    a = 5 
    a += 1 
    b = a == 6 # b is True 
    

    bool에 "= 및"연산자가 있습니까?

    a = True 
    a and= 5 > 6 # a is False 
    a and= 5 > 4 # a is still False 
    

    내가 아는이 '와 ='연산자에 해당하는 것입니다 :

    a = True 
    a = a and 5 > 6 # a is False 
    a = a and 5 > 4 # a is still False 
    

    그러나, 나는 자주이 작업을하고 나는 그것이 매우 깔끔한 보이는 생각하지 않습니다.

    감사

    +0

    , 즉 비트 될 경우에만'1' 또는'0' 값을 의미합니까 보여'and' – jamylak

    답변

    9

    예 - 당신은 &=를 사용할 수 있습니다.

    a = True 
    a &= False # a is now False 
    a &= True # a is still False 
    

    마찬가지로 "or ="에 |=을 사용할 수 있습니다.

    실제로는 비트 연산이라는 점에주의해야합니다 (아래 주석에서와 같이). 부울로 시작하는 경우 경우에만 a이 시작되고 조작은 부울로만 수행됩니다.

    +7

    이것은 당신이 얻을 수있는 가장 가까운 현재 언어로되어 있지만 정확히 무엇이 요구되었는지는 알 수 없습니다.이 연산자는 * bitwise *와 and or를합니다. 차이는 양측의 값이 엄격하게 부울이 아닌 경우에 중요합니다. – zwol

    +2

    '& ='는 비트 연산이지만, 부울 연산을 묻는 질문은 차이점을 지적해야합니다. –

    +0

    더 좋습니까? –

    3

    당신은 운영자 라이브러리를 살펴 수 : 이것은 당신이

    a = True 
    a = operator.iand(a, 5>6) # a is False 
    
    +1

    이것이 '연산자'모듈에 있음을 알면 좋지만 대부분의 경우에는 유용하지 않습니다. – jamylak

    +1

    게다가 비트 단위입니다. – glglgl

    4

    nrpeterson 방법 부울로 &=를 사용하는 방법을 보여 주었다 수행 할 수 있습니다 http://docs.python.org/3/library/operator.html

    .

    는 난 단지 당신이 부울 및 정수를 혼합 할 경우 무슨 일이 생긴 수있는

    a = True 
    a &= 0 # a is 0 
    if a == False : print "hello" # "hello" 
    
    a = True 
    a &= 1 # a is 1 
    if a == False : print "hello" # nothing 
    
    a = True 
    a &= 2 # a is 0 (again) 
    if a == False : print "hello" # "hello" 
    
    a = True 
    a &= 3 # a is 1 
    if a == False : print "hello" # nothing 
    
    관련 문제