programing

Truthy와 Falsy는 무엇입니까?참 및 거짓과 어떻게 다릅니까?

i4 2023. 7. 20. 21:42
반응형

Truthy와 Falsy는 무엇입니까?참 및 거짓과 어떻게 다릅니까?

저는 방금 파이썬에는 정상과 다른 진실거짓 값이 있다는 것을 배웠습니다.True그리고.False.

누가 진실과 거짓의 가치가 무엇인지 자세히 설명해 줄 수 있습니까?어디에 사용해야 합니까?진실과 다른 점은 무엇입니까?True가치관과 거짓 그리고False가치관?

는 "우는리 "truthy"와 "falsey"를 합니다.boolTrue그리고.False"truthy" 값은 다음과 같이 수행되는 검사를 충족합니다.if또는while진술들.설명서에서 설명한 것처럼 다음 값을 제외하고 모든 값은 "진실"로 간주됩니다.

  • None
  • False
  • 다음을 포함하여 숫자가 0과 동일한 숫자:
  • 다음을 포함하여 시퀀스 및 컬렉션이 비어 있습니다.
    • []list
    • {}dict
    • ()tuple
    • set()set
    • ''str
    • b''bytes
    • bytearray(b'')bytearray
    • memoryview(b'')memoryview
    • range,맘에 들다range(0)
  • 의 목적물.
    • obj.__bool__()아온다를 합니다.False
    • obj.__len__()아온다를 합니다.0 점을 obj.__bool__정의되지 않았습니다.

설명된 대로, 이는 True 또는 False로 평가되는 값을 나타냅니다.

예를 들어 목록이 비어 있지 않은지 확인하려면 다음과 같이 확인합니다.

if len(my_list) != 0:
   print("Not empty!")

다음과 같이 간단히 수행할 수 있습니다.

if my_list:
   print("Not empty!")

이는 빈 목록과 같은 일부 값이 부울 값에 대해 평가될 때 거짓으로 간주되기 때문입니다.비어 있지 않은 목록은 참입니다.

마찬가지로 정수 0의 경우에는 빈 문자열 "", False의 경우에는 0이 아닌 정수, True의 경우에는 비어 있지 않은 문자열 등이 있습니다.

"truthy" 및 "falsey"와 같은 용어의 개념은 단순히 위에서 설명한 것과 같은 경우에 True로 간주되는 값과 False로 간주되는 값을 참조하십시오.

를 들어,빈예를들, 목록빈어)입니다.[]는 " 있지 않은 )은 "hypy"로 간주됩니다.[1]는 "됩니다.

설명서의 이 섹션도 참조하십시오.

은 Python 적용진결정실다니합성을은여하▁를 적용하여 을 판단합니다.bool()True또는False와 같은 표현으로 사용되는.if또는while.

클래스의 입니다.Vector2d그리고 그것은 돌아오는 인스턴스입니다.False0인 , 않은 경우 크(벡) 가(터) 일 0때, 지않때을그렇기길True.

import math
class Vector2d(object):
    def __init__(self, x, y):
        self.x = float(x)
        self.y = float(y)

    def __abs__(self):
        return math.hypot(self.x, self.y)

    def __bool__(self):
        return bool(abs(self))

a = Vector2d(0,0)
print(bool(a))        #False
b = Vector2d(10,0)    
print(bool(b))        #True

참고: 정의하지 않았다면__bool__사용자 정의 클래스의 인스턴스는 기본적으로 True로 간주되므로 항상 True를 반환합니다.

책의 예: "파이썬에 유창하고, 명확하고, 간결하고, 효과적인 프로그래밍"

Truthy 값은 true 또는 false를 반환하는 boolean 값이 아니라 부울 컨텍스트에서 사용되는 개체를 나타냅니다.다음을 예로 들 수 있습니다.

>>> bool([])
False
>>> bool([1])
True
>>> bool('')
False
>>> bool('hello')
True

