Python 정리 - if문, for문, while문, try문

Kyung Jae, Cheong·2023년 3월 22일
0
post-thumbnail

파이썬에서 가장 중요한 문법인 반복문과 조건문에 대해서 다루어보도록 하겠음!

1. 조건문 (condition)

1-1. 조건식

  • 조건식이란? 어떤 조건에 따라 실행이 분기되도록 하는 기준이 되는 식
    • 조건식은 True나 False의 논리형(불리언) 형태로 출력되어야 한다.
  • A if 조건식 else B : 조건식이 True면 A를 , False면 B를 실행한다.
# 기본적인 조건식
num1 = 10
num2 = 50
print(f"num1 = {num1}, num2 = {num2}")
'''
num1 = 10, num2 = 50
'''

# 변수로 할당하여 출력하는 방법
num1_is_greater = True if (num1 > num2) else False
print(f"num1 > num2 : {num1_is_greater}")
'''
num1 > num2 : False
'''

# 실행문을 나누어 출력하는 방법
print('num1은 num2보다 크다.') if (num1 > num2) else print('num1은 num2보다 크지 않다.')
'''
num1은 num2보다 크지 않다.
'''
  • 조건에 따라 실행문이 복잡해질 경우엔 이러한 조건식의 표현은 상당히 복잡해지거나 표현 자체가 불가능한 경우가 있어서, 가능하면 다음부터 설명할 조건문의 형태로 프로그래밍하는 것이 좋다.

1-2. 조건문(if문)

  • 참인 경우에만 실행되도록하는 가장 기본적인 문법인 if문을 먼저 살펴보도록 하자
  • if 조건식: 로 조건식을 명시하고, 다음 줄에서는 들여쓰기를 통해 실행문을 담아주어야 함
    • 세미콜론;으로 개행 없이도 표현할 순 있지만, 그다지 권장하진 않음
# if문 (참인 경우에만 실행시킨다) - 실행코드가 간단하면 개행 없이도 사용 가능
if 10 > 5 : print('10은 5보다 크다.'); print('5는 10보다 작다.')
'''
10은 5보다 크다.
5는 10보다 작다.
'''

# if문의 일반적인 들여쓰기 문법 - 이 방법이 가독성면에서도 더 좋으므로 권장함
if 10 > 5 :	#True
    print('10은 5보다 크다.')
    print('5는 10보다 작다.')
'''
10은 5보다 크다.
5는 10보다 작다.
'''
  • 거짓인 경우엔 실행이 되지 않으므로, 거짓인 경우에 대한 실행여부는 다음에 설명할 elif나 else문을 추가함으로써 실시할 수 있음

1-3. 양자 택일 조건문 (if~else문)

  • if문의 조건식이 False인 경우 실행문을 else문에 담아줌으로써 False인 경우에 대한 실행문을 지정해줄 수 있음
  • 조건식이 참이 되는 이외의 모든 경우를 else문으로 담아내기 때문에, 이러한 처리방식을 예외처리 방식이라고 부르기도 함
# 80점 이상이면 pass를, 그렇지 않으면 fail을 출력하는 조건문
pass_score = 80

# 간단한 함수를 통해 조건문을 정의하고 실행해보도록 하자 (들여쓰기에 주의)
def pass_or_fail(score):
    
    print('-'*10)
    
    if score >= 80:
        print('pass')
    else:
        print('fail')
        lack_score = pass_score - score
        print(f'{lack_score}점이 부족합니다.')
    
    print('-'*10)

# 70점인 경우 : fail
pass_or_fail(70)
'''
----------
fail
10점이 부족합니다.
----------
'''

# 90점인 경우 : pass
pass_or_fail(90)
'''
----------
pass
----------
'''

