[python] 조건문, 반복문

seonyoung·2024년 7월 12일
0

📁 조건문

1) 조건문이란?

  • 프로그램의 흐름을 제어하는 중요한 요소 중 하나
  • 특정 조건이 참(True)인 경우에만 특정 코드 블록을 실행하도록 함
  • 조건문은 if, elif(else if의 줄임말), else 키워드를 사용하여 구성됨
    ex)
x = 10
if x > 0:
	  print("양수입니다.")
elif x < 0:
    print("음수입니다.")
else:
    print("0입니다.")

2) 들여쓰기 및 띄어쓰기의 중요성

  • 올바른 들여쓰기 예시
x = 10

if x > 5:
    print("x는 5보다 큽니다.")
else:
    print("x는 5보다 작거나 같습니다.")

-> if문과 else문이 서로 다른 인덴트 수준에 위치하며, 이것은 각각의 블록이 어디서 시작하고 끝나는지 명확하게 보여줌

  • 잘못된 들여쓰기
x = 10

if x > 5:
print("x는 5보다 큽니다.")
else:
print("x는 5보다 작거나 같습니다.")

-> print문이 각각의 블록 안에 있는 것처럼 보이지만 파이썬은 들여쓰기를 통해 블록을 식별하기 때문에 뜰여쓰기가 제대로 이루어지지 않으면 오류가 발생함

  • 들여쓰기의 중요성
x = 10

if x > 5:
    print("첫 번째 블록 시작")
    if x < 15:
        print("두 번째 블록 시작")
else:
    print("첫 번째 블록 끝")

-> 들여쓰기를 사용하여 블록이 서로 어떻게 연결되어 있는지 명확하게 보여주며, 첫 번째, if문의 내부에 두 번째 if문이 있는 것을 알 수 있음

3) 연산자

  • 파이썬에서 조건을 판단하기 위해 비교 연산자를 사용
    • > : 초과
    • < : 미만
    • >= : 이상
    • <= : 이하
    • == : 같음
    • != : 같지 않음
  • 조건을 결합할 때 사용하는 논리 연산자도 알아두면 유용
    • and : 모두 참일 때 참
    • or : 하나 이상이 참일 때 참
    • not : 조건을 부정
  • x가 양수이고 짝수인지를 판별하는 메시지 출력 예시
x = 10
if x > 0 and x % 2 == 0:
    print("양의 짝수입니다.")

4) 조건문의 다양한 예시

  • 논리 연산자를 사용하는 다중 조건식
  • 논리 연산자 and, or를 사용하여 여러 개의 조건식 결합 예시
x = 10
y = 5

if x > 5 and y < 10:
    print("x는 5보다 크고, y는 10보다 작습니다.")
elif x <= 5 or y > 10:
    print("x는 5보다 작거나 같거나, y는 10보다 큽니다.")
else:
    print("다른 조건")
  • and, or, not 연산자를 사용하여 다중 조건식 활용 예시
x = 10
y = 7

if x > 5 and y < 10:
    print("x는 5보다 크고, y는 10보다 작습니다.")

if x < 5 or y > 10:
    print("x는 5보다 작거나, y는 10보다 큽니다.")

if not (x == 5):
    print("x는 5와 같지 않습니다.")
  • 조건문 중첩 사용 예시
x = 10
if x > 0:
    if x % 2 == 0:
        print("양의 짝수입니다.")
    else:
        print("양의 홀수입니다.")
else:
    print("음수 또는 0입니다.")

5) 조건문의 짧은 표현

  • 한 줄로 간략하게 표현 가능
  • 조건식이 참일 경우 "양의 짝수"를, 거짓일 경우 "음수 또는 0" 출력
x = 10
result = "양의 짝수" if x > 0 and x % 2 == 0 else "음수 또는 0"
print(result)

📁 반복문

1) for문이란?

  • for반복문은 데이터 분석 및 다른 프로그래밍 작업에서 매우 유용
  • for반복문의 구조
for 변수 in 반복할_데이터:
    코드_블록
  • 여기서 "순회할_데이터"는 리스트, 튜플, 문자열 등과 같은 반복 가능한(iterable) 데이터 타입이 될 수 있음
  • "변수"는 각 반복(iteration)마다 현재 값을 가지는 변수

2) for문 기본 사용법

  • 리스트 순회하기
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

-> "apple", "banana", "cherry"를 순서대로 출력

  • 문자열 순회하기
for letter in "hello":
    print(letter)

-> "h", "e", "l", "l", "o"를 순서대로 출력

  • range() 함수와 함께 사용하기
for i in range(5):
    print(i)

-> 0부터 4까지의 숫자를 출력

📌 range()함수

  • 연속된 정수를 생성하는 데 사용되는 내장 함수
  • 시작값(start), 끝값(stop), 그리고 증가값(step)을 인자로 받아 사용
  • 주로 반복문에서 사용되며, 특히 for 루프와 함께 자주 사용
range(stop)
range(start, stop)
range(start, stop, step)
  • start: 순차적인 정수 시퀀스의 시작 값을 나타냅니다. 이 값은 생략 가능하며, 기본값은 0
  • stop: 순차적인 정수 시퀀스의 끝 값을 나타냅니다. 이 값은 필수적으로 지정되어야 합니다. 단, 실제로 생성되는 마지막 숫자는 이 값보다 작음
  • step: 각 숫자 사이의 간격을 나타냅니다. 이 값은 생략 가능하며, 기본값은 1

-- range(start, stop, step) --

