# 파이썬 기초부터 심화까지: 자세한 설명과 풍부한 예제 코드

GoGoComputer·2024년 9월 29일

python study

목록 보기
1/2

목차

  1. 파이썬 개발 환경 설정

    • 1-1. Google Colab 소개
    • 1-2. Google Colab 시작하기
    • 1-3. 코드 셀과 실행 순서
  2. 파이썬의 기본 함수와 문법

    • 2-1. print() 함수
    • 2-2. 주석(Comment)
    • 2-3. import
    • 2-4. 들여쓰기
  3. 자료형(Data Types)과 변수

    • 3-1. 기본 자료형 소개
    • 3-2. 자료형 확인과 변환
    • 3-3. 문자열(String) 다루기
    • 3-4. 문자열 연산 및 메서드
  4. 자료구조(Data Structures)

    • 4-1. 리스트(List)
    • 4-2. 튜플(Tuple)
    • 4-3. 집합(Set)
    • 4-4. 사전(Dictionary)
  5. 조건문과 반복문

    • 5-1. 조건문(if, elif, else)
    • 5-2. 반복문(for, while)
  6. 함수(Functions)

    • 6-1. 함수 정의와 호출
    • 6-2. 매개변수와 인자
    • 6-3. 가변 인자
    • 6-4. 재귀 함수
    • 6-5. 람다 함수
  7. 클래스와 객체 지향 프로그래밍

    • 7-1. 클래스 정의
    • 7-2. 상속
  8. 파일 입출력

    • 8-1. 파일 쓰기
    • 8-2. 파일 읽기
    • 8-3. with 구문 사용하기
  9. 예외 처리

    • 9-1. tryexcept
    • 9-2. elsefinally
  10. 유용한 라이브러리 소개

  • 10-1. Math 라이브러리
  • 10-2. Datetime 라이브러리
  • 10-3. Random 라이브러리

파이썬 기초부터 심화까지: 자세한 설명과 풍부한 예제 코드


1. 파이썬 개발 환경 설정

파이썬은 쉽고 강력한 프로그래밍 언어로, 데이터 분석, 웹 개발, 인공지능 등 다양한 분야에서 사용됩니다. 파이썬을 효과적으로 학습하고 사용하기 위해서는 올바른 개발 환경을 설정하는 것이 중요합니다.

1-1. Google Colab 소개

Google Colab(코랩)은 구글에서 제공하는 클라우드 기반의 파이썬 개발 환경입니다. 인터넷만 연결되어 있다면 어디서든지 웹 브라우저를 통해 파이썬 코드를 작성하고 실행할 수 있습니다.

Google Colab의 주요 장점:

  • 설치 필요 없음: 로컬 환경에 파이썬이나 라이브러리를 설치할 필요가 없습니다.
  • GPU/TPU 지원: 딥러닝 모델 훈련 시 유용한 하드웨어 가속기를 무료로 사용할 수 있습니다.
  • 손쉬운 공유: 노트북을 다른 사람과 공유하거나 협업할 수 있습니다.
  • 구글 드라이브 연동: 파일을 쉽게 저장하고 불러올 수 있습니다.

1-2. Google Colab 시작하기

  1. 접속하기: Google Colab 홈페이지에 접속합니다.
  2. 새 노트북 생성: '새 노트북' 버튼을 클릭하여 새로운 노트북을 만듭니다.
  3. 코드 셀: 셀에 코드를 작성하고 Shift + Enter 또는 셀 왼쪽의 실행 버튼을 눌러 코드를 실행합니다.
# 첫 번째 파이썬 코드 실행
print("안녕하세요, 파이썬 세계에 오신 것을 환영합니다!")

결과:

안녕하세요, 파이썬 세계에 오신 것을 환영합니다!

1-3. 코드 셀과 실행 순서

  • 코드 셀: 각 셀은 독립된 코드 블록입니다.
  • 실행 순서 중요성: 셀은 작성된 순서가 아닌 실행된 순서대로 변수와 함수가 적용됩니다.