1-4. 다자 택일 조건문 (if~elif문)

  • if문의 조건식이 False인 경우 else문에 담아주어 실행할 수 있는데, 이때 추가적인 조건을 걸어줘야하는 다자 택일의 경우, else문 안에 if문을 중첩해서 사용해도 되지만, elif문을 통해 중첩하지 않고도 다자 택일 상황을 깔끔하게 코딩할 수 있음
    • elif = else + if (둘의 기능을 하나로 합친 것)
A_score = 80
B_score = 70

# elif를 쓰지 않은 다자 택일 조건문
def grade(score):
    if score >= A_score:
        print(score, end=', ')
        print('Grade : "A"')
    else:
        if score >= B_score:
            print(score, end=', ')
            print('Grade : "B"')
            lack_A = A_score - score
            print('A 기준과의 차이 : {}점'.format(lack_A))
        else:
            print(score, end=', ')
            print('Grade : "C"')
            lack_B = B_score - score
            print('B 기준과의 차이 : {}점'.format(lack_B))
    print()

grade(85)
grade(75)
grade(60)
'''
85, Grade : "A"

75, Grade : "B"
A 기준과의 차이 : 5점

60, Grade : "C"
B 기준과의 차이 : 10점

'''

# elif를 활용한 다자 택일 조건문
def grade(score):
    if score >= A_score:
        print(score, end=', ')
        print('Grade : "A"')
    elif score >= B_score:
        print(score, end=', ')
        print('Grade : "B"')
        lack_A = A_score - score
        print('A 기준과의 차이 : {}점'.format(lack_A))
    else:
        print(score, end=', ')
        print('Grade : "C"')
        lack_B = B_score - score
        print('B 기준과의 차이 : {}점'.format(lack_B))
    print()

grade(85)
grade(75)
grade(60)
'''
85, Grade : "A"

75, Grade : "B"
A 기준과의 차이 : 5점

60, Grade : "C"
B 기준과의 차이 : 10점
'''

1-5. 중첩조건문

  • 조건이 여러 종류인 경우엔 논리연산자(and, or, 등..)로 묶어서 관리해도 되지만, 조건을 설정하는 것이 다소 복잡해질 수 있어서, 이러한 경우엔 중첩 조건문을 통해서 분리하는 것이 더 효율적일 수 있음
# 입력이 숫자형이 아닌 경우를 예외처리하고, 숫자형이면 조건에 따라 실행하는 조건문
def grade(score):
    if type(score) in [int,float]:
        if score >= 80:
            print('score : {}, grade : A'.format(score))
        elif score >= 70:
            print('score : {}, grade : B'.format(score))
        else:
            print('score : {}, grade : C'.format(score))
    else:
        print('잘 못 입력하셨습니다. 숫자를 입력해주세요.')

grade('문자')
grade(85)
grade(75.5)
grade(60)
grade(True)
'''
잘 못 입력하셨습니다. 숫자를 입력해주세요.
score : 85, grade : A
score : 75.5, grade : B
score : 60, grade : C
잘 못 입력하셨습니다. 숫자를 입력해주세요.
'''

2. 반복문 (loop, iteration)

  • 반복문이란? 특정 실행을 반복하는 것
  • 반복문을 사용하면 프로그래밍이 간결해지고 유지 및 보수하기 쉬워짐
  • Python의 대표적인 반복문은 for문while문이 있음

2-1. for문

  • for문은 정해진 횟수나 범위 안에서 차례대로 대입하며 반복을 수행하는 것
  • 정확히는 iterator(이터레이터)라는 형태의 자료형의 요소를 차례로 대입하여 반복을 수행함
    • 대표적인 iterator 예시
      • list, tuple, series, ndarray
      • range()
      • np.arange()
      • .keys()
      • .values()
      • .items()
      • enumerate()
      • re.finditer()
    • 인덱스를 가지는 자료형은 인덱스의 순서대로 반복문이 실행됨
    • 딕셔너리나 세트처럼 순서의 의미가 없어도 반복문을 실행할 수는 있지만 대입되는 순서를 보장할 순 없긴함
  • 기본적으로 for 변수 in 이터레이터: 형태로 반복문을 지정하고, 들여쓰기를 통해 반복 실행할 명령문을 정의함

