Chapter 01. if 문
프로그래밍에서 조건을 판단하여 해당 조건에 맞는 상황을 수행하는 데 쓰는 것
✔️if 문의 기본 구조
if 조건문 :
수행할_문장 1
수행할_문장 2
else :
수행할_문장 A
✅ if 문 구조의 특징
- 조건문을 테스트해서 참이면 if문 바로 다음 문장들을 수행하고 거짓이라면 else 문 다음 문장들을 수행한다.
- else 문은 if 문 없이 독립적으로 사용할 수 없다.
✅ if 문 사용 시, 주의사항
- 수행할 문장들에 대해서는 반드시 들여쓰기를 해야한다.
- 조건문 뒤에 콜론(:) 잊지 말기!
✔️조건문에서 사용되는 연산자
➰ 비교 연산자
- x < y : x가 y보다 작다.
- x > y : x가 y보다 크다.
- x == y : x와 y가 같다.
- x != y : x와 y가 같지 않다.
- x >= y : x가 y보다 크거나 같다.
- x <= y : x가 y보다 작거나 같다.
➰ and, or, not
- x or y : x와 y 둘 중 하나만 참이어도 참이다.
- x and y : x와 y 모두 참이어야 한다.
- not x : x가 거짓이면 참이다.
money = 2000
card = True
if money >= 3000 or card:
print("택시를 타고 가라")
else:
print("걸어가라")
# 택시를 타고 가라
➰ in, not in
- x in 리스트/튜플/문자열
- x not in 리스트/튜플/문자열
pocket = ['paper', 'cellphone', 'money']
if 'money' in pocket:
print("택시를 타고 가라")
else:
print("걸어가라")
# 택시를 타고 가라
⏩ 조건문에서 아무 일도 하지 않게 설정하고 싶다면 "pass" 사용!
pocket = ['paper', 'cellphone', 'money']
if 'money' in pocket:
pass
else:
print("카드를 꺼내라")
# 참이므로 조건문 다음 문장인 pass가 수행되고 아무런 결과 값도 출력되지 않는다.
✔️다양한 조건을 판단하는 elif
if 조건문 :
수행할_문장 1
수행할_문장 2
elif 조건문 :
수행할_문장 1
수행할_문장 2
else :
수행할_문장 1
수행할_문장 2
pocket = ['paper', 'cellphone']
card = True
if 'money' in pocket:
print("택시를 타고 가라")
elif card:
print("택시를 타고 가라")
else:
print("걸어가라")
# 택시를 타고 가라
✔️조건부 표현식
➰ 조건부 표현식 구조
변수 = 조건문이_참인_경우의_값 if 조건문 else 조건문이_거짓인_경우의 값
message = "success" if score >= 60 else "failure"
Chapter 02. while 문
조건문이 참인 동안 while 문에 속한 문장들이 반복해서 수행
✔️while 문의 기본 구조
while 조건문:
수행할_문장 1
수행할_문장 2
수행할_문장 3
treeHit = 0
while treeHit < 10:
treeHit = treeHit + 1
print("나무를 %d번 찍었습니다." %treeHit)
if treeHit == 10:
print("나무 넘어갑니다.")
✔️while 문 만들기
while 문을 만들 때에는 반드시 변수를 먼저 생성하고 0을 대입해주어야 한다. while 문을 만들기 전에 while 문에서 사용할 변수를 먼저 설정해 놓지 않으면 다음에 나올 조건문에서 해당 변수가 존재하지 않는다는 오류가 발생한다.
number = 0 # 번호를 입력받을 변수
while number != 4: # 입력받은 번호가 4가 아닌 동안 반복
print(prompt)
number = int(input())
✔️while 문 강제로 빠져나오기
while 문을 반복적으로 수행하는 상황에서 강제로 빠져나가고 싶을 경우 break 문을 사용해서 강제로 멈추게 한다.
coffee = 10
while True:
money = int(input("돈을 넣어 주세요 : "))
if money == 300:
print("커피를 줍니다.")
coffee = coffee - 1
elif money > 300:
print("거스름돈 %d를 주고 커피를 줍니다." %(money-300))
coffee = coffee - 1
else:
print("돈을 다시 돌려 주고 커피를 주지 않습니다.")
print("남은 커피의 양은 %d개 입니다." %coffee)
if coffee == 0:
print("커피가 다 떨어졌습니다. 판매를 중지합니다.")
break # coffee가 0일 경우 break 문으로 while 문을 강제로 종료한다.
✔️while 문의 맨 처음으로 돌아가기
while 문을 빠져나가지 않고 while 문의 맨 처음으로 다시 돌아가게 만들고 싶은 경우가 생긴다. 이때 continue 문을 사용하여 while 문의 맨 처음으로 돌아갈 수 있다.
a = 0
while a < 10:
a = a + 1
if a % 2 == 0: continue # a를 2로 나누었을 때 나머지가 0이면 맨 처음으로 돌아간다.
print(a)
✔️무한 루프
무한 루프의 개념은 일반 프로그램에서 굉장히 자주 쓰인다. 파이썬에서 무한 루프는 while 문으로 구현할 수 있다. 다음은 무한 루프의 기본 형태이다.
while True: # 조건문이 True로 항상 참을 의미한다.
수행할_문장 1
수행할_문장 2
⏩ 무한 루프는 Ctrl + C를 눌러 빠져나갈 수 있다.
Chapter 03. for 문
while 문과 비슷한 반복문인 for 문은 문장 구조가 한눈에 들어온다는 장점이 있다.
✔️for 문의 기본 구조
for 변수 in 리스트 (또는 튜플, 문자열) :
수행할_문장 1
수행할_문장 2
✔️예제를 통해 for 문 이해하기
1️⃣ 전형적인 for 문
test_list = ['one', 'two', 'three']
for i in test_list:
print(i)
"""
one
two
three
"""
2️⃣ 다양한 for 문의 사용
a = [(1, 2), (3, 4), (5, 6)]
for (first, last) in a:
print(first + last)
"""
3 ← first: 1, last: 2
7 ← first: 3, last: 4
11 ← first: 5, last: 6
"""
3️⃣for 문의 응용
marks = [90, 25, 67, 45, 80]
number = 0
for mark in marks:
number = number + 1
if mark >= 60:
print("%d번 학생은 합격입니다." %number)
else:
print("%d번 학생은 불합격입니다." %number)
✔️for 문의 다양한 활용
➰ for 문과 continue 문
for 문 안의 문장을 수행하는 도중 continue 문을 만나면 for 문의 처음으로 돌아가게 된다.
marks = [90, 25, 67, 45, 80]
number = 0
for mark in marks:
number = number + 1
if mark < 60:
continue # mark < 60이 참일 경우 continue문이 수행되어 for문의 처음으로 돌아간다.
print("%d번 학생 축하합니다. 합격합니다." %number)
➰ for 문과 함께 자주 사용하는 range 함수
for 문은 숫자 리스트를 자동으로 만들어 주는 range 함수와 함께 사용하는 경우가 많다.
marks = [90, 25, 67, 45, 80]
for number in range(len(marks)): # range(len(marks)) → range(5)
if marks[number] < 60:
continue
print("%d번 학생 축하합니다. 합격입니다." %(number + 1))
➕ for 문과 range를 이용한 구구단
for i in range(2, 10):
for j in range(1, 10):
print(i*j, end=" ")
print('')
➰ 리스트 컴프리헨션 사용하기
⏩ 리스트 컴프리헨션 : 리스트 안에 for 문을 포함하는 구문으로, 기본구조는 아래와 같다.
[표현식 for 항목 in 반복_가능_객체 if 조건문]
리스트 컴프리헨션을 사용한 예제는 아래와 같다.
a = [1, 2, 3, 4]
result = [num*3 for num in a if num%2 == 0]
print(result)
# [6, 12] 출력됨
리스트 컴프리헨션은 for 문을 2개 이상 사용하는 것도 가능하다.
result = [x*y for x in range(2, 10)]
for y in range(1, 10)]
print(result) # 2부터 9단까지 구구단이 출력됨
참고 자료 : Do it! 점프 투 파이썬 전면 개정 2판
'Programming > Python' 카테고리의 다른 글
[파이썬 입출력] 함수 (0) | 2023.07.30 |
---|---|
[파이썬 기초] 자료형 (0) | 2023.07.16 |