(SK쉴더스)AI 활용한 클라우드 & 보안 전문가 양성 캠프

[새싹 성동 2기] 5. Python 문법 기초(2)

hunm719 2024. 12. 9. 15:15

목차

 

1. 변수                          

2. 자료형                      

3. 연산자                      

4. 파일                          

5. 객체지향 프로그래밍  

 

 

[3] 연산자

-산술 연산자

연산자 이름 설명
+ 덧셈 두 피연산자를 더합니다.
- 뺄셈 첫 번째 피연산자에서 두 번째 피연산자를 뺍니다.
* 곱셈 두 피연산자를 곱합니다.
/ 나눗셈 첫 번째 피연산자를 두 번째 피연산자로 나눕니다. 
결과는 실수형 수입니다.
// 나눗셈 몫 첫 번째 피연산자를 두 번째 피연산자로 나눈 후, 몫 부분만 반환합니다. 결과는 정수형 입니다.
% 나머지 첫 번째 피연산자를 두 번째 피연산자로 나눈 후, 나머지만 반환합니다. 결과는 정수형 입니다.
** 거듭제곱 첫 번째 피연산자를 두 번째 피연산자로 거듭제곱합니다.
- 단항 음수 피연산자의 부호를 반대로 바꿉니다.

-비교 연산자

연산자 이름 설명
== 같음 두 피연산자의 값이 같다면 True를 반환하고, 그렇지 않으면 False를 반환합니다.
!= 같지 않음 두 피연산자의 값이 다르다면 True를 반환하고, 같다면 False를 반환합니다.
> 첫 번째 값이 더 크다면 True를 반환하고, 그렇지 않으면 False를 반환합니다.
< 작음 첫 번째 값이 더 작다면 True를 반환하고, 그렇지 않으면 False를 반환합니다.
>= 크거나 같음 첫 번째 값이 더 크거나 같다면 True를 반환하고, 그렇지 않으면 False를 반환합니다.
<= 작거나 같음 첫 번째 값이 더 작거나 같다면 True를 반환하고, 그렇지 않으면 False를 반환합니다.
is 객체 동일성 두 객체가 같은 객체이면 True를 반환하고, 그렇지 않으면 False를 반환합니다. 
is not 객체 동일성 부정 두 객체가 다른 객체이면 True를 반환하고, 그렇지 않으면 False를 반환합니다. 

-논리 연산자

연산자 이름 설명
and 논리곱(AND) 두 조건이 모두 참일 때 참
or 논리합(OR) 두 조건 중 하나라도 참일 때 참
not 논리부정(NOT) 조건이 참이면 거짓, 거짓이면 참

-할당 연산자

연산자 이름 설명
= 기본 할당 오른쪽 값을 왼쪽 변수에 할당합니다.
+= 덧셈 후 할당 변수의 현재 값에 오른쪽 피연산자의 값을 더한 후, 그 결과를 다시 변수에 할당합니다.
-= 뺄셈 후 할당 변수의 현재 값에서 오른쪽 피연산자의 값을 뺀 후, 그 결과를 다시 변수에 할당합니다.
*= 곱셈 후 할당 변수의 현재 값에 오른쪽 피연산자의 값을 곱한 후, 그 결과를 다시 변수에 할당합니다.
/= 나눗셈 후 할당 변수의 현재 값을 오른쪽 피연산자의 값으로 나눈 후, 그 결과를 다시 변수에 할당합니다. 결과는 부동 소수점 수입니다.
//= 몫 후 할당 변수의 현재 값을 오른쪽 피연산자의 값으로 정수 나누기를 수행한 후, 그 결과를 다시 변수에 할당합니다.
%= 나머지 후 할당 변수의 현재 값을 오른쪽 피연산자의 값으로 나눈 나머지를 구한 후, 그 결과를 다시 변수에 할당합니다.
**= 거듭제곱 후 할당 변수의 현재 값을 오른쪽 피연산자의 값으로 거듭제곱한 후, 그 결과를 다시 변수에 할당합니다.
&=
|=
^=
<<=
>>=
비트 연산 후 할당 변수의 현재 값에 비트 연산을 수행한 후, 그 결과를 다시 변수에 할당합니다.