for문의 기본적인 사용법

# 구구단 출력
print('구구단 2단')
for i in range(1, 9+1): # 1부터 9까지 1의 간격으로 i를 설정해 반복함
    print(f"2 * {i} = {2*i}")

'''
구구단 2단
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
'''

for문의 다양한 활용법

  • list, tuple 출력
# list
data = [90, 45, 32, 44]
for i in range(len(data)):
   print(data[i], end=' ')
'''
90 45 32 44 
'''

# tuple
data = (90, 45, 32, 44)
for i in range(len(data)):
   print(data[i], end=' ')
'''
90 45 32 44 
'''
  • zip함수와 enumerate함수
    • zip함수는 동일 인덱스별로 하나의 튜플을 생성하는 함수
    • enumerate함수는 인덱스번호와 값의 튜플을 생성하는 함수
# 일반적인 반복문
a = [1,2,3,4,5]
b = [10,20,30,40,50]
for i in range(len(a)):
    print(a[i],b[i])
'''
1 10
2 20
3 30
4 40
5 50
'''

# zip함수 활용
a = [1,2,3,4,5]
b = [10,20,30,40,50]
c = zip(a,b)
print(list(c))
'''
[(1, 10), (2, 20), (3, 30), (4, 40), (5, 50)]
'''

# zip 함수 + 반복문
a = [1,2,3,4,5]
b = [10,20,30,40,50]
c = [100,200,300,400,500]
for x,y,z in zip(a,b,c):
    print(x,y,z)
'''
1 10 100
2 20 200
3 30 300
4 40 400
5 50 500
'''

# enumerate 함수
b = [10,20,30,40,50]
c = enumerate(b)
print(c)
for i in c:
    print(i)
'''
<enumerate object at 0x000002B1EEE7B8B8>
(0, 10)
(1, 20)
(2, 30)
(3, 40)
(4, 50)
'''

# enumerate 함수 + 반복문 활용
b = [10,20,30,40,50]
for i, x in enumerate(b):
    print(f"index '{i}' 값은 '{x}' 입니다")
'''
index '0' 값은 '10' 입니다
index '1' 값은 '20' 입니다
index '2' 값은 '30' 입니다
index '3' 값은 '40' 입니다
index '4' 값은 '50' 입니다
'''

# enumerate을 활용해 (zip 함수 + 반복문) 결과 재현하기
b = [10,20,30,40,50]
c = [100,200,300,400,500]
for i, v in enumerate(zip(b,c)): # index, (b,c)
    x, y = v	# (b,c) -> x, y
    print(i+1, x, y)
'''
1 10 100
2 20 200
3 30 300
4 40 400
5 50 500
'''
  • 딕셔너리의 for문 활용
# 딕셔너리 정의
dict_data = {
  "id": 1,
  "first_name": "kj",
  "last_name": "Cheong",
  "email": "dankool@naver.com",
  "gender": "Male",
  "ip_address": "123.123.123.23"
}

# key값 출력하기 (바로 돌리면 key값만 반환함)
for x in dict_data:
    print(x)
'''
id
first_name
last_name
email
gender
ip_address
'''

# .keys()로 key값 반복문 실행
for x in dict_data.keys():
    print(x)
'''
id
first_name
last_name
email
gender
ip_address
'''

# .values()로 value값 반복문 실행
for x in dict_data.values():
    print(x)
'''
1
kj
Cheong
dankool@naver.com
Male
123.123.123.23
'''

# .items()로 key, value의 튜플을 반환
for x in dict_data.items():
    print(x)
'''
('id', 1)
('first_name', 'kj')
('last_name', 'Cheong')
('email', 'dankool@naver.com')
('gender', 'Male')
('ip_address', '123.123.123.23')
'''

