250x250
Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

데이터 놀이터

Section 5 - Sprint 1. Python and Problem Solving - 2. Problem Solving 본문

코드스테이츠 AIB 17

Section 5 - Sprint 1. Python and Problem Solving - 2. Problem Solving

jjjk84 2023. 4. 20. 01:07
728x90

오늘의 키워드

 

  • comprehension
  • 의사코드
  • 예외처리

 

알게된 내용

 

1. comprehension

 

comprehension은 한 줄로 파이썬 기능을 구현할 수 있는 기능으로 코드 간소화를 위해 사용된다.

list comprehension은 많이 사용해서 이제 익숙해졌는데 dictionary, set comprehension도 존재한다는걸 배웠다.

dictionary와 set는 둘 다 {}안에서 comprehension 문을 구현한다는 점에서 공통점이 있다.

하지만 dictionary는 key:value 형태로 선언을 해준다는 점에서 차이점이 있다.

 

## Dictionary comprehension
test = {'A': 5, 'B': 7, 'C': 9, 'D': 6, 'E': 10} 
test = {k:v for k,v in test.items() if k != 'E'} # key가 E를 제외한 나머지를 출력
print(test)

## Set comprehension
test = {'A': 5, 'B': 7, 'C': 9, 'D': 6, 'E': 10} 
test = {k for k in test.keys() if k != 'E'}
print(test)

 

참고자료 : https://wikidocs.net/138204

 

2. 의사코드(pseudocode)

 

의사코드는 알고리즘 문제를 해결하기 전에 프로그래밍 로직을 작성하는 것을 말한다. 

 

print 안녕하세요. 나이를 입력하세요.

while True:
	나이 입력
    
    if 나이 < 14:
    	입장불가
        
    else:
    	print 원하시는 좌석 등급을 입력하세요
        
        좌석 등급 입력
        
        if 좌석 등급 VIP:
        	가격 99000원
        else:
        	가격 55000원
        
        print 해당 좌석 등급은 {가격} 입니다.
        break

 

이런 식으로 나중에 프로그래밍을 위한 뼈대를 세운다고 생각하면 쉽다.

 

참고자료 : https://42kchoi.tistory.com/114

 

3. 예외 처리

 

전에는 try ~ except 문만 사용했었는데 for(while) ~ else, try ~ except ~ else ~ finally를 배우게 되었다.

 

(1) for(while) ~ else

 

for(while) ~ else에서 else문은 반복문 내에 break가 설정되어있을 경우 break가 발생하지 않고 정상적으로 빠져나왔다면 실행된다.

 

## for ~ else
for i in range(1, 4):
	print('loop : ', i)
else:
	print('No break')
    

## while ~ else
i = 1
while i <= 2:
	
    if i == 3:
    	break
    else:
        print('loop : ', i)
        i+=1
	
else:
	print('No break')

참고자료 : https://wikidocs.net/190098

 

(2) try ~ except ~ else ~ finally

 

try ~ except ~ else ~ finally 에서 else는 예외가 발생하지 않았을 때 실행되며 finally는 예외 유무 없이 무조건 실행된다.

else를 잘 활용하면 try ~ except만 쓸때보다 가독성이 훨씬 늘어난다.

Section4 프로젝트를 수행하면서 크롤링 할때도 이 예외처리가 큰 역할을 했다.

물론 오류가 없는 것이 가장 좋은 경우지만 현실적으로 모든 경우를 처리하는게 불가능하기 때문에 예외처리를 잘 사용해야한다.

 

def disneyland():
    try:
		age = int(input("나이를 입력해주세요: "))
    except ValueError as e:			# e는 다른 명칭을 사용해도 괜찮다.
        print("숫자로 나이를 입력해주세요.")   
        print(e) 			# 에러에 대한 메세지 출력
    else:
        # 3세 미만은 공짜
        if age < 3:
            fee = 0
        # 3세~9세: 50,000
        elif age >= 3 and age < 10:
            fee = 50000
        else:
            fee = 100000
        return fee
    finally:
        print("디즈니 랜드에 오신 것을 환영합니다~!")

disneyland()

 

더 알아봐야할 것

 

  • 백준 문제 풀면서 comprehension 자주 사용해보기
  • 의사코드(pseudocode) 연습하기
  • 가위바위보 코드 완성하기
728x90