-삼항 연산자

# JavaScript 에서의 삼항 연산자
condition ? value_if_true : value_if_false

# Python에서의 삼항 연산자
value_if_true if condition else value_if_false

 

 

 

[4] 파일(File)

-데이터를 영구적으로 저장하거나 읽어오기 위해 사용하는 저장 매체의 단위

-파일 작업 주요 함수 4가지(open, read, write, with)

file = open("파일명", "모드")

# 모드 종류
# 'r' (읽기): 파일을 읽기 전용으로 염. 기본값.
# 'w' (쓰기): 파일을 새로 생성하거나 덮어씀.
# 'a' (추가): 파일 끝에 데이터를 추가.
# 'b' (바이너리): 바이너리 모드로 파일 처리.
# '+' (읽기 및 쓰기): 읽기와 쓰기 모두 수행.

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

# 파일 쓰기
file = open("example.txt", "w")
file.write("Hello, Python!")   # 파일에 쓰기

# 파일 닫기
with open("example.txt", "r") as file:
    content = file.read()
    print(content)  # 파일 읽기
# with 블록 종료 시 파일 자동 닫힘
# with 구문 없이 open() 했다면 file.close() 구문으로 닫기 가능

 

 

 

[5] 객체지향 프로그래밍(Object-Oriented Programming, OOP)

-프로그램을 객체(Object)로 구성하고, 이 객체들이 서로 상호작용하도록 설계하는 프로그래밍 패러다임

-코드의 재사용성, 유지보수성, 가독성, 유연성을 높이는 데 유용함

-객체(Object)란 데이터(속성)와 동작(메서드)를 포함하는 독립적인 단위로, Python에서 모든 것은 객체임(숫자, 문자열 등)

-핵심요소 5가지(클래스 Class, 객체 Object, 캡슐화 Encapsulation, 상속 Inheritance, 다형성 Polymorphism)

 

--클래스(Class)

# 클래스는 객체를 생성하기 위한 설계도
# 객체는 클래스로부터 만들어지고, 이를 인스턴스(instance) 라고 부름

class Person:
    def __init__(self, name, age):
        self.name = name  # 속성
        self.age = age    # 속성
    
    def greet(self):       # 메서드
        print(f"Hello, my name is {self.name}.")

 

--객체(Object)

# 객체는 클래스의 인스턴스
# 객체는 클래스의 속성과 메서드를 가진 독립된 개체

# 객체 생성
person1 = Person("Alice", 25)
person2 = Person("Bob", 30)

# 객체 사용
person1.greet()  # Hello, my name is Alice.
person2.greet()  # Hello, my name is Bob.

 

--캡슐화(Encapsulation)

# 객체 내부의 데이터를 숨기고, 외부에서 접근할 수 없도록 보호하는 개념
# 데이터를 메서드를 통해 간접적으로 접근

class BankAccount:
    def __init__(self, balance):
        self.__balance = balance  # 비공개 속성

    def deposit(self, amount):
        self.__balance += amount

    def get_balance(self):
        return self.__balance

account = BankAccount(1000)
account.deposit(500)
print(account.get_balance())  # 1500

 

--상속(Inheritance)

# 부모 클래스의 속성과 메서드를 물려받아 자식 클래스를 생성

class Animal:
    def speak(self):
        print("Animal speaks")

class Dog(Animal):
    def speak(self):
        print("Woof!")

dog = Dog()
dog.speak()  # Woof!

 

--다형성(Polymorphism)

# 같은 이름의 메서드가 다른 클래스에서 다르게 동작하도록 구현

class Bird:
    def fly(self):
        print("Bird can fly")

class Penguin(Bird):
    def fly(self):
        print("Penguin can't fly")

birds = [Bird(), Penguin()]
for bird in birds:
    bird.fly()