# .items()로 key, value를 따로 저장해 출력
for k,v in dict_data.items():
    print("Key: {:15s} Value: {}".format(k,v))
'''
Key: id              Value: 1
Key: first_name      Value: kj
Key: last_name       Value: Cheong
Key: email           Value: dankool@naver.com
Key: gender          Value: Male
Key: ip_address      Value: 123.123.123.23
'''
  • 중첩 반복문
# *의 갯수가 늘어나는 반복문을 작성해보기
for i in range(1, 5+1):	# i : 1 ~ 5
    for _ in range(i):	# i번 반복수행
        print('*', end='')
    print()	# 개행(enter)
'''
*
**
***
****
*****
'''

for문의 리스트 컴프리헨션

  • 간단한 반복문의 경우엔 한줄로 for문을 표현하여 리스트에 담아줄 수도 있는데 이렇게 한줄로 표현하여 리스트에 담는 것을 리스트 컴프리헨션(list comprehension)이라 함
list_i = []
for x in range(1, 19+1, 2): # 1부터 19까지 2의 간격으로
    list_i.append(x) # append로 리스트에 값을 추가
print(list_i)
'''
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
'''

# 컴프리헨션 (한줄로 간략하게)
list_i = [x for x in range(1,19+1,2)]
print(list_i)
'''
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
'''

# 조건문과 결합한 컴프리헨션
list_even = [x for x in range(1, 20+1) if x % 2 == 0]
print(list_even)
'''
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
'''

# 두개의 변수를 조합한 컴프리헨션(중첩반복문)
list_xy = [x+y for x in range(1,6+1) if x % 3 == 0 for y in range(1,10+1) if y % 3 == 1]
# x = [3, 6], y = [1, 4, 7, 10]
print(list_xy)
'''
[4, 7, 10, 13, 7, 10, 13, 16]
'''

# 조건문을 먼저 쓰는 컴프리헨션 (else도 써줘야함)
numbers = {'amy': 7, 'jane': 9, 'sophia': 5, 'jay': 10}

pas = {name: 'PASS' if number > 8 else 'NO PASS' for name, number in numbers.items()}

print(numbers)
print(pas)
'''
{'amy': 7, 'jane': 9, 'sophia': 5, 'jay': 10}
{'amy': 'NO PASS', 'jane': 'PASS', 'sophia': 'NO PASS', 'jay': 'PASS'}
'''

for문의 제어 (continue, break)

  • 특정 조건에서 반복을 건너뛰거나 멈추고자 할때 제어문을 통해 이를 수행할 수 있음
    • continue : 실행을 생략하고 다음 반복 실행문으로 넘어감
    • break : 반복을 멈추고 바로 빠져나옴
# continue
list_int = [1,2,3,4,5,6,7]
for i in list_int:
    if i % 3 == 0:	# 3의 배수인 경우 실행 건너뛰기
        continue
    else:
        print(i)
'''
1
2
4
5
7
'''

# break
list_int = [1,2,3,4,5,6,7]
for i in list_int:
    if i % 3 == 0:	# 3의 배수를 만나면 반복문 종료
        break
    else:
        print(i)
'''
1
2
'''

for ~ else문

  • for문의 중간에 break가 되었는지를 판단하는 방법으로써, for~else문을 활용할 수 있음
    • 반복문 내에 break를 두는 경우, break로 인해 반복문을 빠져나왔는지, 반복문이 끝까지 실행한 후에 멈추었는지를 확인 할 수 있음
  • 반복(for)문에서 break가 발생하지 않았을 경우의 동작을 else문에 적어준다.
    • 즉, break가 발생하지 않았을 경우에 else문이 동작하는 것
# else문이 실행되는 경우(끝까지 돌았다!)
for i in range(3):
    print('loop : ', i) # 1) 루프반복수행
