본문 바로가기
TIL(Daily)/Python

Mon/05/Sep/22(Python 언어의 이해)

by Hawie 2022. 9. 5.

1. Python 언어의 이해

 

컴파일 언어인 C, Java와는 다르게 Python은 인터프리터 언어입니다.컴파일러란?

  • 사람이 작성한 코드를 바로 실행하는 것이 아닌, 컴퓨터가 이해할 수 있도록 기계어로 번역하는 과정을 의미합니다.
  • 대표적인 컴파일 언어로는 C, Java 등이 있습니다.
  • 인터프리터 언어의 특성 상 코드를 컴파일 하는 단계가 없기 때문에 코드가 실행되기까지의 속도는 빠르지만, 런타임에서 코드가 동작하는 시간은 비교적 느린 편입니다.
  • 동적 타입 언어로 C, Java와 다르게 변수를 할당할 때 자료형을 지정해 주지 않아도 됩니다.
    • 정적 타입 언어인 Java의 변수 선언
      • int num = 10;
      • String hello = "world!!"
    • 동적 타입 언어인 Python의 변수 선언
      • num = 10
      • hello = "world!!"
  • 문법이 쉽고 간결합니다. 때문에 생산성이 좋으며 코드의 가독성이 좋습니다.

 Java에서의 문자 출력

    public class PrintHelloWorld {
       public static void main(String[] args) {
             System.out.println("hello world!!");
        }
   }

 

Python에서의 문자 출력

 

print("hello world!!")

 

자바 랑 비교 했을 때 문법 과 생산성,가독성 차의는 어마 어마하다..

 

코드 컨벤션

 

프로그래밍 언어에는 각 언어에 맞는 코드 컨벤션이 존재합니다.

 

코드 컨벤션이란?

 

개발을 하다 보면 한 번씩 접하게 되는 밈이 있습니다.

-이 코드가 무슨 코드인지는 오직 신과 나만이 안다 그리고 이제는 오직 신만이 아신다.-

실제로 개발을 하다 보면 내가 짠 코드가 1주일만 지나도
"과거의 나는 과연 무슨 생각으로 이런 코드를 짠 걸까.." 라는 생각이 들 때가 있습니다.

내가 짠 코드를 봐도 이런 생각이 드는데,
팀 프로젝트를 하며 다른 사람이 짠 코드를 볼 때는 어떨까요?

코드 컨벤션은 이러한 상황을 만들지 않게 하기 위해 스타일을 통일하자는 "약속"입니다.

파이썬에서는 PEP-8이라는 컨벤션 가이드를 제공하고 있습니다.

 

코드 컨벤션은 언어에 따라 요구하는 내용이 다르기 때문에, 내가 개발하는 언어에 맞는 컨벤션 스타일에 맞춰 코드를 작성할 필요가 있습니다.

 

  • 파이썬에서 요구하는 코드 컨벤션
    • 파이썬에서는 네이밍 컨벤션으로 변수 / 함수를 네이밍할 때는 Snake 표기법을, Class를 네이밍할 때는 Pascal 표기법을 사용합니다.
      • 네이밍 컨벤션이란?예를 들어 Python is very good 이라는 문장이 있을 때, 아래와 같이 사용됩니다.
        • Pascal : PythonIsVeryGood / 각 단어를 대문자로 구별합니다.
        • Camel : pythonIsVeryGood / Pascal과 동일하지만, 첫 문자가 소문자로 시작합니다. 모양이 쌍봉낙타와 비슷하게 생겼다고 해서 지어진 이름입니다.
      • 네이밍 컨벤션에는 대표적으로 Pascal, Snake, Camel 표기법이 존재합니다.
      • Camel 표현식은 첫 번째 문자가 소문자로 시작하는 Lower Camel Case와
        첫 번째 문자가 대문자로 시작하는 Upper Camel Case가 존재합니다.

        이 때문에 간혹 Pascal과 Camel 표현법의 용어가 혼동되기도 하는데,
        Microsoft에서는 소문자로 시작하는 표현법만 Camel로, 대문자로 시작하는 것은
        Pascal이라고 명시하고 있습니다. 더 자세한 내용은 여기서 확인할 수 있습니다.
    • Snake : python_is_very_good / 각 단어를 언더바( _ )로 구분합니다. 모양이 뱀과 비슷하게 생겼다고 해서 지어진 이름입니다.
    • 클래스, 함수, 변수 등을 네이밍할 때는 이름만 보고 해당 코드가 어떤걸 의미하는지 추측할 수 있어야 합니다.
      • PIE = 3.14 상수를 표현할 때는 예외적으로 모든 문자를 대문자로 표현합니다.
      • numbers = [1,2,3,4] list를 표기할 때는 복수로 표현한다. 혹은 number_list와 같이 표현할 수도 있습니다.
        • for number in numbers: 반복문 사용 시 가독성을 늘릴 수 있습니다.
      • def add(a, b): return a + b 함수를 네이밍할 때는 해당 함수가 어떤 역할을 하는지 표현해야 합니다.

 

 

오늘 내용을 공부하면서   알고 있던 내용도 있고,  처음 듣는 내용도 있었다.

 

첫번째로 코드 컨벤션 알수있게 되었다  그 중에서도 네이밍 컨벤션을 할 때 사용하는  Pascal, Camel ,Snake

과 같은  들어 본적은있었지만

정확하게 모르고있었는데

오늘 배우게 되었다.

 

아직 완벽하게 이해 지는 못했지만, 개념 은 어느정도 잡힌거 같다.

그리고 어떤  언어 던지 역시 가독성이 좋아야  된다고 다시 하번 느끼게 되었다.

잘 생각 해보면 책 도 가독성이 떨어지는 글을 읽으면 아무리 좋은 내용과 주제 라도  정확하게 전달이 안된다.

 

아직 제대된 코드를 만들어 본적은 없지만,

만들게 될 떄 오늘 내용을 생각 하면서 만들어 보도록 해야겠다.

 

두번째로 파이썬 기초에서는 기존에 배운 내용 을 복습 하는생각으로 들었다.

그래서 거의 다 이해는데 문제는 없었지만,

 

변수 유효 범위(variable scope)에 대한 이해

는 배우게되었다.

 

지역변수는 사용 되는 경우 가 많이 있고 사용을 권장하는편인데

 

전역변수(Global Variable) 은 권장하지 않은 변수 라는거 알게 되었다.

 

사용 할 때 가 오면 오늘 내용을 다시 한번 보고 사용하도록 하겠다.

 

 

(https://teamsparta.notion.site/Python-1-743e6c6067da45ee8a023d96e7e515f2)

'TIL(Daily) > Python' 카테고리의 다른 글

Wed/07/Sep/22 TIL  (1) 2022.09.08
Tue/06/Sep/22-TLI  (0) 2022.09.06
클래스  (0) 2022.09.02
함수 심화  (0) 2022.09.02
map, filter, lambda식  (0) 2022.09.02

댓글