# 1부터 시작하여 10 이전까지 2씩 증가하는 정수 시퀀스 생성
for i in range(1, 10, 2):
    print(i, end=' ')
# 출력: 1 3 5 7 9
  • 딕셔너리 순회하기
person = {"name": "John", "age": 30, "city": "New York"}
for key, value in person.items():
    print(key, " : ", value)

-> 딕셔너리의 키와 값 쌍을 출력

3) 조건문과 함께 사용

  • 짝수만 출력
for i in range(1, 11):
    if i % 2 == 0:
        print(i)
  • 1부터 100까지의 숫자 중 3의 배수 출력
# 조건문과 반복문을 복합적으로 활용하여 1부터 100까지의 숫자 중 3의 배수 출력
for i in range(1, 101):
    if i % 3 == 0:
        print(i)
  • 리스트에서 특정 값 걸러내기
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = []
for num in numbers:
    if num % 2 == 0:
        even_numbers.append(num)
print(even_numbers)

-> 짝수만 골라내어 새로운 리스트에 저장한 후 출력

  • 문자열에서 특정 문자 제거
sentence = "Hello World"
result = ""
for char in sentence:
    if char != "o":
        result += char
print(result)

-> "o"를 제외한 모든 문자를 새로운 문자열에 추가하여 출력

  • 딕셔너리에서 특정 조건에 맞는 항목 출력하기
ages = {"John": 30, "Jane": 25, "Doe": 35, "Alice": 20}
for name, age in ages.items():
    if age > 25:
        print(name, " is older than 25")

-> 값이 35보다 큰 경우에 대해 이름과 함께 메시지 출력

4) 이중 for문 사용

  • 이중 for문을 사용하면 중첩된 데이터 구조를 탐색하거나 이차원 데이터를 처리할 수 있음
  • 이를 통해 데이터를 보다 복잡하게 처리하고 원하는 패턴을 찾을 수 있음
    -- 구구단 출력 --
for i in range(2, 10):
    for j in range(1, 10):
        print(i, "x", j, "=", i*j)

📁 반복문 - while문

1) while이란?

  • 파이썬의 반복문 중 하나인 while문은 조건을 만족하는 동안 코드 블록을 반복적으로 실행
  • while문은 특정 조건이 참(True)일 때에만 실행되며, 조건이 거짓(False)이 될 때까지 반복
  • 파이썬 while문의 구조
while 조건:
    코드_블록
  • 여기서 "조건"은 불리언(boolean) 값(True 또는 False)을 반환하는 표현식
  • 조건이 True로 평가될 때까지 코드 블록이 반복적으로 실행

2) whil문의 기본 사용법

  • 1부터 5까지 출력
i = 1
while i <= 5:
    print(i)
    i += 1

-> 1부터 5까지의 숫자를 출력합니다. while문을 사용하여 변수 i가 5 이하일 때까지 반복하여 숫자를 출력하고, 반복마다 i를 1씩 증가

  • 사용자 입력 받기
user_input = ''
while user_input != 'quit':
    user_input = input("Type 'quit' to exit: ")
    print("You typed:", user_input)

-> 사용자로부터 'quit'을 입력할 때까지 사용자 입력을 받습니다. 사용자가 'quit'을 입력하면 while문이 종료

  • 무한 루프와 break문 (반드시 ‘break’와 같은 반복을 끝내는 장치를 잘 만들어 둬야 함)
while True:
    user_input = input("Type 'quit' to exit: ")
    if user_input == 'quit':
        break
    print("You typed:", user_input)

-> 무한 루프를 생성하고 사용자가 'quit'을 입력하면 루프를 종료, 이때 break문이 사용

📌 특정 조건에 따라 반복 동작을 제어할 제어문을 함께 자주 사용

  • break, pass, continue는 각각 반복문의 동작을 중단하거나 다음 반복으로 이동하거나 아무 동작을 하지 않고 다음으로 넘어가는 데 사용
  • break 예시
# 사용자가 'quit'을 입력할 때까지 반복하여 숫자를 입력받고 합을 출력
total = 0
while True:
    num = input("숫자를 입력하세요 (종료하려면 'quit' 입력): ")
    if num == 'quit':
        break
    total += int(num)

print("합:", total)

-> break 문은 사용자가 'quit'을 입력할 때 반복문을 종료

  • pass 예시
# 홀수를 출력하는 코드에서 짝수일 경우에는 아무 작업도 수행하지 않고 넘어감
numbers = [1, 2, 3, 4, 5]
for num in numbers:
    if num % 2 == 0:
        pass
    else:
        print(num, "은 홀수입니다.")

-> pass 문은 아무런 동작을 하지 않고 다음 반복을 계속함
-> 홀수를 출력하는 반복문에서 짝수일 경우 아무 작업도 하지 않고 다음 반복을 진행

  • continue 예시
# 1부터 10까지의 숫자 중 짝수를 출력
num = 0
while num < 10:
    num += 1
    if num % 2 == 1:
        continue
    print(num)

-> continue 문은 짝수일 경우에만 출력을 수행하고, 홀수일 경우 다음 반복을 진행

  • 조건에 따른 특정 동작 반복
count = 0
while count < 3:
    print("Hello")
    count += 1

-> "Hello"를 세 번 출력합니다. count 변수를 사용하여 while문이 세 번 반복되도록 설정

num = 5
factorial = 1
while num > 0:
    factorial *= num
    num -= 1
print("Factorial of 5 is:", factorial)

-> while문을 사용하여 5의 팩토리얼을 계산

profile
원하는 바를 이루고 싶은 사람입니다.

0개의 댓글