else: 
    print('break가 실행되지 않았습니다.') # 2) else 구문 추가수행
'''
loop :  0
loop :  1
loop :  2
break가 실행되지 않았습니다.
'''

# else문이 실행되지 않는 경우(break로 빠져나왔다!)
for i in range(3):
  print('loop : ', i)
  if i == 1:
    break
else:
  print('break가 실행되지 않았습니다.')
'''
loop :  0
loop :  1
'''

2-1. while문

  • while문은 조건이 참(True)인 경우에 실행문을 반복 실시하고, 조건이 거짓(False)이 되는 경우에 반복을 중지하게 됨
  • 횟수에 의한 반복이 아닌 조건에 의한 반복을 수행하고자 할 경우엔 for문보다 while문을 이용하는 것이 좋음
  • 다만 거짓 조건을 제대로 명시하지 않으면 무한 반복이 이루어지는 무한루프에 빠질 가능성이 있기 때문에 거짓이 되는 조건에 대한 명시를 명확하게 해주어야 함!
    • 특정 조건에서 break문을 통해 반복문을 빠져나오는 방법도 있음
# while문의 기본 활용법 1 (boolean을 활용하기)
num = 0
sum_num = 0

flag = True
while flag == True:
    num += 1
    sum_num += num
    print(f"{num}까지의 합은 {sum_num}이다.")
    if sum_num >= 100:	# 종료조건
        flag = False
'''
1까지의 합은 1이다.
2까지의 합은 3이다.
3까지의 합은 6이다.
4까지의 합은 10이다.
5까지의 합은 15이다.
6까지의 합은 21이다.
7까지의 합은 28이다.
8까지의 합은 36이다.
9까지의 합은 45이다.
10까지의 합은 55이다.
11까지의 합은 66이다.
12까지의 합은 78이다.
13까지의 합은 91이다.
14까지의 합은 105이다.
'''

# while문의 기본 활용법 2 (조건을 바로 넣어주기)
num = 0
sum_num = 0

while sum_num <= 100:	# 실행 및 종료 조건
    num += 1
    sum_num += num
    print(f"{num}까지의 합은 {sum_num}이다.")
'''
1까지의 합은 1이다.
2까지의 합은 3이다.
3까지의 합은 6이다.
4까지의 합은 10이다.
5까지의 합은 15이다.
6까지의 합은 21이다.
7까지의 합은 28이다.
8까지의 합은 36이다.
9까지의 합은 45이다.
10까지의 합은 55이다.
11까지의 합은 66이다.
12까지의 합은 78이다.
13까지의 합은 91이다.
14까지의 합은 105이다.
'''

while문의 제어 (break) & while~else문

  • for문에서의 break처럼 while문에서도 break를 통해 반복문을 빠져나올 수 있음
  • 이때 break가 실행되지 않고 조건이 False가 되어 반복이 종료 되었다면 while~else문을 통해 else문을 실행시키는 것도 가능함
# 서로소 판별 문제
p_a = 9
p_b = 4

# 2부터 하나씩 더해 i가 5이상인 경우에 중단
i = 2
while i < min(p_a,p_b)+1:
  print('testing ...', i)
  if p_a % i == 0 and p_b % i == 0 :
    print('서로소가 아닙니다.')
  i += 1
else: # while문이 False일때 실행됨
  print('서로소입니다.')
'''
testing ... 2
testing ... 3
testing ... 4
서로소입니다.
'''

# 서로소가 아닌 경우라면?
p_a = 6
p_b = 4

i = 2
while i < min(p_a,p_b)+1:
  print('testing ...', i)
  if p_a % i == 0 and p_b % i == 0 :
    print('서로소가 아닙니다.')
  i += 1
else: # while문이 False일때 실행됨
  print('서로소입니다.')
'''
testing ... 2
서로소가 아닙니다.
testing ... 3
testing ... 4
서로소입니다.
''' 
# 서로소가 아닌 경우에 멈추지 않고 계속 실행되므로 제어가 필요함