예시:

# 셀 1
a = 10
# 셀 2
print(a)

만약 셀 2를 먼저 실행하면 NameError가 발생합니다. 따라서 변수를 정의한 셀을 먼저 실행해야 합니다.


2. 파이썬의 기본 함수와 문법

파이썬을 시작할 때 알아두면 좋은 기본 함수와 문법에 대해 알아보겠습니다.

2-1. print() 함수

print() 함수는 화면에 출력을 하는 가장 기본적인 함수입니다. 문자열, 숫자, 변수 등 다양한 데이터를 출력할 수 있습니다.

  1. 기본 사용법

    print("파이썬을 배우자!")

    결과:

    파이썬을 배우자!
  2. 여러 값 출력하기

    print("나이:", 25)

    결과:

    나이: 25
  3. sep 옵션 사용

    • 여러 값을 출력할 때 구분자를 지정합니다.
    print("서울", "부산", "대구", sep=" -> ")

    결과:

    서울 -> 부산 -> 대구
  4. end 옵션 사용

    • 출력 후 다음에 이어질 내용을 지정합니다. 기본값은 \n으로 줄바꿈입니다.
    print("안녕하세요", end="! ")
    print("반갑습니다")

    결과:

    안녕하세요! 반갑습니다
  5. 형식 문자열(format string) 사용

    name = "철수"
    age = 20
    print(f"{name}의 나이는 {age}살입니다.")

    결과:

    철수의 나이는 20살입니다.

2-2. 주석(Comment)

주석은 코드에 대한 설명이나 메모를 추가할 때 사용합니다. 파이썬에서는 실행에 영향을 주지 않으며, 코드의 가독성을 높여줍니다.

