본문 바로가기

파이썬 튜터리얼 정리 5.7 자료구조 - 조건 더 보기 .8 시퀀스와 다른 형 비교

파이썬 튜터리얼 정리 5.7 자료구조

'조건' 더 보기  条件についてもう少し


if / while 에 사용되는 조건에는 비교뿐 아니라 모든 연산자를 사용할 수 있다.




비교 연산자 (<, >, ==, in, not in, is, is not)


in / not in : 시퀀스에 값이 포함되어 있는지 비교

is / is not : 두 오브젝트가 같은 오브젝트인지 비교 - list같은 가변객체에서만 의미있음.


비교 연산자는산술 연산자보다 우선순위가 낮다


연쇄 가능

 a < b == c 는, a 가 b 보다 작고, 동시에 b 가 c 와 같은지 검사



논리 연산자 ブール演算子 (and, or, not)


- 우선순위 : not > and > or 

 A and not B or C  = (A and (not B)) or C 

- 결과가 결정되자 마자 값 구하기는 중단됨.

      A 와 C 가 참이고 B가 거짓이면, A and B and C 는 표현식 C 의 값을 구하지 않습니다. 


- 논리값이 아닌 일반 값으로 사용 될 때, 반환 값은 마지막 값


비교/논리 표현식에 따른 결과를 변수에 대입 가능.


>>> string1, string2, string3 = '', 'Trondheim', 'Hammer Dance'
>>> non_null = string1 or string2 or string3
>>> non_null
'Trondheim'

*  string1 = ' ' = False, 다른 string2, string3는 True 

non_null = string1 or string2 or string3 = False or True or True 이므로 여기서 string1 or string2에서 true로 값이 정해지므로 string3까지 값을 구하지 않는다.

그러므로 non_null = string2 = 'Trondheim'이 된다.

파이썬에서, C와는 달리, 대입은 표현식 안에 등장할 수 없습니다. C 프로그래머들이 이 문제로 투덜거리지만, C 프로그램에서 흔히 마주치는 부류의 문제들을 회피하도록 합니다: == 를 사용할 표현식에 = 를 입력하는 실수.





시퀀스와 다른 형들을 비교하기 シーケンスとその他の型の比較


시퀀스 객체들은 같은 시퀀스 객체들과 비교할 수 있습니다.


비교는 '사전식 순서'를 사용합니다. - 차례대로 비교

- 같은 형 : 짧은 시퀀스가 작은 것

- 문자열 : 유니코드 포인트 숫자를 사용


(1, 2, 3)              < (1, 2, 4)
[1, 2, 3]              < [1, 2, 4]
'ABC' < 'C' < 'Pascal' < 'Python'
(1, 2, 3, 4)           < (1, 2, 4)
(1, 2)                 < (1, 2, -1)
(1, 2, 3)             == (1.0, 2.0, 3.0)
(1, 2, ('aa', 'ab'))   < (1, 2, ('abc', 'a'), 4)


* 비교 시, 적절한 비교 메소드들을 갖고 있을 때만 허락된다. 예를 들어 0 = 0.0...

그렇지 않으면 임의의순서를 제공하는 대신, 인터프리터는 TypeError를 일으킵니다.