# 서로소가 아닌경우 break를 실행하도록 수정하기
p_a = 6
p_b = 4

i = 2
while i < min(p_a,p_b)+1:
  print('testing ...', i)
  if p_a % i == 0 and p_b % i == 0 :
    print('서로소가 아닙니다.')
    break	# break를 통한 제어 (else문은 실행되지 않는다)
  i += 1
else: # while문이 False일때 실행됨
  print('서로소입니다.')
'''
testing ... 2
서로소가 아닙니다.
'''

3. 예외처리 (try문)

3-1. 오류의 종류 및 오류 명령문

  • 오류가 발생하는 경우나 조건이 False가 되는 경우를 예외 상황이라 가정할 때, 예외 상황을 처리하기 위한 처리방식을 예외처리라고 한다.
  • 오류의 종류는 크게는 다음과 같이 분류할 수 있음
    • IndentationError : 들여쓰기 오류
    • SyntaxError : 문법 오류 (콤마를 안찍거나 오타가 있는 경우 자주 발생)
    • KeyboardInterrupt : 함수 작동중에 강제로 멈추면 발생함(무한루프를 강제종료하는 경우 등등)
    • TypeError : 데이터 타입이 충돌하여 메소드를 쓸 수 없는 경우
      • 파이썬의 경우엔 변수 타입 지정을 철저하게 해야하는 언어가 아니라서 타입을 알아서 할당하긴 하지만, 간혹 입력 데이터 타입이 코드 진행과 맞지 않는 경우에 해당 오류가 발생할 수 있음
      • ValueError라는 형태로 에러가 표시되기도 함
    • ZeroDivisionError : 0으로 나누려 하는 경우 발생하는 오류
    • 경고(warning) : 경고는 명시적으로 보이지 않지만, 메모리 비효율/휴먼 에러 등이 발생할 우려가 있는 경우 경고창이 나타날 수 있고, 이로인해 코드를 돌릴 수 없거나 하는 것은 아니지만, 웬만하면 경고를 무시하지 않고 코드를 수정해 보는 편이 좋음
      • 간혹 경고문을 강제로 출력하지 않게 설정해서 코드를 실행하는 경우도 종종 있긴 함
# 0으로 나누는 경우 (ZeroDivisionError)
def my_devide():
  x = input('분자의 숫자를 입력 : ')
  y = input('분모의 숫자를 입력 : ')
  return int(x)/int(y)

print(my_devide())

