공부해보잠
Python제어문 본문
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언어의 사용자 정의 함수와 유사하다.
- 반복적으로 사용되는 기능이나 단순한 연산은 클래스 없이 함수만 따로 정의해서 사용할 수 있다.
- 클래스 내부에서 정의된 메소드는 객체를 생성한 후 사용해야 하지만, 독립 함수는 언제든지 호출할 수 있다.
'자격증 > 정보처리' 카테고리의 다른 글
웹 프로그래밍 언어 -JavaScript (0) | 2025.02.19 |
---|---|
웹 프로그래밍 언어 -HTML (0) | 2025.02.19 |
Python의 기초 (0) | 2025.02.17 |
Java클래스 (0) | 2025.02.16 |
사용자 정의 함수 (0) | 2025.02.16 |