[Jump-to-Python] 제어문

2024. 12. 23. 02:21·Study/Python

제어문에는 조건문과 반복문이 존재합니다.

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' 카테고리의 다른 글

[이것이 코딩 테스트다 with 파이썬] | 코딩 테스트를 위한 파이썬 문법 | 입출력  (0) 2025.05.22
[이것이 코딩 테스트다 with 파이썬] | 코딩 테스트를 위한 파이썬 문법 | 자료형  (0) 2025.05.22
[이것이 코딩 테스트다 with 파이썬] | 코딩 테스트를 위한 파이썬 문법 | 알고리즘 성능 평가  (0) 2025.05.20
[Jump-to-Python] 파이썬의 입출력  (0) 2025.01.01
[Jump-to-Python] 자료형  (1) 2024.12.22
'Study/Python' 카테고리의 다른 글
  • [이것이 코딩 테스트다 with 파이썬] | 코딩 테스트를 위한 파이썬 문법 | 자료형
  • [이것이 코딩 테스트다 with 파이썬] | 코딩 테스트를 위한 파이썬 문법 | 알고리즘 성능 평가
  • [Jump-to-Python] 파이썬의 입출력
  • [Jump-to-Python] 자료형
Jio_ni
Jio_ni
안녕하세요!! 개발 공부를 하고 있는 뽀시래기 강지현입니다!!
  • Jio_ni
    지현이의 개발 블로그
    Jio_ni
  • 전체
    오늘
    어제
    • 분류 전체보기 (201)
      • LG AI (4)
      • About (0)
      • ELITE HACKER bootcamp (12)
        • Pre.web (12)
        • Main.web (0)
      • Naver BoostCamp (0)
        • Basic (0)
      • Study (31)
        • Python (13)
        • C언어 (0)
        • Java (0)
        • HTML (8)
        • CSS (0)
        • Linux (0)
        • Web hacking (0)
        • git (4)
        • 혼공학습단 (1)
        • 유니티 (1)
        • 코딩 자율학습단 (4)
      • Project (0)
      • 코딩테스트 (153)
        • CodeUp (76)
        • 프로그래머스 (20)
        • 백준 (47)
        • SWEA (10)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Python
    CodeUp
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
Jio_ni
[Jump-to-Python] 제어문
상단으로

티스토리툴바