'''
분자의 숫자를 입력 : 5
분모의 숫자를 입력 : 0

ZeroDivisionError: division by zero
'''
  • 프로그램 내부적으로 일부러 오류를 발생시키거나, 조건에 따라 False인 경우 오류를 발생시키도록 하는 명령어도 존재함
    • raise문 : raise Exception(’안내 문구')
      • 안내문구는 생략 가능하며, raise문이 실행되면 강제로 오류메세지를 출력하게 됨
    • assert문 : assert 조건식, '안내 문구'
      • 안내문구는 생략 가능함
      • 조건식이 False인 경우: AssertionError 예외가 발생함
      • 조건식이 True인 경우: 어떠한 메시지도 표시하지 않는다
      • 채점 프로그램이나 디버깅용으로 많이 쓰이는 구문임
      • assert not으로 참인 경우에 오류를 발생시킬 수도 있다
# raise문
a = '1'
if type(a) != int:
  raise Exception('a must be int type')
'''
Exception: a must be int type
'''

# assert문
a = '1'
# 거짓이면 문장 출력
assert type(a) == int, 'a must be int type'
'''
AssertionError: a must be int type
'''
# 참이면 문장 출력
assert not type(a) != int, 'a must be int type'
'''
AssertionError: a must be int type
'''

3-2. try ~ except ~ else ~ finally문

  • try문을 실행하고, 오류가 발생하면 except문을 실행하고, except문이 실행되지 않았을 경우엔 else문을 실행하며, 오류 발생 여부와 관계없이 finally문을 실행함

try ~ except문

  • 가장 기본적으로 예외처리를 수행할 수 있는 구문
  • 프로그램에 예외가 발생하더라도 프로그램을 중단 시키지 않고 예외에 대한 적절한 처리를 하여 프로그램을 계속 진행 시킬 수 있도록 하는 구문
def my_devide():
  try:
    x = input('분자의 숫자를 입력 : ')
    y = input('분모의 숫자를 입력 : ')
    return int(x)/int(y)
  except:
    # 문제 발생시 실행됨
    return '나누기를 실행 할 수 없음'

print(my_devide())

'''
분자의 숫자를 입력 : 5
분모의 숫자를 입력 : 0
나누기를 실행 할 수 없음
'''

try ~ except ~ else문

  • except문이 실행되지 않았을 경우 else 문이 실행되도록 하는 구문
def disneyland():
    try:
	      age = int(input("나이를 입력: "))
    except:
        print("숫자로 나이를 입력해주세요.")
    else:
        # 3세 미만은 공짜
        if age < 3:
            fee = 0
        # 3세~9세: 50,000
        elif age >= 3 and age < 10:
            fee = 50000
        else:
            fee = 100000
        return fee

disneyland()
'''
나이를 입력: 훗
숫자로 나이를 입력해주세요.
'''

disneyland()
'''
나이를 입력: 22
100000
'''

try ~ except ~ finally문

  • 오류 발생 유무와 관계없이 finally 코드를 무조건 실행함
def disneyland():
    try:
	    age = int(input("나이를 입력해주세요: "))
    except ValueError as 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()
'''
나이를 입력해주세요: 훗
숫자로 나이를 입력해주세요.
invalid literal for int() with base 10: '훗'
디즈니 랜드에 오신 것을 환영합니다~!
'''

마무리

  • Python에서 많이 쓰이는 if문, for문, while문, try문에 대해서 살펴보았음
  • 조건문 if문에서는 elif, else를 통해 예외 처리를 해주는 것이 효율적이고, 조건이 여러개인 경우엔 때로는 중첩조건문을 통해 접근하는 것이 더 효율적인 경우도 있으므로, 경우에 따라서 잘 판단해서 사용하면 될 듯
  • 반복문 for문while문에서는 횟수에 의한 반복인 경우엔 for문을 쓰는 것이 더 효율적이고, 조건에 의한 반복인 경우엔 while문을 쓰는 것이 좋음
    • for문과 while문 모두 break를 통해 반복문을 빠져나올 수 있고, for문에서는 continue를 통해 건너뛰는 것도 가능함
    • for문과 while문 모두 동일한 들여쓰기 위치에서 else문을 활용하여 break가 수행되지 않은 경우에 대한 실행문을 설정할 수 있음
  • 오류에 따른 예외처리는 try문을 통해 코드를 실행해보고 오류가 발생하면 except문을 실행하도록 할 수 있고, 오류가 발생하지 않은 경우엔 동일한 들여쓰기 위치에서 else문을 실행시킬 수 있었고 오류여부와 관계없이 finally문을 실행시키는 것도 가능함
  • 이외에도 python에는 다양한 구문들이 있고, 이러한 구문들은 다양한 예제들을 통해 익숙해지는 것이 가장 중요하다 생각함
  • 추후에 추가적으로 보완할 내용이 생기면 정보를 업데이트하여 글을 수정해보도록 하겠음..
  • 화이팅!!
profile
Machine Learning (AI) Engineer & BackEnd Engineer (Entry)

1개의 댓글

comment-user-thumbnail
2024년 10월 15일

잘 봤습니다. 내용이 아주 알차고 정리가 잘 되어 있네요.

답글 달기

관련 채용 정보