for 문과 break, continue
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 문을 사용하여 복잡한 연산을 수행할 수 있으며,
리스트 컴프리헨션을 사용하여 간결하게 표현
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 문과 함께 사용
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 함수
숫자 시퀀스를 생성하여 반복 작업에 활용
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)
# 문제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])