제어문에는 조건문과 반복문이 존재합니다.
1. 조건문 (if문)
if문은 조건을 판단하여 해당 조건에 맞는 상황을 수행하는데 사용하는 것입니다.
1-1. if문의 기본구조
if 조건문:
수행할 문장1
수행할 문장2
else:
수행할 문장A
수행할 문장B
들여쓰기 (indentation)
- Tab을 이용하면 됩니다.
- 파이썬은 들여쓰기를 강제로 해야합니다.
조건문 다음에 콜론(:)을 잊지 말아야 합니다.
# if문은 왜 필요할까?
money = True
if money:
print("택시를 타고 가라") # 택시를 타고 가라
else:
print("걸어가라")
1-2. 조건문이란 무엇인가?
if 조건문 : 참과 거짓을 판단하는 문장
1. 비교연산자
- < , > , == , != , >= , <=
# 비교연산자
x = 3
y = 2
print(x > y) # True
print(x < y) # False
print(x == y) # False
print(x != y) # True
# 비교연산자 사용_조건문 프로그래밍
money = 2000
if money >= 3000:
print("택시를 타고 가라")
else:
print("걸어가라") # 걸어가라
2. and, or, not
- x or y : x와 y 둘 중에 하나만 참이어도 참이다.
- x and y : x와 y 모두 참이어야 참이다.
- not x : x가 거짓이면 참이다.
# and, or, not
money = 2000
card = True
if money >= 3000 or card:
print("택시를 타고 가라") # 택시를 타고 가라
else:
print("걸어가라")
3. in, not in
- in
- x in 리스트
- x in 튜플
- x in 문자열
- not in
- x not in 리스트
- x not in 튜플
- x not in 문자열
만일 아무 일도 일어나지 않는 것을 원한다면 pass를 입력
# in, not in
print(1 in [1, 2, 3]) # True
# in, not in_2
pocket = ['paper', 'cellphone', 'money']
if 'money' in pocket:
print("택시를 타고 가라") # 택시를 타고 가라
else:
print("걸어가라")
1-3. 다양한 조건을 판단하는 elif
- 다중 조건 판단 가능하게 해줍니다.
- elif는 개수에 제한 없이 사용 가능합니다.
if <조건문>:
<수행할 문장1>
<수행할 문장2>
elif <조건문>:
<수행할 문장1>
<수행할 문장2>
elif <조건문>:
<수행할 문장1>
<수행할 문장2>
else:
<수행할 문장1>
<수행할 문장2>
pocket = ['paper', 'money', 'cellphone']
if 'money' in pocket:
pass
else:
print("카드를 꺼내라")
# 위 코드를 한 줄로 작성하면
pocket = ['paper', 'money', 'cellphone']
if 'money' in pocket: pass
else: print("카드를 꺼내라")
# elif
pocket = ['paper', 'cellphone']
card = True
if 'money' in pocket:
print("택시를 타고 가라")
elif card:
print("택시를 타고 가라") # 택시를 타고 가라
else:
print("걸어가라")
1-4. 조건부 표현식
변수 = 조건문이_참인_경우의 값 if 조건문 else 조건문이_거짓인_경우의_값
# 조건부 표현식
score = 100
message = "success" if score >= 60 else "failure"
print(message) # success
2. 반복문 (while문)
2-1. while문의 기본 구조
while문 : 반복해서 문장을 수행해야 할 경우
while <조건문>:
<수행할 문장1>
<수행할 문장2>
<수행할 문장3>
2-2. while문 만들기
- 변수를 미리 지정해놓지 않으면 다음에 나올 while문의 조건문에 변수가 존재하지 않는다는 오류가 발생합니다.
# while문 만들기
# prompt =
# 1. Add
# 2. Del
# 3. List
# 4. Quit
# Enter number :
number = 0
while number != 4:
print(prompt)
number = int(input())
2-3. while문 강제로 빠져나가기
- while문 안의 내용을 반복적으로 수행하는 데 강제로 while문을 빠져나가고 싶을 때가 있습니다. 그럴 때 강제로 멈추게 하는 break문을 사용하면 됩니다.
# while문 강제로 빠져나가기_커피 자판기
coffee = 10
money = 300
while money:
print("돈을 받았으니 커피를 줍니다.")
coffee -= 1
print(f"남은 커피의 양은 {coffee}개 입니다.")
if coffee == 0:
print("커피가 다 떨어졌습니다. 판매를 중지합니다.")
break
# while문 강제로 빠져나가기_커피 자판기_2
coffee = 10
while True:
money = int(input("돈을 넣어 주세요 : "))
if money == 300:
print("커피를 줍니다.")
coffee -= 1
elif money > 300:
print(f"거스름돈 {money - 300}를 주고 커피를 줍니다.")
coffee -= 1
else:
print("돈을 다시 돌려주고 커피를 주지 않습니다.")
print(f"남은 커피의 양은 {coffee}개 입니다.")
if coffee == 0:
print("커피가 다 떨어졌습니다. 판매를 중지합니다.")
break
2-4. while문의 맨 처음으로 돌아가기
- while문 안의 문장을 수행할 때 입력 조건을 검사해서 조건에 맞지 않으면 while문을 빠져나갑니다.
- 그러나 while문을 빠져나가지 않고 조건문을 맨 처음으로 다시 돌아가게 하려면 continue문을 사용합니다.
# continue
a = 0
while a < 10:
a += 1
if a % 2 == 0:
continue
print(a) # 1
# 3
# 5
# 7
# 9
2-5. 무한 루프
무한 루프 : 무한히 반복된다는 의미
- while문의 조건문이 True이므로 항상 참이 됩니다.
- 즉, while문 안에 있는 문장들은 무한하게 수행
- Ctrl + C 를 누르면 while문을 빠져나갈 수 있습니다.
# 무한 루프
while True:
print("Ctrl + C를 눌러야 while문을 빠져나갈 수 있습니다.")
3. 반복문 (for문)
while문과 비슷한 반복문이지만 for문은 문장 구조가 한 눈에 쏙 들어온다는 장점이 있습니다.
3-1. for문의 기본 구조
for 변수 in 리스트(또는 튜플, 문자열):
수행할 문장1
수행할 문장2
# 전형적인 for문
test_list = ['one', 'two', 'three']
for i in test_list:
print(i) # one
# two
# three
# 다양한 for문의 사용
a = [(1,2), (3,4), (5,6)]
for (first, last) in a:
print(first + last) # 3
# 7
# 11
# for문의 응용
# 총 5개의 학생이 시험을 보았는데 시험 점수가 60점 이상이면 합격이고 그렇지 않으면 불합격입니다.
# 합격인지 불합격인지 결과를 보여주시오.
scores = [60, 90, 80, 30, 55] # 학생들의 시험 점수 리스트
number = 0 # 학생들에게 붙여줄 번호
for score in scores"
number = number + 1
if score >= 60:
print(f"{number}번 학생은 합격입니다.")
else:
print(f"{number}번 학생은 불합격입니다.")
3-2. for문과 continue문
- for문 안의 문장을 수행하는 도중에 continue문을 만나면 for문의 처음으로 돌아가게 됩니다.
- 해당 조건문이 참이 되면 continue문 수행
# for문과 continue문
scores = [60, 40, 80, 30, 55] # 학생들의 시험 점수 리스트
number = 0 # 학생들에게 붙여줄 번호
for score in scores:
number = number + 1
if score < 60:
continue
print(f"{number}번 학생 축하합니다. 합격입니다.")
# 1번 학생 축하합니다. 합격입니다.
# 3번 학생 축하합니다. 합격입니다.
3-3. for문과 함께 자주 사용하는 range 함수
range 함수는 숫자 리스트를 자동으로 만들어주는 함수입니다.
- range(시작 숫자, 끝 숫자)
- 끝 숫자는 포함되지 않습니다.
- print함수가 기본적으로 줄바꿈을 포함하고 있습니다.
- 만일, print를 하지만 줄바꿈을 원치 않으면 end=" " 를 사용하면 됩니다.
# range 함수
a = range(1, 11)
print(a) # range(1, 11)
# range 함수 예시
add = 0
for i in range(1, 11):
add = add + i
print(add) # 55
# for과 range를 이용한 구구단
for i in range(2, 10):
for j in range(1, 10):
print(i*j, end=" ")
print(' ')
3-4. 리스트 컴프리헨션 사용하기
표현식 for 항목 in 반복가능객체 if 조건문
# 리스트 -> 리스트 컴프리헨션
a = [1, 2, 3, 4]
result = [num * 3 for num in a]
print(result) # [3, 6, 9, 12]
# 리스트 컴프리헨션_구구단
result = [x*y for x in range(2,10) for y in range(1,10)]
print(result) # 2단 구구단부터 9단 구구단
반응형
'Study > Python' 카테고리의 다른 글
[Jump-to-Python] 파이썬의 입출력 (0) | 2025.01.01 |
---|---|
[Jump-to-Python] 자료형 (0) | 2024.12.22 |