[파이썬 심화] 10. 여러 조건에 따라 기능 선택하기◎ Python/파이썬 심화 (책)2022. 9. 1. 18:16
Table of Contents
반응형
삼항 연산자로 더 짧은 코드를 만들자
var = int(input("숫자를 입력하세요 : "))
if var < 10:
print("10보다 작습니다")
else:
print("10보다 크거나 같습니다")
if-else문을 보통 위와 같이 쓰지만, 한 줄로 더 짧게 만들 수 있다.
var = int(input("숫자를 입력하세요 : "))
print("10보다 작습니다") if var < 10 else print("10보다 크거나 같습니다")
이와 같은 삼항 연산자는 코드가 더 짧아진다는 장점 외에도 if-else문보다 메모리도 적게 차지한다. 또한 본인은 함수에서 return할 때 자주 사용한다.
참고하면 좋을 링크도 첨부한다.
https://tpgns.github.io/2018/04/24/nested-ternaries-are-great/
파이썬에서 swtich를 어떻게 사용할까?
C, C++, JAVA 같은 언어는 switch문이 있지만 파이썬에는 존재하지 않는다. 굳이 사용할 이유가 없다는 것이 그 이유이다. 그래도 딕셔너리를 이용해 switch문을 흉내낼 수 있는데, 그 방법을 알아보자.
# A = 90점, B = 80점, C = 70점을 출력
def switch(var):
res = {'A' : "90점", 'B' : "80점", 'C' : "70점"}.get(var, "알 수 없음")
print(f"{var}학점을 환산하면 {res} 입니다.")
switch("A")
switch("D")
[결과]
A학점을 환산하면 90점 입니다.
D학점을 환산하면 알 수 없음 입니다.
위와 같이 dict의 key, value 특성을 이용해 case문을 만들고 get 메소드를 통해 default문을 만들 수 있다.
인덱스 메소드를 직접 만들어보기
def index(iterable, *args): # 패킹을 사용해 args는 여러 숫자를 받을 수 있음
res = []
for i in args:
if i < len(iterable): # 반복형 객체의 길이보다 작으면 res에 추가
res.append(iterable[i])
else:
continue
return res
l = [1, 2, 3, 4, 5]
index(l, 1, 2, 3)
[결과]
[2, 3, 4]
정상적으로 출력된다.
index 메소드를 사용하는 것 말고도 또 다른 방법이 있다. 파이썬 내의 연산자를 함수로 구현한 모듈 operator을 사용하는 것이다. 이 안에 들어있는 itemgetter에 인덱스 정보를 넣고 객체를 생성한 후 객체에 리스트를 넣어 조회하면 결과를 튜플로 출력한다.
import operator as op
l = [1, 2, 3, 4, 5]
idx = op.itemgetter(1, 2, 3)
idx(l)
[결과]
(2, 3, 4)
참고
- 한권으로 개발자가 원하던 파이썬 심화 A to Z, 문용준/문성혁 저
반응형
'◎ Python > 파이썬 심화 (책)' 카테고리의 다른 글
[파이썬 심화] 12. 함수에 여러 가지 종류의 매개변수를 설정할 수 있다! (1) | 2022.09.05 |
---|---|
[파이썬 심화] 11. 함수 정의하기 (0) | 2022.09.02 |
[파이썬 심화] 9. 여러 문장을 묶어 반복 실행하기 (0) | 2022.08.31 |
[파이썬 심화] 8. 조건 판단에 따른 문장 선택하기 (0) | 2022.08.30 |
[파이썬 심화] 7. 할당 및 기타 문장 처리하기 (0) | 2022.08.29 |
@Reo :: 코드 아카이브
자기계발 블로그