Truthy 또는 Falsy 값을 사용해야 하는 위치는 무엇입니까?이것들은 구문 설탕이기 때문에 항상 피할 수 있지만, 그것들을 사용하면 코드를 더 읽을 수 있고 더 효율적으로 만들 수 있습니다.게다가, 당신은 그것이 좋은 관행으로 여겨지기 때문에 파이썬이든 아니든 많은 코드 예제에서 그것들을 발견할 것입니다.

다른 답변에서 언급한 것처럼 if 테스트 및 while 루프에서 사용할 수 있습니다.은 python 된 두 입니다.or,s문자열 변수입니다.당신은 또한 비슷한 상황으로 확장될 것입니다.

진실없이

if len(s) > 0:
    print(s)
else:
    print('Default value')

사실, 그것은 더 간결합니다.

print(s or 'Default value')

3 3.이라는 할당 표현을 사용할 수 .:=

사실이 아닌

if len(s) == 0:
    s = 'Default value'
do_something(s)

사실 그것도 더 짧습니다.

s or (s := 'Default value')
do_something(s)

더 짧거나 더 짧거나,

do_something(s or (s := 'Default value'))

할당 식을 사용하지 않고도 할 수 있습니다.

s = s or 'Default value'
do_something(s)

짧지는 않습니다.어떤 사람들은 그것을 찾습니다.s =...다음과 일치하기 때문에 라인이 만족스럽지 않습니다.

if len(s)>0:
    s = s # HERE is an extra useless assignment
else:
    s = "Default value"

그럼에도 불구하고 당신이 편안하다면 당신은 이 코딩 스타일을 고수할 수 있습니다.

Python의 모든 개체는 실제 값을 테스트할 수 있습니다.if 또는 while 조건에서 사용하거나 부울 연산의 피연산자로 사용할 수 있습니다.

은 다음 고됩니다려값으로 간주됩니다.False:

  • None
  • False
  • 숫자 유형의 0(예: 0, 0L, 0.0, 0j)입니다.
  • 예를 들어, ','(), []과 같은 빈 시퀀스입니다.
  • 빈 매핑(예: {})
  • 클래스의 , 된 __nonzero__()또는__len__()그 0 값을 , 메소드는 0 또는 bool 값을 반환합니다.False.

모든 은 다모든값이고니됩다려른다idered로 간주됩니다.True따라서 많은 유형의 객체는 항상 참입니다.

및 0 부결가있연산및는내항 0을 합니다.False거짓과 1 또는 2에 대하여True특별한 언급이 없는 한, 사실입니다.

if (!id) {}

반환!expr 반환false의 단일 가 단일를로자수변있경으로 될 수 ,true그렇지 않으면 반환됩니다.true.

값을 true로 변환할 수 있는 경우, 그 값은 truthy라고 합니다.값을 false로 변환할 수 있는 경우 값을 falsey라고 합니다.

false로 변환할 수 있는 식의 예는 다음과 같습니다.

null;

NaN;

0;

empty string ("" or '' or ``);

undefined.

비록 그것이!연산자는 부울 값이 아닌 피연산자와 함께 사용될 수 있으며, 반환 값은 항상 부울 원시 값으로 변환될 수 있기 때문에 부울 연산자로 간주될 수 있습니다.반환 값(또는 일반적인 식)을 해당 부울 값으로 명시적으로 변환하려면 이중 NOT 연산자 또는 부울 생성자를 사용합니다.

예:

n1 = !null               // !t returns true
n2 = !NaN              // !f returns true
n3 = !''                 // !f returns true
n4 = !'Cat'              // !t returns false

에의 if (id != null) {}ID의 값이 null과 동일하지 않은 경우에만 확인합니다.

참조 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_NOT

Falsy는 비어 있는 목록, 튜플과 같이 비어 있는 값 또는 없음을 의미합니다.Truthy는 다음을 의미합니다. Truthy는 예외입니다.

언급URL : https://stackoverflow.com/questions/39983695/what-is-truthy-and-falsy-how-is-it-different-from-true-and-false

반응형