Just Fighting
파이썬의 and, or 연산 사용법 본문
728x90
알고리즘 개발을 하던 도중에 and와 or연산의 새로운 사용법을 깨달았다.
그래서 정리!
보통 bool값과 and, or 연산은 다음과 같이 한다.
기본적으로 파이썬에서는 숫자 0, 비어있는 문자열을 False로 여긴다.
그러나, 0이나 ''의 값으로 위와 같은 연산을 진행했을 때랑은 결과가 조금 다르다.
앞의 값으로 연산의 결과가 확정되면 앞의 값을 리턴하고,
앞의 값이 아닌 뒤의 값으로 연산의 결과가 확정나면 뒤의 값을 리턴한다.
이 내용을 정리하게 된 상황도 함께 정리한다.
두 개의 변수가 있고, 문자열 혹은 빈 문자열을 값으로 가진다.
그 두개의 값이 모두 존재하면 'A / B'로 리턴하고,
둘 중 하나의 값만 있을 땐, 'A' 혹은 'B'를 리턴
둘 다 빈 문자열을 가지면, 'C'를 리턴하게끔 만들고 싶었다.
join()함수를 쓰긴 썼으나, 둘 다 빈 문자열을 가질 때가 문제였다.
a = '사과'
b = '바나나'
result = ' / '.join([x for x in [a, b] if x != ''])
result
마지막에 빈 문자열 대신에 '포도'가 나왔으면 좋겠는데,
if문을 죽어도 쓰기 싫어서 chat GPT에게 물어봤더니 or '포도' 만 넣어주면 된다고 한다.
왜냐면 a, b의 값이 빈 문자열일 경우, 왼쪽의 값 또한 빈 문자열이 되기 때문에
뒤의 값을 리턴하는 것이다.
좋은 지식 하나 얻었다!
[참고]
728x90
'Python' 카테고리의 다른 글
파이썬의 getter, setter (@property) (1) | 2025.03.04 |
---|---|
DataFrame의 attrs 속성 (0) | 2025.03.02 |
빈 이중배열과 주소값 (0) | 2023.07.05 |
[Python] 중복 순열 구하기 (product) (0) | 2022.11.30 |
datetime 함수 정리 (0) | 2022.10.20 |
Comments