개발기초

파이썬 기초문법 뽀개기 : f-string, 예외처리 try-except 문

Veams 2022. 11. 21.

 

f-string

f-string을 활용하면 문자열을 표현할 때 굉장히 간단해진다.

f를 붙여주고, 중괄호로 변수를 넣어주면 된다. 중간에 넣을 변수가 많아질 때 더 쉽고 깔끔한 코드 작성이 가능하다.

scores = [
    {'name':'영수','score':70},
    {'name':'영희','score':65},
    {'name':'기찬','score':75},
    {'name':'희수','score':23},
    {'name':'서경','score':99},
    {'name':'미주','score':100},
    {'name':'병태','score':32}
]
for s in scores:
    name = s['name']
    score = s['score']
    print(name+'의 점수는 '+str(score)+'점입니다.') # 일반적으로 이와 같이 사용한다.
    print(f'{name}의 점수는 {score}점입니다.') # f-string을 적용한 상태
    # f-string을 활용하면 굳이 변수 혹은 문자열간 + 와 '' 을 일일히 붙이지 않아도 된다.

실행결과(중복 출력 제외)==>

영수의 점수는 70점입니다.
영희의 점수는 65점입니다.
기찬의 점수는 75점입니다.
희수의 점수는 23점입니다.
서경의 점수는 99점입니다.
미주의 점수는 100점입니다.
병태의 점수는 32점입니다.

 

 

예외처리  : try-except문의 활용

일반적인 코드 작성 상태

people = [
    {'name': 'bob', 'age': 20},
    {'name': 'carry', 'age': 38},
    {'name': 'john', 'age': 7},
    {'name': 'smith', 'age': 17},
    {'name': 'ben', 'age': 27},
    {'name': 'bobby', 'age': 57},
    {'name': 'red', 'age': 32},
    {'name': 'queen', 'age': 25}
]

for person in people:
    if person['age'] > 20:
        print(person['name'])
        #일반적인 작성 상태

실행결과 ==> 

carry
ben
bobby
red
queen

 

그런데, 만약 name이 bobby인 사람의 age 정보가 빠져있는 등

people 리스트 안의 딕셔너리의 데이터에 문제가 있다면??? 에러가 날 것이다.

그래서 다음과 같이 try와 except 상태 구분하여 예외 처리를 한다.

people = [
    {'name': 'bob', 'age': 20},
    {'name': 'carry', 'age': 38},
    {'name': 'john', 'age': 7},
    {'name': 'smith', 'age': 17},
    {'name': 'ben', 'age': 27},
    {'name': 'bobby'},
    {'name': 'red', 'age': 32},
    {'name': 'queen', 'age': 25}
]

for person in people:
    try:
        if person['age'] > 20:
            print(person['name'])
    except:
        print(person['name'], '에러입니다.')
        #예외처리를 활용, 중간에 에러 발생해도, 멈추지 않고 계속 for문을 실행하게 함

실행결과 ==>

carry
ben
bobby 에러입니다.
red
queen

 

--> bobby에서 에러가 발생한 것을 알 수 있다. 

 

예외 처리는 서버에 call을 할 때 자주 활용할 수 있다.

내가 작성한 코드의 잘 못이 아니라, 서버쪽에서 잘못이 있을 수 있기 때문에 유용하게 활용할 수 있다.

 

단, 주의할 점이 있다.

try-except문을 남용할 경우, 에러가 발생하여 작동이 진작 멈췄을 상황에서

에러가 발생하지 않고 계속 프로그램이 작동할 수 있기 때문에, 정작 왜 에러가 발생했는지 알 수 없는 상태가 된다. 

 

댓글