IT/파이썬 기초 완전 정복

파이썬 기초 문법 마스터하기 (30)

지식 발전소 2024. 4. 22. 10:12
728x90
반응형

1

 

변수와 자료형

변수란 프로그램에서 사용되는 데이터를 저장하는 공간입니다. 파이썬에서는 변수를 선언할 때 데이터 타입을 명시할 필요가 없습니다. 파이썬은 동적 타이핑(Dynamic Typing) 언어로, 변수에 할당된 값에 따라 자동으로 데이터 타입이 결정됩니다. 예를 들어 x = 5라고 할당하면 x는 정수형(int) 타입이 되고, x = "Hello"라고 할당하면 x는 문자열(str) 타입이 됩니다.

파이썬에서 사용되는 기본 자료형은 다음과 같습니다.

  1. 정수형(int): 양의 정수, 음의 정수, 0 등을 표현합니다. 예: x = 5, y = -10
  2. 부동 소수점 숫자형(float): 실수를 표현합니다. 예: x = 3.14, y = -2.7
  3. 문자열(str): 문자들의 집합으로, 작은따옴표(')나 큰따옴표(")로 묶어야 합니다. 예: x = "Hello", y = 'World'
  4. 불린(bool): True(참) 또는 False(거짓)의 두 값만 가질 수 있습니다.
  5. 리스트(list): 순서가 있는 객체의 집합으로, 대괄호([])로 묶어 표현합니다. 예: x = [1, 2, 3], y = ['a', 'b', 'c']
  6. 튜플(tuple): 리스트와 유사하지만 요소의 변경이 불가능한 불변 순서가 있는 객체의 집합입니다. 괄호(())로 묶어 표현합니다. 예: x = (1, 2, 3), y = ('a', 'b', 'c')
  7. 셋(set): 유일한 값들의 모음으로, 순서가 없고 중복을 허용하지 않습니다. 중괄호({})로 묶어 표현합니다. 예: x = {1, 2, 3}, y = {'a', 'b', 'c'}
  8. 딕셔너리(dict): 키(key)와 값(value) 쌍으로 이루어진 객체의 집합입니다. 중괄호({})로 묶어 표현하며, 키와 값은 콜론(:)으로 구분합니다. 예: x = {'name': 'John', 'age': 30}, y = {'fruits': ['apple', 'banana', 'orange']}

파이썬에서는 이러한 기본 자료형 외에도 여러 가지 복합 자료형과 사용자 정의 객체 등이 있습니다. 프로그래밍을 하면서 필요에 따라 적절한 자료형을 선택하고 활용하는 것이 중요합니다.

간단한 예시를 통해 변수와 자료형을 더 자세히 알아보겠습니다. 다음은 숫자 연산을 수행하는 코드입니다.

x = 5  # 정수형 변수 x에 5 할당
y = 3.2  # 부동 소수점 변수 y에 3.2 할당
print(x + y)  # 8.2 출력
print(x * y)  # 16.0 출력

위 코드에서 x는 정수형(int) 변수, y는 부동 소수점 숫자형(float) 변수입니다. x와 y를 더하거나 곱하면 파이썬 내부에서 자동으로 형변환이 일어나 적절한 결과가 출력됩니다.

다음은 문자열과 리스트 자료형을 다루는 예시입니다.

name = "Alice"  # 문자열 변수
fruits = ["apple", "banana", "cherry"]  # 리스트 변수
print("Hello, " + name)  # "Hello, Alice" 출력
print(fruits[1])  # "banana" 출력

위 코드에서 name은 문자열(str) 변수, fruits는 리스트(list) 변수입니다. 문자열은 + 연산자로 연결할 수 있고, 리스트는 인덱스([])를 통해 요소에 접근할 수 있습니다.

자료형에 대한 이해는 프로그래밍의 기초가 됩니다. 변수와 자료형을 잘 활용하면 데이터를 효과적으로 관리하고 조작할 수 있습니다. 다양한 예시를 통해 자료형의 특성과 사용 방법을 익히는 것이 좋습니다.

조건문과 반복문

조건문 반복문은 프로그래밍에서 가장 중요한 제어 구조입니다. 조건문은 특정 조건에 따라 코드 실행 여부를 결정하고, 반복문은 일련의 작업을 반복적으로 수행하는 데 사용됩니다.

조건문

파이썬의 조건문은 if, elif, else 키워드를 사용합니다. 기본 구조는 다음과 같습니다.

if 조건식1:
    # 조건식1이 True일 때 실행되는 코드
elif 조건식2:
    # 조건식2가 True일 때 실행되는 코드
else:
    # 모든 조건식이 False일 때 실행되는 코드

조건식은 True(참) 또는 False(거짓)으로 평가되는 식입니다. 예를 들어, x > 5는 x가 5보다 크면 True, 그렇지 않으면 False가 됩니다.

간단한 예시를 살펴보겠습니다.

age = 18
if age >= 18:
    print("You are an adult.")
else:
    print("You are a minor.")

위 코드에서 age 변수가 18 이상이면 "You are an adult."가 출력되고, 그렇지 않으면 "You are a minor."가 출력됩니다.

조건문은 중첩(nested)될 수 있습니다. 다음은 점수에 따라 등급을 출력하는 예시입니다.

score = 85
if score >= 90:
    grade = 'A'
elif score >= 80:
    grade = 'B'
elif score >= 70:
    grade = 'C'
else:
    grade = 'F'

print(f"Your grade is {grade}.")

위 코드에서는 score가 90 이상이면 'A', 80 이상이면 'B', 70 이상이면 'C', 그렇지 않으면 'F'가 출력됩니다.

반복문

파이썬의 반복문에는 for와 while 두 가지 유형이 있습니다.

for 반복문은 시퀀스 객체(문자열, 리스트, 튜플, 셋 등)의 각 요소에 대해 반복적으로 작업을 수행합니다. 기본 구조는 다음과 같습니다.

for 항목 in 시퀀스객체:
    # 반복할 작업

예를 들어, 리스트의 모든 요소를 출력하는 코드는 다음과 같습니다.

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

while 반복문은 특정 조건이 참인 동안 계속해서 작업을 수행합니다. 기본 구조는 다음과 같습니다.

while 조건식:
    # 반복할 작업

예를 들어, 1부터 5까지의 합을 구하는 코드는 다음과 같습니다.

n = 1
sum = 0
while n <= 5:
    sum += n
    n += 1

print(f"The sum of 1 to 5 is {sum}.")

반복문에서는 break와 continue 키워드를 사용할 수 있습니다. break는 반복문을 완전히 종료하고, continue는 현재 반복을 건너뛰고 다음 반복으로 넘어갑니다.

조건문과 반복문은 프로그래밍에서 필수적인 요소입니다. 다양한 예시를 통해 이해도를 높이고, 실제 프로젝트에 적용하면서 활용 능력을 기르는 것이 중요합니다.

함수와 모듈

함수는 특정 작업을 수행하는 코드 블록으로, 코드의 재사용성과 가독성을 높여줍니다. 함수는 다음과 같은 구조로 정의합니다.

def 함수이름(매개변수):
    # 함수 내부 코드
    return 반환값

def 키워드 뒤에 함수 이름을 지정하고, 괄호 안에 매개변수(필요한 경우)를 입력합니다. 함수 내부 코드는 들여쓰기로 구분합니다. return 키워드는 함수의 결과값을 반환하는 데 사용됩니다.

예를 들어, 두 수의 합을 계산하는 함수는 다음과 같이 정의할 수 있습니다.

def add(x, y):
    result = x + y
    return result

sum = add(3, 5)
print(sum)  # 8 출력

위 코드에서 add 함수는 두 개의 매개변수 x와 y를 받아 그 합을 반환합니다. 함수 호출 시 add(3, 5)와 같이 인수를 전달하면, 함수 내부에서 계산이 수행되고 결과값이 반환됩니다.

모듈은 함수, 클래스, 변수 등을 모아놓은 파이썬 파일입니다. 모듈은 코드의 재사용성과 유지보수성을 높여줍니다. 예를 들어, math 모듈에는 수학 관련 함수들이 포함되어 있습니다.

import math

x = 3.14
print(math.floor(x))  # 3 출력 (내림)
print(math.ceil(x))   # 4 출력 (올림)

위 코드에서는 math 모듈을 import하여 floor와 ceil 함수를 사용합니다. floor는 숫자를 내림하고, ceil은 숫자를 올립니다.

파이썬에는 수많은 내장 모듈이 있으며, 외부 라이브러리에서 제공하는 모듈도 다수 있습니다. 필요한 기능이 있다면 모듈을 import하여 사용할 수 있습니다.

함수와 모듈은 코드를 모�ularize하고 재사용 가능하게 만들어줍니다. 함수를 잘 활용하면 코드의 가독성과 유지보수성이 높아지고, 모듈을 사용하면 필요한 기능을 손쉽게 가져올 수 있습니다. 다양한 예시를 통해 함수와 모듈의 개념을 익히고, 실제 프로젝트에서 활용하는 연습이 필요합니다.

파일 입출력

파일 읽기

파일을 열었다면 다음과 같이 읽을 수 있습니다.

file = open("data.txt", "r")
content = file.read()  # 전체 파일 내용 읽기
print(content)

lines = file.readlines()  # 파일 내용을 라인별로 리스트에 저장
for line in lines:
    print(line)

file.close()  # 파일 사용 후 반드시 닫기
  • file.read()는 파일의 전체 내용을 문자열로 읽어옵니다.
  • file.readlines()는 파일의 내용을 라인 단위로 리스트에 저장합니다.
  • 파일 사용 후에는 file.close()를 호출하여 파일을 안전하게 닫아야 합니다.

파일을 한 번에 모두 읽어오는 대신, 한 줄씩 읽어오는 방법도 있습니다.

file = open("data.txt", "r")
for line in file:
    print(line, end='')
file.close()

위 코드는 파일의 각 줄을 한 번에 하나씩 읽어와 출력합니다.

파일 쓰기

파일에 새로운 내용을 쓰려면 'w' 모드로 열어야 합니다.

file = open("output.txt", "w")
file.write("Hello, World!")  # 문자열 쓰기
numbers = [1, 2, 3, 4, 5]
for n in numbers:
    file.write(str(n) + "\n")  # 숫자 리스트를 줄바꿈하며 쓰기
file.close()
  • file.write()는 주어진 문자열을 파일에 씁니다.
  • 기존 파일이 있다면 해당 내용은 삭제되고 새로운 내용이 써집니다.

파일에 기존 내용 뒤에 추가하려면 'a' (append) 모드를 사용합니다.

file = open("output.txt", "a")
file.write("\nThis is appended text.")
file.close()

파일 입출력은 프로그래밍에서 매우 중요한 개념입니다. 데이터를 파일에 저장하고 불러오는 기능은 다양한 애플리케이션에서 필수적입니다. 다양한 예제를 통해 파일 입출력 방법을 익히고, 실제 프로젝트에서 활용해보는 것이 좋습니다.

예외 처리

프로그램을 실행하는 동안 예기치 않은 오류가 발생할 수 있습니다. 이러한 오류를 예외(Exception) 라고 합니다. 예외가 발생하면 프로그램이 비정상적으로 종료되므로, 예외를 적절히 처리하는 것이 중요합니다.

파이썬에서는 try ~ except 블록을 사용하여 예외를 처리할 수 있습니다. 기본 구조는 다음과 같습니다.

try:
    # 예외 발생 가능 코드
except 예외유형1:
    # 예외유형1이 발생했을 때 처리할 코드
except 예외유형2:
    # 예외유형2가 발생했을 때 처리할 코드
else:
    # 예외가 발생하지 않았을 때 실행할 코드
finally:
    # 예외 발생 여부와 상관없이 실행할 코드

예를 들어, 파일을 읽는 도중 파일이 없어서 예외가 발생할 수 있습니다. 이를 처리하는 코드는 다음과 같습니다.

try:
    file = open("inexistent_file.txt", "r")
    content = file.read()
    print(content)
except FileNotFoundError:
    print("File not found!")
finally:
    file.close()  # 파일이 열렸다면 닫기

위 코드에서 "inexistent_file.txt" 파일은 존재하지 않기 때문에 FileNotFoundError 예외가 발생합니다. except 블록에서 이 예외를 처리하여 "File not found!"를 출력합니다. finally 블록은 예외 발생 여부와 상관없이 실행되어 열린 파일을 닫습니다.

예외 처리를 하지 않으면 프로그램이 비정상적으로 종료되어 데이터 손실이나 보안 위험이 발생할 수 있습니다. 따라서 예외 처리는 프로그램의 안정성과 신뢰성을 높이는 데 매우 중요합니다.

예외 처리에는 여러 가지 기법이 있습니다. 예를 들어, 특정 예외만 처리하거나, 여러 예외를 한 번에 처리하거나, 사용자 정의 예외를 만들 수 있습니다. 또한 try ~ except 블록 대신 with 문을 사용하여 컨텍스트 관리자로 자원을 안전하게 관리할 수도 있습니다.

예외 처리는 견고한 프로그램을 만드는 데 필수적입니다. 다양한 예외 상황을 고려하고 적절히 처리하는 연습이 필요합니다.

객체지향 프로그래밍

객체지향 프로그래밍(Object-Oriented Programming, OOP) 은 프로그래밍 패러다임 중 하나로, 프로그램을 객체들의 모음으로 보고 객체 간의 상호작용으로 프로그램을 설계하는 방식입니다. 객체지향 프로그래밍은 코드의 재사용성, 유지보수성, 확장성을 높일 수 있습니다.

파이썬은 객체지향 언어이며, 클래스(Class)  객체(Object) 개념을 지원합니다.

클래스와 객체

클래스는 객체를 정의하는 청사진(blueprint)입니다. 클래스에는 데이터(속성)와 함수(메서드)가 정의되어 있습니다. 예를 들어, Person 클래스에는 name, age 속성과 introduce 메서드가 있을 수 있습니다.

객체는 클래스의 인스턴스(instance)입니다. 클래스를 바탕으로 객체를 생성하여 데이터를 저장하고 메서드를 호출할 수 있습니다.

클래스를 정의하고 객체를 생성하는 예시는 다음과 같습니다.

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def introduce(self):
        print(f"Hello, my name is {self.name} and I'm {self.age} years old.")

# 객체 생성
p1 = Person("Alice", 25)
p2 = Person("Bob", 30)

# 메서드 호출
p1.introduce()  # "Hello, my name is Alice and I'm 25 years old."
p2.introduce()  # "Hello, my name is Bob and I'm 30 years old."

위 코드에서 Person 클래스는 name과 age 속성, introduce 메서드를 가지고 있습니다. __init__ 메서드는 객체를 생성할 때 자동으로 호출되는 특별한 메서드로, 객체의 초기 상태를 설정합니다.

p1과 p2는 Person 클래스의 인스턴스입니다. 각 객체는 고유한 name과 age 값을 가지고 있으며, introduce 메서드를 호출하면 해당 객체의 정보를 출력합니다.

상속과 다형성

객체지향 프로그래밍의 또 다른 중요한 개념은 상속(Inheritance)  다형성(Polymorphism) 입니다.

상속은 기존 클래스를 재사용하여 새로운 클래스를 만드는 것입니다. 자식 클래스는 부모 클래스의 속성과 메서드를 물려받습니다.

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

    def speak(self):
        print("The animal makes a sound.")

class Dog(Animal):
    def speak(self):
        print("The dog barks.")

class Cat(Animal):
    def speak(self):
        print("The cat meows.")

# 객체 생성 및 메서드 호출
dog = Dog("Buddy")
dog.speak()  # "The dog barks."

cat = Cat("Whiskers")
cat.speak()  # "The cat meows."

위 코드에서 Dog와 Cat 클래스는 Animal 클래스를 상속받습니다. Dog와 Cat은 Animal의 속성과 메서드를 물려받지만, speak 메서드는 각각 재정의되어 있습니다.

 

다형성은 같은 메서드 호출이 객체에 따라 다르게 동작하는 것을 의미합니다. 위 예시에서 dog.speak()와 cat.speak()은 같은 메서드 호출이지만, 객체의 종류에 따라 다른 결과를 출력합니다.

 

객체지향 프로그래밍은 코드의 재사용성과 유지보수성을 높이고, 복잡한 시스템을 효과적으로 모델링할 수 있게 해줍니다. 클래스, 객체, 상속, 다형성 등의 개념을 잘 이해하고 활용하는 것이 중요합니다.

 

이상으로 파이썬 기초 문법 마스터하기에 대한 내용을 살펴보았습니다. 변수와 자료형, 조건문과 반복문, 함수와 모듈, 파일 입출력, 예외 처리, 객체지향 프로그래밍 등의 주요 개념을 다루었습니다. 이러한 기초 문법을 잘 이해하고 활용할 수 있다면 파이썬 프로그래밍을 더욱 효과적으로 할 수 있을 것입니다.

참고 자료

  1. Mark Lutz, "Learning Python," O'Reilly Media, 2013.
  2. Eric Matthes, "Python Crash Course," No Starch Press, 2019.
  3. Guido van Rossum, "Python Tutorial," Python Software Foundation, https://docs.python.org/3/tutorial/
  4. "The Python Standard Library," Python Software Foundation, https://docs.python.org/3/library/
  5. "Python OOP Tutorials," Real Python, https://realpython.com/python-oop/

 

 

한 고대 문서 이야기

여기 한 고대 문서가 있습니다. 이 문서는 B.C. 1,500년 부터 A.D 100년까지 약 1,600 여 년 동안 기록되었습니다. 이 문서의 저자는 약 40 명입니다. 이 문서의 고대 사본은 25,000 개가 넘으나, 사본간 오

gospel79.tistory.com

 

유튜브 프리미엄 월 1만원 할인받고 월 4000원에 이용하는 방법

올해 5월부터 월 8000원 정도이던 유튜브 프리미엄 요금이 15000원 정도로 인상됩니다. 각종 OTT 서비스, ChatGPT 같은 서비스들이 늘어나다보니 이런 거 몇 개만 이용하더라도 월 이용요금이 5만원을

stock79.tistory.com

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

1

 

 

 

 

한 고대 문서 이야기

여기 한 고대 문서가 있습니다. 이 문서는 B.C. 1,500년 부터 A.D 100년까지 약 1,600 여 년 동안 기록되었습니다. 이 문서의 저자는 약 40 명입니다. 이 문서의 고대 사본은 25,000 개가 넘으나, 사본간 오

gospel79.tistory.com

 

유튜브 프리미엄 월 1만원 할인받고 월 4000원에 이용하는 방법

올해 5월부터 월 8000원 정도이던 유튜브 프리미엄 요금이 15000원 정도로 인상됩니다. 각종 OTT 서비스, ChatGPT 같은 서비스들이 늘어나다보니 이런 거 몇 개만 이용하더라도 월 이용요금이 5만원을

stock79.tistory.com

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

728x90
반응형