Notice
Recent Posts
Recent Comments
Link
250x250
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Archives
Today
Total
관리 메뉴

공부해보잠

Python제어문 본문

자격증/정보처리

Python제어문

heejk 2025. 2. 17. 22:17
Python의 제어문 

Python의 제어문은 프로그램의 흐름을 제어하는 if문(조건문), for문(반복문), while문(반복문) 등이 있다.
또한, Python은 객체 지향 프로그래밍을 지원하며, 클래스(Class)를 사용하여 객체를 정의할 수 있다.


if문

if문은 조건을 판단하여 코드 실행 여부를 결정하는 제어문이다.

 

기본구조

if 조건:
    실행할 코드
elif 조건:
    실행할 코드
else:
    실행할 코드

예제 - 숫자가 양수, 음수, 0인지 판단

# 사용자로부터 숫자를 입력받음
num = int(input("숫자를 입력하세요: "))

# 조건문을 이용하여 숫자의 상태 판별
if num > 0:
    print("양수입니다.")  # num이 0보다 크면 양수
elif num < 0:
    print("음수입니다.")  # num이 0보다 작으면 음수
else:
    print("0입니다.")  # num이 0이면 0 출력
숫자를 입력하세요: 5
양수입니다.

for문

for 문은 리스트, 튜플, 문자열 같은 시퀀스를 반복할 때 사용됩니다.

 

기본구조

for 변수 in 반복할_대상:
    실행할 코드

예제 - 리스트의 요소 출력

# 과일 목록을 리스트로 저장
fruits = ["사과", "바나나", "체리"]

# for 문을 이용하여 리스트의 각 요소 출력
for fruit in fruits:
    print(fruit)  # 현재 fruit에 저장된 과일 출력
사과
바나나
체리

예제 - range()를 이용한 반복

# 1부터 5까지 반복하며 숫자 출력
for i in range(1, 6):
    print(i)
1
2
3
4
5

while문

while 문은 주어진 조건이 참(True)인 동안 반복적으로 실행되는 반복문입니다.

 

기본구조

while 조건:
    실행할 코드

예제 - 1부터 5까지 출력

i = 1  # 초기값 설정
while i <= 5:  # i가 5 이하일 때 반복
    print(i)  # 현재 값 출력
    i += 1  # i 값을 1 증가시킴 (반복 종료 조건)
1
2
3
4
5

 

예제 - 무한 루프 (break 사용)

while True:  # 조건이 항상 참(True)이므로 무한 루프 실행
    num = int(input("숫자를 입력하세요 (0 입력 시 종료): "))
    
    if num == 0:  # 입력값이 0이면 루프 종료
        break
    
    print(f"입력한 숫자: {num}")  # 입력된 숫자 출력
숫자를 입력하세요 (0 입력 시 종료): 3
입력한 숫자: 3
숫자를 입력하세요 (0 입력 시 종료): 0

클래스(class)

클래스는 객체(Object)를 생성하기 위한 설계도이며,
객체는 클래스를 기반으로 생성된 실체입니다.

 

기본구조

class 클래스이름:
    def __init__(self, 매개변수1, 매개변수2):
        self.속성1 = 매개변수1
        self.속성2 = 매개변수2
    
    def 메소드(self):
        실행할 코드

 

예제 자동차 클래스

# Car 클래스 정의
class Car:
    # 생성자 (클래스가 객체를 만들 때 호출되는 특별한 메소드)
    def __init__(self, color, speed):
        self.color = color  # 자동차 색상 속성
        self.speed = speed  # 자동차 속도 속성

    # 자동차가 달리는 동작을 수행하는 메소드
    def drive(self):
        print(f"{self.color} 자동차가 {self.speed}km/h로 달립니다.")

# 객체 생성 (Car 클래스 기반)
car1 = Car("빨강", 100)  # 빨간 자동차, 속도 100km/h
car2 = Car("파랑", 120)  # 파란 자동차, 속도 120km/h

# 메소드 호출 (자동차가 달리도록 실행)
car1.drive()
car2.drive()
빨강 자동차가 100km/h로 달립니다.
파랑 자동차가 120km/h로 달립니다.

상속 (Inheritance)

클래스를 상속하면 기존 클래스(부모 클래스)의 기능을 확장하여 새로운 클래스를 만들 수 있습니다.

 

예제 - 상속을 이용한 SportsCar 클래스

# 부모 클래스 (Car)
class Car:
    def __init__(self, brand, speed):
        self.brand = brand  # 브랜드 이름
        self.speed = speed  # 속도

    def drive(self):
        print(f"{self.brand} 자동차가 {self.speed}km/h로 달립니다.")

# 자식 클래스 (SportsCar) - Car 클래스를 상속받음
class SportsCar(Car):
    def turbo(self):
        print(f"{self.brand}속도 증가!")

# SportsCar 객체 생성
myCar = SportsCar("페라리", 200)

# 부모 클래스의 메소드 사용 가능
myCar.drive()  # Car 클래스의 drive() 메소드 실행

# 자식 클래스의 새로운 기능 사용
myCar.turbo()  # SportsCar 클래스의 turbo() 메소드 실행
자동차가 200km/h로 달립니다.
속도 증가!

클래스 없는 메소드의 사용

Python에서는 C언어의 사용자 정의 함수처럼 클래스 없이도 독립적인 함수를 정의하고 사용할 수 있다.
이런 함수를 "전역 함수(Global Function)" 또는 "독립 함수" 라고 한다.

즉, 클래스 내에서 정의된 메소드가 아니라, 프로그램 어디서든 호출할 수 있는 일반적인 함수를 의미한다.

 

클래스 없이 함수만 단독으로 사용하기 (C언어의 사용자 정의 함수와 유사)

# 사용자 정의 함수 (클래스 없이 함수만 사용)
def add(x, y):  # 두 숫자를 더하는 함수
    return x + y

def greet(name):  # 인사 메시지를 출력하는 함수
    print(f"안녕하세요, {name}님!")

# 함수 호출
result = add(3, 5)
print("3 + 5 =", result)

greet("철수")
3 + 5 = 8
안녕하세요, 철수님!

클래스 없이 def 키워드를 사용하여 함수를 정의할 수 있다.
add(x, y) → 두 숫자를 더한 후 결과를 반환하는 함수
greet(name) → 입력받은 이름을 이용해 인사 메시지를 출력하는 함수

 

클래스 없는 메소드 vs 클래스 내부의 메소드 비교

구분 설명 예제
클래스 없는 함수 독립적인 함수로, 클래스 없이 사용 가능 def add(x, y): return x + y
클래스 내부의 메소드 객체를 생성한 후 사용 가능 (self 필요) class Car: def drive(self): print("자동차 주행")
def square(x):
    return x * x

print(square(4))  # 16 출력

 

요약

  • 클래스 없이 def 키워드를 사용하여 독립적인 함수를 정의할 수 있다.
  • 이런 함수는 "클래스 없는 메소드"라고 하며, C언어의 사용자 정의 함수와 유사하다.
  • 반복적으로 사용되는 기능이나 단순한 연산은 클래스 없이 함수만 따로 정의해서 사용할 수 있다.
  • 클래스 내부에서 정의된 메소드는 객체를 생성한 후 사용해야 하지만, 독립 함수는 언제든지 호출할 수 있다.
728x90

'자격증 > 정보처리' 카테고리의 다른 글

웹 프로그래밍 언어 -JavaScript  (0) 2025.02.19
웹 프로그래밍 언어 -HTML  (0) 2025.02.19
Python의 기초  (0) 2025.02.17
Java클래스  (0) 2025.02.16
사용자 정의 함수  (0) 2025.02.16