클래스: Python 필수 교육

불 방식 - Python 튜토리얼

클래스: Python 필수 교육

불 방식

- [강사] 아까 부울에 대해 살펴봤는데, 부울에 대해 할 말이 별로 없다는 인상을 받았을 수도 있습니다. 참과 거짓, 맞아, 얼마나 어려울까? 글쎄요, 우리가 다루어야 할 몇 가지 실제로 까다로운 측면이 있습니다. 그리고 저는 프로그래머로서 매일 그것들을 사용할 것이기 때문에 이것들을 다루는 것이 매우 중요합니다. 솔직히, 나는 때때로 부울 논리 줄을 다시 확인하거나 파이썬이 한 가지 경우 또는 다른 경우를 어떻게 처리하는지 정확히 확인하기 위해 Python 터미널을 불러 오는 것을 발견합니다. 이제 코드로 이동하겠습니다. 먼저 얘기하고 싶은 것은 캐스팅입니다. 그래서 파이썬은 정수를 부울로 꽤 멋지게 캐스팅 할 것입니다. 1은 참이고 물론 0은 거짓입니다. 사실, 0을 제외한 모든 것은 부울 true로 캐스팅됩니다. 따라서 -1 과 같은 것은 우리에게 거짓으로 느껴질 수 있지만 Python을 조심하십시오. 상상의 것을 해보자는 것조차도 사실입니다. 그러나 허수 0 또는 부동 소수점 0은 모두 거짓입니다. 그래서 0.0이고 0 j를 하면 거짓입니다. 자, 그럼 문자열은 어떨까요? 부울 true는 사실입니다. 부울 false는 true입니다. 빈 문자열 이외의 다른 것은 실제로 사실이 될 것이기 때문입니다. 이 문자열 false에는 특별한 것이 없습니다. 그것은 단지 문자열이며, 파이썬은 그것이 사실이라고 가정합니다. 물론 빈 문자열은 유일한 거짓 문자열입니다. 그러나 여기에 공백 같은 것을 넣는 것조차도 조심하고 실제로 빈 문자열인지 확인하십시오. 데이터 구조는 어떻습니까? 이것들을 부울에도 캐스팅할 수 있습니다. 빈 목록은 false입니다. 빈 딕셔너리는 false입니다. 그래도 여기 안에 무엇이든 넣으면 사실입니다. 파이썬이 함수에서 반환하는 비 값을 기억하십시오.이 값에 명시적인 반환 값을 추가하지 않으면 당연히 false로 캐스팅됩니다. 이제 Booleans와 Python을 캐스팅하는 규칙을 배우는 것이 왜 그렇게 중요한가요? 글쎄, 부울은 일반적으로 직접 사용되지 않는다는 것을 기억하십시오. 일반적으로 if 문 또는 for 루프 내부의 문의 부울 값을 확인합니다. 따라서 이와 같은 상황에서 매우 자주 사용하게 될 것입니다. 내 목록이 "내 목록에 몇 가지 값이 있습니다"를 인쇄하면 내 목록이 1,2와 같습니다. 그리고 우리가 여기서 하는 일은 평가하기 위해 내 목록의 값을 부울로 캐스팅하는 것입니다. 이것은 이것을 쓰는 것과 같습니다. 당신은 또한 다음과 같은 것을 할 수 있습니다. a는 5와 같고 b는 5와 같습니다. a에서 b를 뺀 경우 "a와 b가 같지 않습니다"를 인쇄합니다. 좋아요, 인쇄하지 않았습니다, 마이너스 b 가 a 가 b 와 같은 것처럼 0 또는 false로 평가되는 유일한 방법입니다. 물론 이것은 약간 지나치게 영리합니다. 우리가 정말로 이것을 하고 싶다면, 우리는 그것을 할 수 있습니다. 그리고 그것은 저를 다음 요점으로 이끕니다. 일반적으로 부울을 평가하는 방법은 여러 가지가 있습니다. 따라서 이 논리를 추적하는 데 약간 주의해야 합니다. 예를 들어, 산책을 갈지 말지 고민하는 상황을 살펴보겠습니다. 그래서 날씨는 좋고, 거짓이고, 우산이 있는 것은 사실입니다. 그래서 날씨가 좋거나 우산이 있으면 산책을 할 수 있습니다. 날씨가 좋지 않거나 우산이 없다면 우리는 안에 머물러야합니다. 따라서 우산이 없거나 날씨가 좋으면 "Stay inside"를 인쇄하고, 그렇지 않으면 "산책하러 가십시오"를 인쇄하십시오. 따라서 우산이 있으면 산책을 할 수 있다는 것을 알려줍니다. 좋아 보이죠? 그러나 파이썬은 왼쪽에서 오른쪽으로 부울을 평가합니다. 그러니까 이것은 우산을 가지고 있지 않다는 것인데, 그것은 거짓이고, 날씨가 좋다는 말도 거짓입니다. 따라서 이 모든 것은 거짓으로 평가됩니다. 실제로 여기에 우산이 없는 주위에 가상의 괄호가 있습니다. 그래서 이것은 우리가 원하는 논리가 아닙니다. 우산이 없도록 부울을 뒤집었지만 날씨가 좋으면 잘못된 일을한다는 것을 알 수 있습니다. 날씨가 좋아도 안에 있으라고 말하고 있습니다. 따라서 이 문제를 해결하는 몇 가지 방법이 있으며 올바른 논리를 제공하는 방식으로 이 문제를 수정합니다. 그래서 먼저, 우리는 이것을 할 수 있습니다. 먼저 평가하려는 것을 괄호로 묶을 수 있습니다. 그리고 이것은 우리에게 올바른 논리를 줄 것입니다. 우리가 할 수 있는 멋진 일도 있는데, 이것을 and 문으로 다시 작성하는 것입니다. 그래서 이것을 복사하겠습니다. 우산이 없으면 날씨가 좋지 않습니다. 그렇게 해보자, 그리고 이것은 실제로 우리가 이전에 가졌던 것과 정확히 같은 논리입니다. 이 두 가지는 동일합니다. 꼭 필요한 것은 아니지만, 가독성을 위해 괄호를 넣는 것이 좋을 수 있습니다. 그러나 그것은 컴퓨터가 아닌 인간의 가독성일 뿐입니다. 물론 우리는 이러한 진술의 순서를 완전히 뒤집을 수도 있는데, 이것이 아마도 제 생각에는 가장 좋고 가장 읽기 쉬운 방법일 것입니다. 따라서 우산이 있거나 날씨가 좋으면 "산책하러 가십시오"를 인쇄하고, 그렇지 않으면 "실내에 머물러라"라고 인쇄하십시오. 네, 부울은 특정 수준에 있으며 매우 간단합니다. 그러나 부울 문을 작성할 때 매우 조심하는 것이 매우 중요합니다. 파이썬이 문장의 각 부분을 어떻게 평가하는지 생각해보고, 항상 로직을 다시 확인해보자.

목차