본문 바로가기
IT & AI/AI 지식

파이썬(Python) 제어문과 입출력 정리

by 빛나는해커 2024. 11. 14.

1. 제어문

(1) IF 문

  • if 문은 조건에 따라 프로그램의 흐름을 제어하고 싶을 때, if 문을 사용한다.
  • 예를 들어, 특정 조건을 만족할 때만 어떤 작업을 실행하거나 다르게 동작하도록 만들고 싶을 때 사용한다.
  • if 문은 조건이 참일 때 특정 블록을 실행하는 구조로 되어 있다.
  • 기본 구조는 다음과 같다.
# if 문 기본 구조 예시
x = 10
if x > 5:
    print("x는 5보다 큽니다.")
  • 파이썬에서는 들여 쓰기가 매우 중요하다.
  • if 문 아래의 코드 블록은 반드시 들여 쓰기 해야 한다.
  • 파이썬은 들여쓰기를 통해 코드의 블록을 구분한다.
  • if 문에서 사용되는 조건문은 참(True) 또는 거짓(False)을 반환하는 표현식이다.
  • 예를 들어, x > 10과 같은 표현은 조건문으로 사용된다.
  • 조건이 여러 가지인 경우, elif 문을 사용하여 여러 조건을 판단할 수 있다.
# elif 문 사용 예시
x = 10
if x > 15:
    print("x는 15보다 큽니다.")
elif x > 5:
    print("x는 5보다 큽니다.")
else:
    print("x는 5 이하입니다.")
  • 조건부 표현식은 간단한 조건에 따라 값을 선택할 때 사용된다.
# 조건부 표현식 예시
y = 10
result = "크다" if y > 5 else "작다"
print(result)  # 출력: 크다

 

(2) while 문

  • while 문은 조건이 참인 동안 반복해서 코드 블록을 실행한다.
  • 기본 구조는 다음과 같다.
# while 문 기본 구조 예시
count = 0
while count < 5:
    print(count)
    count += 1
  • 반복문에서 break 문을 사용하여 조건과 상관없이 강제로 빠져나갈 수 있다.
# break 사용 예시
count = 0
while True:
    print(count)
    if count == 3:
        break
    count += 1
  • continue 문을 사용하면 현재 반복을 건너뛰고 while 문의 처음으로 돌아간다.
# continue 사용 예시
count = 0
while count < 5:
    count += 1
    if count % 2 == 0:
        continue
    print(count)
  • while True: 구문을 사용하면 무한히 반복되는 루프를 만들 수 있다.
  • 이는 프로그램이 특정 조건을 만족할 때까지 반복 수행해야 할 때 유용하다.
# 무한 루프 예시
while True:
    user_input = input("종료하려면 'exit'을 입력하세요: ")
    if user_input == 'exit':
        break

 

(3) for 문

  • for 문은 시퀀스 자료형(리스트, 문자열 등)의 각 요소를 순서대로 순회할 때 사용한다.
# for 문 기본 구조 예시
numbers = [1, 2, 3, 4, 5]
for number in numbers:
    print(number)
  • for 문은 리스트, 문자열 등의 요소를 하나씩 꺼내와 반복 작업을 수행할 수 있다.
# 리스트 요소 반복 예시
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)
  • continue 문을 사용하면 반복문 내에서 특정 조건에 해당하는 경우 현재 반복을 건너뛰고 다음 반복을 수행한다.
# continue 사용 예시
for i in range(5):
    if i == 2:
        continue
    print(i)  # 출력: 0, 1, 3, 4
  • range() 함수는 지정된 범위의 숫자를 생성하여 for 문에서 반복하는 데 자주 사용된다.
# range 사용 예시
for i in range(1, 6):
    print(i)  # 출력: 1, 2, 3, 4, 5
  • 리스트 컴프리헨션은 for 문을 사용하여 간결하게 리스트를 생성하는 방법이다.
# 리스트 컴프리헨션 예시
squares = [x ** 2 for x in range(1, 6)]
print(squares)  # 출력: [1, 4, 9, 16, 25]

 


2. 파이썬(Pyhon)의 입출력

(1) 함수

  • 함수는 하나의 작업을 수행하는 코드의 모음이다.
  • 반복되는 코드를 재사용할 수 있도록 해준다.
  • 코드를 재사용하고 가독성을 높이며 유지보수를 쉽게 하기 위해 함수를 사용한다.
  • 함수는 def 키워드를 사용해 정의하며, 함수 이름과 괄호로 이루어진다.