주석 사용 방법

  1. 한 줄 주석

    • # 기호 뒤에 작성합니다.
    # 이 코드는 변수 a에 10을 할당합니다.
    a = 10
  2. 여러 줄 주석

    • ''' 또는 """ 사이에 여러 줄의 주석을 작성합니다.
    '''
    작성자: 홍길동
    작성일: 2023년 1월 1일
    내용: 파이썬 주석 예제
    '''

    주의: 여러 줄 문자열로 인식될 수 있으므로 주의가 필요합니다.

2-3. import

import 문은 파이썬에서 모듈(module)을 불러올 때 사용합니다. 모듈은 미리 작성된 함수와 변수를 포함한 파일로, 코드를 재사용하고 기능을 확장하는 데 도움이 됩니다.

모듈 불러오기 방법

  1. 전체 모듈 불러오기

    import math
    print(math.pi)

    결과:

    3.141592653589793
  2. 별칭(alias) 지정하기

    import numpy as np
    array = np.array([1, 2, 3])
    print(array)

    결과:

    [1 2 3]
  3. 특정 함수만 불러오기

    from math import sqrt
    print(sqrt(16))

    결과:

    4.0
  4. 여러 함수 불러오기

    from math import sin, cos, tan
    print(sin(0), cos(0), tan(0))

    결과:

    0.0 1.0 0.0
  5. 모든 함수 불러오기

    from math import *
    print(factorial(5))

    결과:

    120

    주의: 이렇게 하면 현재 네임스페이스에 많은 이름이 추가되어 충돌이 발생할 수 있습니다.

2-4. 들여쓰기

파이썬은 들여쓰기를 통해 코드 블록을 구분합니다. 이는 다른 언어의 중괄호 {}를 대신하며, 들여쓰기가 잘못되면 IndentationError가 발생합니다.

들여쓰기 규칙

  • 일반적으로 4칸의 공백 또는 탭 한 번을 사용합니다.
  • 한 코드 블록 내에서는 일관된 들여쓰기를 유지해야 합니다.

예시:

if True:
    print("조건이 참입니다.")
    print("여기는 동일한 블록입니다.")
else:
    print("조건이 거짓입니다.")

잘못된 예시:

if True:
  print("이것은 오류를 발생시킬 수 있습니다.")
    print("들여쓰기가 일관되지 않습니다.")  # IndentationError

3. 자료형(Data Types)과 변수

파이썬에서는 다양한 자료형을 제공하며, 변수에 값을 저장할 때 그 자료형이 결정됩니다.

3-1. 기본 자료형 소개

  1. 정수(Integer, int)

    age = 25
    print(type(age))  # 결과: <class 'int'>
  2. 실수(Floating-point, float)

    pi = 3.1415
    print(type(pi))  # 결과: <class 'float'>
  3. 문자열(String, str)

    message = "안녕하세요"
    print(type(message))  # 결과: <class 'str'>
  4. 불리언(Boolean, bool)

    is_active = True
    print(type(is_active))  # 결과: <class 'bool'>

3-2. 자료형 확인과 변환

자료형 확인하기

  • type() 함수를 사용하여 변수의 자료형을 확인합니다.

    number = 10
    print(type(number))  # <class 'int'>

자료형 변환하기

  1. 정수로 변환

    s = "100"
    n = int(s)
    print(n, type(n))  # 100 <class 'int'>
  2. 실수로 변환

    s = "3.14"
    f = float(s)
    print(f, type(f))  # 3.14 <class 'float'>
  3. 문자열로 변환

    n = 256
    s = str(n)
    print(s, type(s))  # '256' <class 'str'>
  4. 불리언으로 변환

    print(bool(0))     # False
    print(bool(1))     # True
    print(bool(""))    # False
    print(bool("abc")) # True
    • 숫자 0, 빈 문자열 "", 빈 리스트 [] 등은 False로 변환됩니다.

3-3. 문자열(String) 다루기

문자열은 문자의 집합으로, 파이썬에서 중요한 자료형 중 하나입니다.

문자열 선언 방법

  1. 큰따옴표 사용

    greeting = "Hello, World!"
  2. 작은따옴표 사용

    greeting = 'Hello, World!'
  3. 여러 줄 문자열

    multiline = """여러 줄의
    문자열을 작성할 때는
    이렇게 합니다."""

문자열 인덱싱과 슬라이싱

  • 인덱싱(Indexing): 문자열에서 특정 위치의 문자를 가져옵니다. 인덱스는 0부터 시작합니다.

    s = "Python"
    print(s[0])  # 'P'
    print(s[-1]) # 'n' (뒤에서 첫 번째)
  • 슬라이싱(Slicing): 문자열의 부분을 가져옵니다.

    s = "Hello, World!"
    print(s[0:5])   # 'Hello' (0부터 5전까지)
    print(s[7:])    # 'World!' (7부터 끝까지)
    print(s[:5])    # 'Hello' (처음부터 5전까지)
    print(s[::2])   # 'Hlo ol!' (2칸씩 건너뜀)

3-4. 문자열 연산 및 메서드

문자열 연산

  1. 문자열 연결(+ 연산자)

    s1 = "파이썬"
    s2 = "최고"
    result = s1 + " " + s2
    print(result)  # '파이썬 최고'
  2. 문자열 반복(* 연산자)

    s = "안녕"
    print(s * 3)  # '안녕안녕안녕'

문자열 메서드

  1. len() 함수

    • 문자열의 길이를 반환합니다.
    s = "Hello"
    print(len(s))  # 5
  2. 대소문자 변환

    • upper(): 모든 문자를 대문자로 변환

      s = "python"
      print(s.upper())  # 'PYTHON'
    • lower(): 모든 문자를 소문자로 변환

      s = "PYTHON"
      print(s.lower())  # 'python'
    • capitalize(): 첫 글자만 대문자로 변환

      s = "hello world"
      print(s.capitalize())  # 'Hello world'
    • title(): 각 단어의 첫 글자를 대문자로 변환

      s = "hello world"
      print(s.title())  # 'Hello World'
  3. 공백 제거

    • strip(): 양쪽 공백 제거

      s = "   hello   "
      print(s.strip())  # 'hello'
    • lstrip(): 왼쪽 공백 제거

      s = "   hello"
      print(s.lstrip())  # 'hello'
    • rstrip(): 오른쪽 공백 제거

      s = "hello   "
      print(s.rstrip())  # 'hello'
  4. 문자열 검색

    • find(): 특정 문자열이 처음 등장하는 위치 반환 (없으면 -1)

      s = "hello world"
      print(s.find("world"))  # 6
      print(s.find("Python")) # -1
    • index(): 특정 문자열이 처음 등장하는 위치 반환 (없으면 오류 발생)

      s = "hello world"
      print(s.index("world"))  # 6
      # print(s.index("Python")) # ValueError 발생
  5. 문자열 교체

    • replace(): 특정 문자열을 다른 문자열로 교체

      s = "I like Java"
      print(s.replace("Java", "Python"))  # 'I like Python'
  6. 문자열 분리와 결합

    • split(): 구분자를 기준으로 문자열을 분리하여 리스트로 반환

      s = "apple,banana,cherry"
      fruits = s.split(",")
      print(fruits)  # ['apple', 'banana', 'cherry']
    • join(): 리스트의 문자열을 특정 구분자로 결합

      words = ["Hello", "World"]
      sentence = " ".join(words)
      print(sentence)  # 'Hello World'
  7. 문자열 검사

    • startswith(): 특정 문자열로 시작하는지 검사

      s = "hello world"
      print(s.startswith("hello"))  # True
    • endswith(): 특정 문자열로 끝나는지 검사

      s = "hello world"
      print(s.endswith("world"))  # True
  8. 문자열 포매팅

    • % 연산자 사용

      name = "철수"
      age = 20
      print("이름: %s, 나이: %d" % (name, age))
    • str.format() 메서드 사용

      print("이름: {}, 나이: {}".format(name, age))
    • f-문자열 (Python 3.6 이상)

      print(f"이름: {name}, 나이: {age}")

문자열 예제 종합

# 사용자로부터 이름과 나이를 입력받아 환영 메시지를 출력하는 프로그램

# 사용자 입력 받기
name = input("이름을 입력하세요: ")
age = input("나이를 입력하세요: ")

# 입력된 나이 문자열을 정수로 변환
age = int(age)

# 환영 메시지 생성
message = f"안녕하세요, {name}님! 당신은 {age}살입니다."

# 메시지 출력
print(message)

실행 결과:

이름을 입력하세요: 영희
나이를 입력하세요: 21
안녕하세요, 영희님! 당신은 21살입니다.

4. 자료구조(Data Structures)

데이터를 효율적으로 저장하고 관리하기 위해 파이썬에서는 다양한 자료구조를 제공합니다.

4-1. 리스트(List)

리스트는 순서가 있는 변경 가능한 자료구조로, 배열과 유사합니다.

리스트 생성과 기본 사용법

# 리스트 생성
fruits = ["apple", "banana", "cherry"]

# 리스트 요소 접근
print(fruits[0])  # 'apple'

# 리스트 길이 확인
print(len(fruits))  # 3

# 리스트 요소 변경
fruits[1] = "blueberry"
print(fruits)  # ['apple', 'blueberry', 'cherry']

리스트 메서드

  1. append(): 리스트 끝에 요소 추가

    fruits.append("orange")
    print(fruits)  # ['apple', 'blueberry', 'cherry', 'orange']
  2. insert(): 특정 위치에 요소 삽입

    fruits.insert(1, "banana")
    print(fruits)  # ['apple', 'banana', 'blueberry', 'cherry', 'orange']
  3. remove(): 특정 값 제거

    fruits.remove("banana")
    print(fruits)  # ['apple', 'blueberry', 'cherry', 'orange']
  4. pop(): 특정 인덱스의 요소를 제거하고 반환

    fruit = fruits.pop(2)
    print(fruit)   # 'cherry'
    print(fruits)  # ['apple', 'blueberry', 'orange']
  5. sort(): 리스트 정렬

    numbers = [3, 1, 4, 2]
    numbers.sort()
    print(numbers)  # [1, 2, 3, 4]
  6. reverse(): 리스트 순서 뒤집기

    numbers.reverse()
    print(numbers)  # [4, 3, 2, 1]

리스트 슬라이싱

numbers = [0, 1, 2, 3, 4, 5]

# 부분 리스트 얻기
print(numbers[1:4])  # [1, 2, 3]

# 처음부터 특정 위치까지
print(numbers[:3])   # [0, 1, 2]

# 특정 위치부터 끝까지
print(numbers[3:])   # [3, 4, 5]

# 모든 요소 복사
print(numbers[:])    # [0, 1, 2, 3, 4, 5]

# 간격을 두고 요소 선택
print(numbers[::2])  # [0, 2, 4]

4-2. 튜플(Tuple)

튜플은 순서가 있지만 변경 불가능한(immutable) 자료구조입니다.

튜플 생성과 사용

# 튜플 생성
point = (10, 20)

# 요소 접근
print(point[0])  # 10

# 튜플은 변경 불가
# point[0] = 30  # 오류 발생: TypeError

# 하나의 요소를 가진 튜플 (쉼표 필요)
single = (10,)
print(type(single))  # <class 'tuple'>

# 여러 변수에 값 할당 (언패킹)
x, y = point
print(x, y)  # 10 20

튜플과 리스트 간 변환

# 튜플을 리스트로 변환
t = (1, 2, 3)
l = list(t)
print(l)  # [1, 2, 3]

# 리스트를 튜플로 변환
l = [4, 5, 6]
t = tuple(l)
print(t)  # (4, 5, 6)

4-3. 집합(Set)

집합은 중복을 허용하지 않고, 순서가 없는 자료구조입니다.

집합 생성과 기본 사용법

# 집합 생성
numbers = {1, 2, 3, 3, 4}
print(numbers)  # {1, 2, 3, 4}

# 요소 추가
numbers.add(5)
print(numbers)  # {1, 2, 3, 4, 5}

# 요소 제거
numbers.remove(3)
print(numbers)  # {1, 2, 4, 5}

집합 연산

A = {1, 2, 3}
B = {3, 4, 5}

# 합집합
print(A.union(B))        # {1, 2, 3, 4, 5}
print(A | B)             # {1, 2, 3, 4, 5}

# 교집합
print(A.intersection(B)) # {3}
print(A & B)             # {3}

# 차집합
print(A.difference(B))   # {1, 2}
print(A - B)             # {1, 2}

4-4. 사전(Dictionary)

사전은 키(key)와 값(value)의 쌍으로 이루어진 자료구조입니다.

사전 생성과 기본 사용법

# 사전 생성
student = {"name": "철수", "age": 20, "major": "컴퓨터공학"}

# 값 접근
print(student["name"])  # '철수'

# 값 변경
student["age"] = 21

# 새로운 키-값 추가
student["grade"] = "A"

print(student)
# {'name': '철수', 'age': 21, 'major': '컴퓨터공학', 'grade': 'A'}

사전 메서드

  1. keys(): 모든 키 반환

    print(student.keys())  # dict_keys(['name', 'age', 'major', 'grade'])
  2. values(): 모든 값 반환

    print(student.values())  # dict_values(['철수', 21, '컴퓨터공학', 'A'])
  3. items(): 키-값 쌍 반환

    print(student.items())
    # dict_items([('name', '철수'), ('age', 21), ('major', '컴퓨터공학'), ('grade', 'A')])
  4. get(): 키로 값 가져오기 (키가 없을 때 기본값 설정 가능)

    print(student.get("name"))     # '철수'
    print(student.get("address"))  # None
    print(student.get("address", "주소 없음"))  # '주소 없음'
  5. pop(): 키로 값 제거하고 반환

    grade = student.pop("grade")
    print(grade)    # 'A'
    print(student)  # 'grade' 키가 제거된 사전

5. 조건문과 반복문

프로그램의 흐름을 제어하기 위해 조건문과 반복문을 사용합니다.

5-1. 조건문(if, elif, else)

기본 구조

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

예제

age = int(input("나이를 입력하세요: "))

if age >= 20:
    print("성인입니다.")
elif age >= 13:
    print("청소년입니다.")
else:
    print("어린이입니다.")

5-2. 반복문(for, while)

for

  • 반복 가능한 객체(리스트, 튜플, 문자열 등)를 순회합니다.
# 리스트 순회
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

# 문자열 순회
for char in "Python":
    print(char)

range() 함수와 for

  • range() 함수는 일정한 숫자 범위를 생성합니다.
# 0부터 4까지 출력
for i in range(5):
    print(i)

# 1부터 5까지 출력
for i in range(1, 6):
    print(i)

# 1부터 10까지 2씩 증가
for i in range(1, 11, 2):
    print(i)

while

  • 조건이 참인 동안 코드를 반복합니다.
count = 0
while count < 5:
    print(count)
    count += 1

breakcontinue

  • break: 반복문을 즉시 종료합니다.
  • continue: 현재 반복을 건너뛰고 다음 반복을 시작합니다.
# break 예제
for i in range(10):
    if i == 5:
        break
    print(i)

# continue 예제
for i in range(5):
    if i == 2:
        continue
    print(i)

6. 함수(Functions)

함수는 재사용 가능한 코드 블록으로, 특정 작업을 수행합니다.

6-1. 함수 정의와 호출

함수 정의

def 함수이름(매개변수들):
    실행할 코드
    return 반환값

함수 예제

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

# 함수 호출
greet("영희")  # '안녕하세요, 영희님!'

6-2. 매개변수와 인자

위치 인자와 기본값

def introduce(name, age=20):
    print(f"이름: {name}, 나이: {age}")

introduce("철수")          # '이름: 철수, 나이: 20'
introduce("영희", 25)     # '이름: 영희, 나이: 25'

키워드 인자

introduce(age=30, name="민수")  # '이름: 민수, 나이: 30'

6-3. 가변 인자

*args: 위치 인자를 튜플로 받음

def sum_numbers(*args):
    total = 0
    for num in args:
        total += num
    return total

print(sum_numbers(1, 2, 3))          # 6
print(sum_numbers(1, 2, 3, 4, 5))    # 15

**kwargs: 키워드 인자를 사전으로 받음

def print_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

print_info(name="철수", age=20, city="서울")

결과:

name: 철수
age: 20
city: 서울

6-4. 재귀 함수

  • 함수가 자기 자신을 호출하는 함수입니다.

팩토리얼 계산 예제

def factorial(n):
    if n == 1:
        return 1
    else:
        return n * factorial(n - 1)

print(factorial(5))  # 120

6-5. 람다 함수

  • 익명 함수로, 간단한 기능을 한 줄로 작성할 때 사용합니다.
# 일반 함수
def add(a, b):
    return a + b

# 람다 함수
add_lambda = lambda a, b: a + b

print(add(2, 3))         # 5
print(add_lambda(2, 3))  # 5

map(), filter()와 함께 사용

# 리스트의 각 요소에 2를 곱함
numbers = [1, 2, 3, 4, 5]
doubled = list(map(lambda x: x * 2, numbers))
print(doubled)  # [2, 4, 6, 8, 10]

# 리스트에서 짝수만 필터링
evens = list(filter(lambda x: x % 2 == 0, numbers))
print(evens)    # [2, 4]

7. 클래스와 객체 지향 프로그래밍

객체 지향 프로그래밍(OOP)은 데이터를 객체로 취급하여 프로그래밍하는 방식입니다.

7-1. 클래스 정의

class Person:
    # 생성자 메서드
    def __init__(self, name, age):
        self.name = name
        self.age = age

    # 인스턴스 메서드
    def greet(self):
        print(f"안녕하세요, 저는 {self.name}입니다.")

# 객체 생성
person1 = Person("철수", 20)
person2 = Person("영희", 22)

# 메서드 호출
person1.greet()  # '안녕하세요, 저는 철수입니다.'
person2.greet()  # '안녕하세요, 저는 영희입니다.'

7-2. 상속

부모 클래스 정의

class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        pass

자식 클래스 정의

class Dog(Animal):
    def speak(self):
        print(f"{self.name}가 멍멍!")

class Cat(Animal):
    def speak(self):
        print(f"{self.name}가 야옹!")

# 객체 생성 및 메서드 호출
dog = Dog("바둑이")
cat = Cat("나비")

dog.speak()  # '바둑이가 멍멍!'
cat.speak()  # '나비가 야옹!'

8. 파일 입출력

8-1. 파일 쓰기

# 파일 열기 (쓰기 모드)
f = open("example.txt", "w")

# 파일에 내용 쓰기
f.write("Hello, World!\n")
f.write("파일 입출력 예제입니다.")

# 파일 닫기
f.close()

8-2. 파일 읽기

# 파일 열기 (읽기 모드)
f = open("example.txt", "r")

# 파일 내용 읽기
content = f.read()
print(content)

# 파일 닫기
f.close()

8-3. with 구문 사용하기

  • 파일을 자동으로 닫아줍니다.
with open("example.txt", "r") as f:
    content = f.read()
    print(content)

9. 예외 처리

프로그램 실행 중 오류가 발생했을 때 이를 처리하여 프로그램이 종료되지 않도록 합니다.

9-1. tryexcept

try:
    x = int(input("숫자를 입력하세요: "))
    print(10 / x)
except ValueError:
    print("유효한 숫자가 아닙니다.")
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")

9-2. elsefinally

  • else: 오류가 발생하지 않을 때 실행
  • finally: 오류 발생 여부와 상관없이 항상 실행
try:
    f = open("example.txt", "r")
except FileNotFoundError:
    print("파일이 존재하지 않습니다.")
else:
    content = f.read()
    print(content)
    f.close()
finally:
    print("프로그램을 종료합니다.")

10. 유용한 라이브러리 소개

파이썬은 풍부한 표준 라이브러리와 외부 라이브러리를 제공합니다.

10-1. Math 라이브러리

수학 계산을 위한 다양한 함수를 제공합니다.

import math

print(math.sqrt(16))   # 4.0
print(math.factorial(5))  # 120
print(math.sin(math.pi / 2))  # 1.0

10-2. Datetime 라이브러리

날짜와 시간을 다룹니다.

import datetime

now = datetime.datetime.now()
print(now)  # 현재 날짜와 시간

# 특정 날짜 생성
d = datetime.datetime(2023, 1, 1)
print(d)

10-3. Random 라이브러리

난수를 생성합니다.

import random

print(random.random())        # 0.0 이상 1.0 미만의 실수
print(random.randint(1, 10))  # 1 이상 10 이하의 정수
print(random.choice(["가위", "바위", "보"]))  # 리스트에서 랜덤 선택

이상으로 파이썬의 기초부터 핵심 개념까지 자세히 알아보았습니다. 각 개념마다 제공된 예제 코드를 직접 실행해 보면서 이해를 깊게 하고, 더 나아가 응용할 수 있기를 바랍니다.

profile
IT를 좋아합니다.

1개의 댓글

comment-user-thumbnail
2024년 10월 9일

잘 보았습니당

답글 달기