Eat Study Love

먹고 공부하고 사랑하라

SW 만학도/Python

Review 2 - Python의 기본 Module , Class

eatplaylove 2024. 7. 1. 21:20

https://eglife.tistory.com/65

 

Review 1 - Python programming basics

프로그래밍은 안 쓰다 보면 까먹는다. 더군다나 전공자가 아니면 정말 1~2주만 정신 놓고 있다가 복귀했을 때 굉장히 기초적인 코딩도 손에 잡히지 않는 것을 쉽게 체감할 수 있다. 그리하야 시

eglife.tistory.com

파이썬 두 번 째 Review 시간이다.

이번엔 파이썬의 다양한 Data Structure 중 기본적인 내용을 Review 해보자.

 

1. String type(str)

 

- 문자열, 즉 text를 뜻한다.

- 파이썬은 어떤 value를 ' ' 또는 " "로 묶었을 때 묶어진 요 놈들을 String으로 인지한다.

- String은 * int를 할 순 있는데 다른 연산은 string끼리만 한다.

 

Special Characters in Strings

 

 

파이썬에서 String 구분은 작/큰 따옴표로 하는데, String 구문 안 에 따옴표들이 있을 때 Error가 발생할 수 있으므로 백슬래쉬(\)를 이용해서 해당 따옴표는 특수기능이 아닌 문자 그대로만 사용한다는 것을 적용시켜준다.

 

Input 함수

 

Input함수의 경우 User로부터 입력받는 것을 그게 무엇이든지 String type으로 저장시켜주는 함수이다.

User에게 guide를 제공하기 위해 input 함수 안에 위와 같이 문구를 삽입할 수도 있다.

 

2. Control Structures - Boolean Types

 

User의 입력 또는 특정 Condition에 따라서 특정 Code만 Conditional하게 실행시켜주게 하는 것 by Boolean Type

Boolean은 진리 값이다. 걍 True or False로 이해하면 편하고 이건 Reserved word라서 일반적인 Variable의 이름으로 선언할 수 없는 친구들이다.

 

Relational Operators

 

- 서로 비교하는 Operator들은 Output이 Boolean Type이다.

- Boolean Type을 logical하게 계산할 때, OR / AND 에서 이미 답이 명확한 경우엔 뒤를 굳이 계산하지 않는다.

or (1/0) 같은 경우엔 0으로 나누는 것임에도 error를 반환하지 않는다. 즉 실행되지 X

 

즉 False and ... 의 경우 뒤를 안 봐도 답은 False고, True or ...의 경우엔 뒤를 안 봐도 True이기 때문에 파이썬은 최대한 계산을 효율적으로 한다. by short-circuit

 

컴퓨터가 인간처럼 문자 a,b,c,A 등등을 있는 그대로 인식하는 것이 아니고 결국 얘네도 low LV에서는 문자들을 숫자로 인식한 뒤에 다시 문자로 바꿔서 화면에 띄어준다. 각 문자별로 대응되는 숫자를 표로 나타낸 것이 ASCII Code.

 

그냥 사전순서라고 생각하면 편하다. 크기 비교는 대문자 < 소문자 , 알파벳 앞놈 < 뒷놈 으로 생각하면 편하다.

 

즉, String 끼리도 대소비교가 가능하다. String과 int끼리 비교는 X

 

In Operator

이런 식으로도 Boolean Type의 Data를 return 할 수도 있다. 특정 String이 어떤 String 안에 포함되어 있는감?! 그냥 논리적으로 Yes/No 대답이 가능한 Logic인 지 확인하고 있으면 되겠다.

 

3. If / Else Statement ( 콜론: 이 들어가면 indentation을 하라)

cond1 T -> BLK1 , cond1 F + cond2 T -> BLK2, cond1 F + cond2 F -> BLK3

 

+) Nested if statement => 한 if문 안에 if/elif/else 문을 여러개 만들 수 있다.

 

4. Modules - Importing

 

모듈이란? Package다. reusability를 위해 비슷한 종류의 variable들과 function들을 하나의 파일에 저장해놓고 거기에 다가 이름을 붙혀놓는다. 그리고 얘를 필요할 때마다 꺼내다가 쓴다.

 

'math' 라는 모듈을 import 하는 순간 math 라는 object가 메모리 공간에 뜬다.

 

- math 안에 있는 variable 또는 function을 쓰려면 dot(.) operator를 쓴다.

 

 

Module에 기본적으로 저장되어 있는 Constant 값은 기본적으로 바꾸지 않는 게 원칙이다. C에서는 이것을 바꾸지 못하게 제어할 수 있지만 Python은 자유도가 높아 그렇게 하지 못한다 : Python의 단점이라면 단점

 

 

Module 전체를 불러오나, 그 중에 일부(ex: from math import pi)를 불러오나 Memory 이득은 없다. 어차피 Module 전체를 memory에 띄운다. 다만 global namespace에서 그것들을 어떻게 mapping 하냐에 차이가 有

 

5. Modules - Writing ( 모듈을 한 번 만들어보자 )

 

#temperature.py
x = 5.0
y = 9.0
z = 32.0

def conv_to_c(f : float) -> float :
    return (f-z) * x/y
def conv_to_f(c : float) -> float :
    return y/x * c + z

이렇게 임의의 함수를 만들었다면, import temperature를 통해서 위에 있는 variable , function 등에 쉽게 접근이 가능하다.

 

프로그래밍을 할 때 함수를 선언해야 한다면 이렇게 모듈에 깔끔하게 정리정돈 해서 표현하는 습관이 필요하다.

 

6. Class

 

Class도 하나의 object인데, Module과 비슷하면서도 조금 다르다.

 

Class 내에서도 다양한 function 과 variable을 정의하는데, 특별히 Class 안에서 정의한 function을 우리는 method라고 부르기로 한다.

 

그 method는 자동적으로, default로 갖고 있는 parameter가 있는데, 그 parameter는 자신이 속한 class 그 자체다.

Class -> blueprint(설계도) , Class object -> instance(제품)

 

Class 안에서 function => method , value => attribute

 

Class를 만들고, 그 class 안의 method와 attritube를 갖는 object들의 소통을 통해서 프로그래밍이 진행되는 것을 Object - Oriented - Programming , AKA OOP라고 한다. 관련 내용은 차후에 다룰 예정

 

솔직히 가장 중요한 게 String Class에 대한 이해인데,

 

String Class의 각 종 Method는 아래 링크에 잘 정리가 되어 있으니 REFER TO IT!

https://www.w3schools.com/python/python_ref_string.asp

 

W3Schools.com

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

 

 

- E. O. D -