[python] 반복문과 함수 작성법

혜진·2024년 8월 6일

Python

목록 보기
5/16
post-thumbnail

Python 반복문과 사용자 정의 함수 작성법

for 문과 break, continue

break와 continue를 사용하여 반복 제어

📑 for 문과 break, continue 예제

print('\n반복문2->정규식을 첨부')

datas = [1, 2, 3, 4, 5]
for i in datas:
    if i == 3:
        break  # 3에서 반복문 탈출
    print(i, end=' ')
else:  # for문이 정상 종료될 때 실행
    print('반복문이 정상 종료될 때 수행')

# 출력: 1 2 

중첩 for 문과 리스트 컴프리헨션

중첩 for 문을 사용하여 복잡한 연산을 수행할 수 있으며,
리스트 컴프리헨션을 사용하여 간결하게 표현

📑 중첩 for 문과 리스트 컴프리헨션 예제

l1 = [3, 4, 5]
l2 = [0.5, 1.2]
for a in l1:
    for b in l2:
        print(a + b, end=' ')

# 출력: 3.5 4.2 4.5 5.2 5.5 6.2 

datas = [a + b for a in l1 for b in l2]
for d in datas:
    print(d, end=' ')

# 출력: 3.5 4.2 4.5 5.2 5.5 6.2

정규 표현식과 for 문

정규 표현식은 문자열 패턴 매칭에 유용하며, for 문과 함께 사용

📑 정규 표현식과 for 문 예제

import re

for test_str in ['111-1234', '일이삼-사오육칠', '222-2345']:
    # 숫자만 분리
    if re.match(r'^\d{3}-\d{4}$', test_str):
        print(test_str, '전화번호가 맞다')
    else:
        print(test_str, '이건 좀~')

# 출력:
# 111-1234 전화번호가 맞다
# 일이삼-사오육칠 이건 좀~
# 222-2345 전화번호가 맞다

range 함수

숫자 시퀀스를 생성하여 반복 작업에 활용

📑 range 함수 예제

print('range:', list(range(1, 6)))
# 출력: [1, 2, 3, 4, 5]

print('range2:', list(range(6)))
# 출력: [0, 1, 2, 3, 4, 5]

print('range3:', list(range(0, 11, 3)))
# 출력: [0, 3, 6, 9]

print('range4:', list(range(-10, -100, -20)))
# 출력: [-10, -30, -50, -70, -90]

print('range5:', set(range(1, 6)))
print('range6:', tuple(range(1, 6)))
# 출력:
# range5: {1, 2, 3, 4, 5}
# range6: (1, 2, 3, 4, 5)

📑 range와 for 문을 사용한 문제 해결

# 문제1: 1~100까지의 합
print('\n1~100까지의 합')
tot = 0
for i in range(1, 101):
    tot += i
print('결과:' + str(tot))
# 출력: 결과:5050

# 문제2: 구구단 2단~9단 출력
for i in range(2, 10):
    for j in range(1, 10):
        print('{}*{}={}'.format(i, j, i * j), end=' ')
    print()  # 라인스킵

# 출력:
# 2*1=2 2*2=4 ... 2*9=18
# ...
# 9*9=81

함수

함수는 특정 작업을 수행하는 코드 블록으로, 재사용성과 모듈화를 위해 사용

📑 기본적인 함수

# 매개변수 X, 반환값 X
def DoFunc1():
    print('DoFunc1 호출')

# 매개변수 O, 반환값 X
def DoFunc2(name):
    print('안녕', name)

# 매개변수 O, 반환값 O
def DoFunc3(arg1, arg2):
    re = arg1 + arg2
    return re

# 함수 호출
DoFunc1()
DoFunc2('한국인')
print(DoFunc3('대한', '민국'))

# 출력:
# DoFunc1 호출
# 안녕 한국인
# 대한민국

📑 함수 내 함수 호출

# 삼각형의 면적 계산
def Area_tri(a, b):
    c = a * b / 2
    Area_print(c)

def Area_print(c):
    print('삼각형의 면적은', c)

Area_tri(20, 30)

# 출력: 삼각형의 면적은 300.0

📑 반환값이 있는 함수

def Swap(a, b):
    return b, a

t = Swap(3, 4)
print('t=', t)

# 출력: t= (4, 3)

📑 가변 매개변수 함수

def ListHap(*ar):  # *ar은 가변 인수로 리스트, 세트, 튜플 형태의 자료
    print(ar)

list1 = [1, 3, 5]
list2 = [1, 2, 6]
ListHap(list1, list2)

# 출력: ([1, 3, 5], [1, 2, 6])

0개의 댓글