goodthings4me.tistory.com

파이썬 제어문 (조건문 if, 반복문 while, for)에 대해 정리를 하고, 연습문제도 풀어보는 포스팅입니다.
if문의 구조, 중첩 if문, 반복문(while, for)의 구조와 break, continue 사용하는 방법, range 함수, for문과 range 함수 사용, for문에서 리스트와 딕셔너리 요소(element)를 사용하는 방법 등을 정리했습니다.
파이썬 제어문 중 조건문(if 문)
파이썬 제어문 중 조건문인 if 문에 대한 구조 및 사용법
'''
형식1) if (조건식이 참이면 A 실행)
if 조건식:
A코드
형식2) if 조건식 else (조건식이 참이면 A 실행 아니면 B 실행)
if 조건식:
A코드
else:
B코드
형식3) if 조건식1 elif 조건식2 else (조건식1이 참이면 A 실행 아니면 조건식2가 참이면 B 실행 아니면 C 실행)
if 조건식1:
A코드
elif 조건식2:
B코드
else:
C코드
'''
▶ if 문 사용 예시
# 점수가 60점 이상인 경우 '합격' 출력
score = 60
if score >= 60:
print('합격')
# 점수가 60점 이상인 경우 '합격' 출력, 아니면 '불합격' 출력
score = 59
if score >= 60:
print('합격')
else:
print('불합격')
# 점수가 70점 이상인 경우 '합격', 69~50점이면 '재시험', 아니면 '불합격'
score = 60
if score >= 70:
print('합격')
elif score >= 50:
print('재시험')
else:
print('불합격')
### 실행 결과 ###
합격
불합격
재시험
▶ if 문과 논리 연산자 사용 예시
## 논리 연산자 사용하여
flag = True
if flag:
print('인터넷 검색 가능')
age = 17
has_ticket = True
if age >= 18 and has_ticket:
print('19금 영화 가능')
age = 30
idcard = False
if age >= 18 or idcard:
print('술 구매 가능')
## in, not in 연산자
text = 'python'
print('th' in text)
print('P' in text)
items = [1, 2, 3, 4, 5]
print(1 in items)
dict1 = { 'a' : 1, 'b' : 2, 'c' : 3 }
print('d' not in dict1)
### 실행결과 ###
인터넷 검색 가능
술 구매 가능
True
False
True
True
▶ 중첩 if 문
## 중첩 if 문
age = 20
hasIDCard = True
if age >= 20:
if hasIDCard:
print('술 구매 가능')
else:
print('신분증 미참으로 술 구매 불가')
else:
print('미성년자 술 구매 불가')
### 실행결과 ###
술 구매 가능
▶ if 문과 in 연산자
## if 문과 in 연산자
items = ['사과', '바나나', '포도', '수박']
# 사과가 itmes안에 있으면 '귤'을 items에 추가하고, 아니면 items에 '오렌지'를 추가하라
if '사과' in items:
items.append('귤')
else:
items.append('오렌지')
print(items)
### 실행결과 ###
['사과', '바나나', '포도', '수박', '귤']
▶ if 문의 조건부 표현식
## 조건부 표현식
# 1) [조건이 참인 경우] if [조건식] else [조건이 거짓인 경우]
score = 40
if score >= 60:
print('합격')
else:
print('불합격')
# 위 조건문을 조건부 표현식으로 표현
score = 40
print('합격') if score >= 60 else print('불합격')
score = 60
if score >= 70:
print('합격')
elif score >= 50:
print('재시험')
else:
print('불합격')
# 2) [조건식1이 참인 경우] if [조건식1] else [조건식2] if [조건식2] else [조건식1, 조건식2이 모두 거짓인 경우]
score = 60
result = '합격' if score >= 70 else '재시험' if score>= 50 else '불합격'
print(result)
### 실행결과 ###
불합격
불합격
재시험
재시험
▣ if 문 연습 #1
# 주어진 숫자가 홀수인지 짝수인지 확인하는 조건문 만들기
num = 122
if num % 2 == 0:
print('짝수')
else:
print('홀수')
### 실행결과 ###
짝수
▣ if 문 연습 #2) 중첩 if 문, in 연산자 사용
# 딕셔너리 자료 중 '자료구조' 과목이 있는지 확인하여 점수가 60점 이상이면 '이수 완료'를 출력, 조건이 맞지 않으면 '재수강'을 출력하는 조건문 만들기
subject = {'자료구조': 80, '알고리즘': 60, '네트워크': 90}
find_sub = '자료구조'
if find_sub in subject:
if subject[find_sub] >= 60:
print(f'{find_sub} 점수는 {subject[find_sub]}점으로 "이수완료" 입니다!')
else:
print(f'{find_sub} 점수는 {subject[find_sub]}점으로 "재수강" 해야 합니다!')
else:
print(f'이수 과목에 "{find_sub}"" 과목이 없습니다.')
### 실행결과 ###
자료구조 점수는 80점으로 "이수완료" 입니다!
파이썬 반복문(while 문, for 문)
파이썬의 반복문(while, for)에 대해 알아보기
while 문
## while 문 - 초기식, 변화식이 같이 있어야 함
while 조건식:
실행문
num = 1 # 초기식
while num <= 5:
print(num)
num = num + 1 # 변화식
### 실행결과 ###
1
2
3
4
5
count = 0
while count < 5:
count += 1 # count = count + 1
print(f'{count}번 반복')
print(f'{count}번 반복 후 종료')
### 실행결과 ###
1번 반복
2번 반복
3번 반복
4번 반복
5번 반복
5번 반복 후 종료
▶ while ~ break 또는 while ~ if ~ break
## break : 조건이 항상 참인 경우 무한 반복이 실행되는데, 이떄 실행을 중지시킴. 또는 특정 조건이 만족했을때 반복문을 빠져나가게 함.(강제 종료)
## while ~ break
while True:
print(True)
break
### 실행결과 ###
True
## while ~ if ~ break
count = 0
while True:
count += 1 # count = count + 1
if count == 3:
print(f'{count}번 반복 후 종료')
break
### 실행결과 ###
3번 반복 후 종료
▶ while ~ if ~ continue
## while ~ if ~ continue
# 조건을 만족하면 반복문 처음으로 보내서 다시 계속 실행하게 함 (특정 조건의 실행을 건너뛰기 할 때 사용)
count = 0
while count < 5:
count = count + 1
if count == 3:
continue
print(f'{count}번 반복')
### 실행결과 ###
1번 반복
2번 반복
4번 반복
5번 반복
for 문
## for 문 - iterator(문자, 리스트, 튜플 등의 자료형)의 요소가 없을 때까지 그 요소를 하나씩 가져와서 실행함.
for 변수 in [iterator 자료형]:
실행문
items = [1, 2, 3]
for item in items: # for item in [1, 2, 3] 처럼도 가능
print(item)
### 실행결과 ###
1
2
3
## 문자열 반복
data = 'Python'
for s in data:
print(s)
### 실행결과 ###
P
y
t
h
o
n
▶ for 문과 range 함수 사용하기
## for 문과 range 함수 사용
# range 함수는 주어진 특정 범위 안에 숫자를 생성하는 함수로 range(start, end, step)으로 표현하나 step은 생략 가능함
# start는 포함, end는 미포함(start 이상, end 미만임 즉, start <= x < end), step은 interval 개념임
# start의 default는 0이고, 변경 가능함
print(range(10))
# range(0, 10)
print(list(range(10)))
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list(range(1, 10)))
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list(range(1, 10, 2)))
# [1, 3, 5, 7, 9]
for i in range(10):
print(f'{i + 1}번 반복')
### 실행결과 ###
1번 반복
2번 반복
3번 반복
4번 반복
5번 반복
6번 반복
7번 반복
8번 반복
9번 반복
10번 반복
_even = ''
for i in range(2, 20, 2):
_even += str(i) + ' '
print(f'짝수: {_even}')
### 실행결과 ###
짝수: 2 4 6 8 10 12 14 16 18
score = [90, 88, 54, 70, 66, 99, 78, 96]
total = 0
count = 0
for s in score:
total += s
count += 1
print(f'합계: {total:,}점')
print(f'평균: {(total / count):.2f}점')
### 실행결과 ###
합계: 641점
평균: 80.12점
▶ for 문과 break, continue
## for ~ if ~ break
score = [90, 88, 54, 70, 66]
cnt = 0
for s in score:
if s < 60:
print(f'{cnt + 1}번째 과목이 60점 미만으로 반복문 종료')
break
cnt += 1
### 실행결과 ###
3번째 과목이 60점 미만으로 반복문 종료
## for ~ if ~ continue
total = 0
for s in score:
if s < 60:
continue
total += s
print(f'60점 이상인 점수 총합: {total}점')
### 실행결과 ###
60점 이상인 점수 총합: 314점
▶ for 문으로 리스트와 딕셔너리 요소(element) 가져오기
## 중첩 리스트(list) 값 받아오기
data = [[1, 2], [3, 4], [5, 6]]
for lst in data:
print(lst)
### 실행결과 ###
[1, 2]
[3, 4]
[5, 6]
for x, y in data:
print(x, y)
### 실행결과 ###
1 2
3 4
5 6
## 딕셔너리 키와 값 받아오기
data = {'a': 10, 'b': 20, 'c': 30}
for key in data: # 키 받아오기
print(key)
### 실행결과 ###
a
b
c
for val in data: # 값 받아오기
print(data[val])
### 실행결과 ###
10
20
30
for k, v in data.items(): # 키와 값 받아오기
print(k, v)
### 실행결과 ###
a 10
b 20
c 3
▣ for 문 연습 예시)
## 1부터 99까지 숫자의 합을 반복문을 사용해서 출력하기
tot = 0
for i in range(1, 100):
tot += i
print(f'1 ~ 99까지의 합계: {tot:,}')
### 실행결과 ###
1 ~ 99까지의 합계: 4,950
## 구구단 2단을 반복문을 사용해서 출력하기
dan = 2
for i in range(1, 10):
print(f'{dan} x {i} = {(dan * i):2d}')
### 실행결과 ###
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
for 문과 리스트 컴프리헨션
## 리스트 컴프리헨션 - List Comprehension (리스트 내 for 문)
# for 반복문을 통해 list 생성
# [[표현식] for [변수] in [interator 자료형] if [조건]]
res1 = [x for x in range(10) if x % 2 == 0]
print(res1)
# [0, 2, 4, 6, 8]
# [[조건이 참인 경우] if [조건] else [조건이 거짓일 경우] for [변수] in [자료형]]]
res2 = ['짝수' if x % 2 == 0 else '홀수' for x in range(5)]
print(res2)
# ['짝수', '홀수', '짝수', '홀수', '짝수']
블로그 인기글
엑셀 시트 분리 저장 - 엑셀 파일의 시트를 분리하여 저장하기
엑셀을 사용하다 보면 엑셀 시트를 분리해서 저장해야 할 때가 있다. 최근에도 이런 경우가 발생하여 구글링 후 엑셀 시트 분리 업무를 수행하고 내친김에 다른 사람들도 사용할 수 있도록 파이썬 tkinter로 프로그램으로 만들어 보았다. Excel Sheets 분리 저장하는 프로그램(with 파이썬 Tkinter) ※ 프로그램 다운로드(네이버 MYBOX에서 공유) : ExcelSeparateSheets.zip ▶ 프래그램을 실행하면 다음과 같이 초기 화면이 보인다. 찾아보기 : 엑셀 파일이 있는 폴더를 선택한다. (프로그램이 있는 최상위 디렉터리가 열린다) 실행하기 : 프로그램 실행 버튼 상태 변경 순서 : 실행전 → 실행 중 → Sheet "OOO" 분리 저장 중 → 실행 완료 실행 결과 확인 : 엑셀 파..
goodthings4me.tistory.com
[엑셀] 근무연수 및 근무 개월수 계산하는 함수
직장을 다니다 보면 몇 년 몇 개월 또는 전체 며칠을 다니고 있는지 궁금할 때가 있다. 아니면, 총무나 인사 일을 할 때 직원들의 근속연수 또는 근속개월수 등을 계산하고 싶을 때도 있다. 이런 경우 엑셀 함수를 활용하면 어떨까!! 근무연수 및 근무 개월수 계산 함수 알아보기 엑셀에서 근무연수 또는 근무 개월수 계산하는 것은 datedif() 함수를 사용하면 간단하게 해결할 수 있다. 아래 이미지를 보면서 설명하면, 셀 E1에 기준일자를 입력하고, 근무연수를 구할 때는 =datedif(B3,$E$1,"Y")&"년" 을 입력한다. 근무개월수는 =datedif(B3,$E$1,"M")&"개월" 처럼 입력한다. 일수까지 파악할 때문 별로 없지만, 심심풀이로 구해보고 싶을 때 =datedif(B3,$E$1,"D")..
goodthings4me.tistory.com
[국세청] 현금영수증가맹점으로 가입바랍니다. 메시지 해결방법(개인사업자)
▶ 현금영수증 가맹점 가입 메시지를 받고... 온라인 쇼핑몰 사업을 시작하려고 사업자등록증을 발급받고 난 후 얼마 안 있어서 국세청으로부터 어느 시점까지 '현금영수증 가맹점'으로 가입하라는 문자메시지가 받았었다. 그 메시지 기한이 오늘 도래했는데, 인터넷에서 찾아보니 홈택스에서 현금영수증 발급 사업자 신청을 할 수가 있었다. [관련내용] 홈>국세정책/제도>전자(세금)계산서/현금영수증/신용카드>현금영수증∙신용카드>가맹점가입 ▶ 홈택스 사이트에서 신청하는 절차는 다음과 같다. 우선, 홈택스에 로그인을 해야 합니다. 세상이 좋아져서 공인인증서 없이도 손쉽게 간편인증 로그인이 가능하다. 여러 인증방법 중 카카오톡 인증이 가장 편리한 거 같다. 간편인증 로그인 후 상단 '조회/발급' 탭 클릭 후 '현금영수증>현금..
goodthings4me.tistory.com
'코딩 연습 > 파이썬 기초(예제)' 카테고리의 다른 글
파이썬 특수문자 제거 정규식 (0) | 2023.12.06 |
---|---|
파이썬 입출력 - input(), open() 함수 사용 방법 (0) | 2023.12.04 |
파이썬 연산자, 변수, 자료형 알아보기 (0) | 2023.12.02 |
파이썬 리스트, 튜플, 딕셔너리, 세트 등에 대해 알아보기 (0) | 2023.12.02 |
파이썬 zip(), unzip() 함수 사용 예제 (0) | 2023.04.18 |
댓글