# 함수 정의 예시
def greet():
    print("Hello, world!")

greet()  # 함수 호출
  • 함수는 매개변수를 사용해 입력값을 받을 수 있으며, 호출할 때 인수를 전달한다.
# 매개변수와 인수 예시
def greet(name):
    print(f"Hello, {name}!")

greet("Alice")  # 출력: Hello, Alice!
  • 함수는 입력값이 없을 수도 있고, 리턴값이 없을 수도 있다.
# 입력값과 리턴값 예시
def add(a, b):
    return a + b

result = add(3, 4)
print(result)  # 출력: 7
  • 함수를 호출할 때 매개변수 이름을 지정하면, 순서에 상관없이 값을 전달할 수 있다.
# 매개변수 지정 호출 예시
def greet(name, message):
    print(f"{message}, {name}!")

greet(message="Good morning", name="Bob")
  • *args를 사용하면 여러 개의 입력값을 받을 수 있다.
# *args 사용 예시
def add(*numbers):
    return sum(numbers)

print(add(1, 2, 3, 4))  # 출력: 10
  • **kwargs를 사용하면 키워드 매개변수를 여러 개 받을 수 있다.
# **kwargs 사용 예시
def introduce(**info):
    for key, value in info.items():
        print(f"{key}: {value}")

introduce(name="Alice", age=25, city="Seoul")
  • 함수는 여러 값을 반환할 수 있지만, 실제로는 하나의 튜플로 반환된다.
# 여러 값 반환 예시
def get_info():
    return "Alice", 25

name, age = get_info()
print(name, age)  # 출력: Alice 25
  • 매개변수에 기본값을 설정하면, 함수 호출 시 값을 전달하지 않아도 된다.
# 매개변수 기본값 예시
def greet(name, message="Hello"):
    print(f"{message}, {name}!")

greet("Tom")  # 출력: Hello, Tom!
  • 함수 안에서 선언된 변수는 함수 내부에서만 유효하다.
# 지역 변수 예시
def my_function():
    x = 10  # 지역 변수
    print(x)

my_function()
# print(x)  # 오류 발생: NameError: name 'x' is not defined
  • 함수 내부에서 전역 변수를 변경하려면 global 키워드를 사용해야 한다.
# 전역 변수 사용 예시
x = 5
def change_global():
    global x
    x = 10

change_global()
print(x)  # 출력: 10
  • lambda를 사용하면 짧은 익명 함수를 만들 수 있다.
# lambda 함수 예시
add = lambda a, b: a + b
print(add(3, 5))  # 출력: 8

 

(2) 사용자 입출력

  • input() 함수를 사용하여 사용자로부터 입력을 받을 수 있다.
# 사용자 입력 예시
name = input("이름을 입력하세요: ")
print(f"안녕하세요, {name}님!")
  • print() 함수는 여러 값을 출력하거나, 구분자를 지정할 수 있다.
# print 함수 예시
print("Hello", "World", sep=", ", end="!\n")  # 출력: Hello, World!

 

(3) 파일 읽고 쓰기

  • 파일을 생성하고 데이터를 쓰기 위해 open() 함수를 사용한다.
# 파일 생성 예시
f = open("new_file.txt", "w")
f.write("Hello, file!")
f.close()
  • w 모드를 사용하여 파일에 내용을 쓸 수 있다.
# 파일 쓰기 예시
with open("new_file.txt", "w") as f:
    f.write("Hello, Python!")
  • read(), readline(), readlines() 함수를 사용해 파일 내용을 읽을 수 있다.
# 파일 읽기 예시
with open("new_file.txt", "r") as f:
    content = f.read()
    print(content)
  • a 모드를 사용하여 파일에 새로운 내용을 추가할 수 있다.
# 파일 내용 추가 예시
with open("new_file.txt", "a") as f:
    f.write(" Adding more content.")
  • with 문을 사용하면 파일을 자동으로 닫아주므로, 파일 작업 시 유용하다.
# with 문 사용 예시
with open("new_file.txt", "r") as f:
    content = f.read()
    print(content)

 

(4) 프로그램의 입출력

  • sys 모듈을 사용하여 프로그램의 입출력을 제어할 수 있다.
# sys 모듈 사용 예시
import sys
sys.stdout.write("Hello, sys!\n")

 

파이썬 제어문 및 입출력 소개 사진