Python 기초 정리

jonghyuck’s velog·2022년 7월 27일
0

Python 정리

목록 보기
1/12

❓왜 파이썬을 배워야 할까❓
📝 Code Style Guide
✅ 기초 개념 - 변수
✅ 기초 개념 - 연산자
✅ 기초 개념 - 자료형
✅ 기초 개념 - 컨테이너

❓왜 파이썬을 배워야 할까❓

우리는 여러 언어들속에서 취업 또는 각자의 목적에 의해서 배울 언어들을 선택해야 한다. 물론, 모든 언어를 사용할줄 안다면 아주 좋겠지만 그랬으면 이 글을 볼 필요도 없을것이다.

  • 그렇다면 왜 파이썬을 공부해야 할까???

한국은 이미 자바 공화국이다. 여러 스타트업이나 특정 몇몇 회사에서는 다른 스택을 사용하는 경우도 있지만 그렇게 취업을 했다고 해도 결국 자바를 알고 스프링을알아야 이직에 유리하다.

하지만, 파이썬에게는 파이썬만의 무기가 있다.

  1. 쉽다.
  2. 코드를 짜는게 빠르다.
  3. 테스트 코드를 통한 서버의 스크립트를 짜기 유리하다.

1,2번 두가지는 파이썬이 코딩테스트를 준비하는 사람 또는 처음 코딩을 접하는 사람들에게 아주 좋은 언어라는 증거이다. 그리고 활용할 가치가 많은 언어인것은 분명하다.

이전에도 몇차례 파이썬을 공부했었지만 깊이있게 이해하고 활용한 경험은 많이 없다. 따라서 이번 시리즈에서는 파이썬을 제대로 정리하고 활용해볼 목적으로 시작해보려고 한다.


📝 Code Style Guide

코드 스타일 가이드가 왜필요할까?

개인적으로 개발자라면 당연히 지켜져야 하는 가이드라고 생각한다.
같이 일하는 동료 개발자가 변수명을 a,b,c로 지어서 가져온다면 어떻게 해야 할까? 퇴사를 해야한다.
적어도, 자신이 능력있는 개발자가 되고 싶다면 스타일 가이드를 줄줄 외우고 있지는 못해도 이런 패턴의 존재를 알고 활용할줄 알아야 한다고 생각한다.

  1. 파이썬에서 제안하는 스타일가이드
  2. 각 회사 / 프로젝트마다 따로 스타일 가이드를 설정하기도 함

만약 아직 모른다면 괜찮다. 회사마다 다르고 환경마다 다를수 있다. 중요한 것은 자신이 속한 단체의 규율을 따르는것이 기본이라는것을 알고 행하는 것이다.


✅ 기초 개념 - 변수

  • 변수(Variable)은 데이터를 저장하기 위한 공간을 의미한다.
  • 쉽게 말하면 어떤 물건을 담을 수 있는 박스를 의미한다. 다른언어에서는 이 박스에 담길 물건의 종류에 따라 사용 방법이 다르지만 파이썬에서는
a = 5
a = 'python'
a = [1,2,3,4,5]
  • 이처럼 모든 변수를 다 담을 수 있다.(이때문에 불편한 점도 있기 때문에 주석과 변수명을 잘 설정해야한다.)

📍 추상화

  • 변수이름은 아무거나 해도 상관없다. a,b,c, apple, poo 대부분의 단어가 가능하다.
  • 하지만 코딩을 해본 사람이라면 이런 변수명은 재앙이라는것을 알것이다.

때문에 추상화라는 개념이 필요하다. 예를 들어, 아메리카노의 가격을 정하는 변수가 필요하다면

americano_price = 20000

적어도 이정도의 센스는 있어야 한다. 값에 이상이 있을지언정 이름을 보고 헷갈리면 안된다는 말이다. 이렇듯 직관적으로 변수의 내용을 추측할수 있는 개념을 추상화라고 한다.


✅ 기초 개념 - 연산자


파이썬은 다르다. 다른 언어와 다르게 //과 **이라는 연산자가 존재한다.
아주 기초적인 개념이기 때문에 /와 //의 차이만 짚고 넘어가려고 한다.

a = 5
b = 2
a // b # 2
a / b # 2.5

이정도면 설명이 되었을것이라고 생각한다.


✅ 기초 개념 - 자료형


파이썬에서는 특이한점이 하나 더 존재한다.
바로 문자열c와 문자c를 구분하지 않는다는 것이다. 파이썬으로 처음 입문한 사람이라면 모를수 있지만 다른 언어를 사용해봤다면 공감할 것이다.
자바에서는 string형인 a 를 문자로 사용하려면 at.char('c')와 같은 방법으로 사용해야한다. 문법이 틀린것은 넘어가도록하자.

중요한 것은 파이썬에서는 모든 문자형은 String Type으로 분류된다는 것이다. 아주 편하기 그지없다.

그럼 조금만 자세하게 알아보도록 하자.


📍 Numeric Type

  • int형(정수 자료형)

    • 0, 100, -200과 같은 정수를 표현하는 자료형
    • 파이썬에서는 int형에 따른 overflow가 나지 않는다. 이부분이 아주 편하다.
  • float형(실수 자료형)

    	- 유리수와 무리수를 포함하는 '실수'를 다루는 자료형
    	- 실수 연산에서 주의해야 할 점은 파이썬에서는 아래와 같은 오차가 존재한다는 것이다.
    print(3.2-3.1) # 0.10000009
    print(1.2-1.1) # 0.099999999999
    • 당연하게도 이 둘을 비교하면 다르다는 결론이 나오게 된다.
      따라서, 반올림을 통한 데이터 가공이 반드시 필요하다.
  • complex형(복소수 자료형)

    • 복소수를 다루는 자료형

설명이 다소 부족하다고 생각되지만 아직까지 깊은 설명을 필요로 하지 않는 부분이라 생각하여 정리만 하고 넘어가려 한다.


📍 String Type

  • 파이썬은 작은따옴표와 큰따옴표로 문자열과 문자를 따로 구분하지 않는다. 또한, 삼중따옴포를 통해서 아래와 같이 출력을 할 수 있다.
print('''
안녕하세요
안녕
''')
# 안녕하세요
# 안녕 
# 이렇게 출력
  • Escape sequence

  • Escape sequence를 활용하면 문자열안에서 특정 기능 또는 특정 기호를 사용할 수 있도록 도와준다.

  • 문자열 덧셈

    • 문자열의 덧셈은
      a = 'hello' + ' world'
      # hello world
      와 같이 사용할 수 있는 특징이 있다.(파이썬 특징)
  • String Interpolation(문자열을 변수를 활용하여 만드는 법)

    • %-formatting

      name = 'jonghyuck'
      score = 3.5
      
      print('%s의 성적은 %f' %(name,score))
    • str.format()

      print('Hello, {}! 성적은 {}'.format(name,score))
    • f-strings -> python3.6 이상부터 사용 가능

      print(f'Hello, {name}! 성적은{score}')

📍 None

  • 값이 없음을 표현하기 위해서 None이 존재한다.
  • 0이나 False는 값이 존재하는 것이고 None은 아무런 데이터가 없음을 의미한다.

📍 Boolean

  • 논리연산 / 비교에 자주 사용
  • True & False가 있으며 참과 거짓을 의미한다.
  • 비교 연산자

    • 주로 조건문에 사용되며 값을 비교하며 True와 False를 리턴한다.

    • 주의해야 할 점은 is와 ==의 차이점이다. 이부분은 주소의 참조와 관련하여 설명해야 하는 부분이니 일단은 넘어가도록 하자.
  • 논리 연산자

    • 파이썬에서는 &와 ||을 대신하여 직관적인 and와 or을 사용한다.
    • 파이썬에서만 가능한 90 < temp < 100과 같은 문법이 비교와 논리연산에서 사용 가능하지만 이는 좋지 않은 코드라고 생각한다. 이러한 부분은 알고 넘어가야 할 부분이다.

✅ 기초 개념 - 컨테이너

  • 시퀀스형과 비시퀀스형의 차이는 인덱스로 접근할 수 있는지 여부에 따라 다르다.
  • 컨테이너의 경우
    • 시퀀스 & 비시퀀스
    • 가변형 & 불변형(mutable & immutable)
      로 구분할 수 있다. 이때문에 오류가 발생할 수도 있으니 이에 대한 부분도 생각해 보아야 할 부분이다.

📍 리스트

  • 리스트는 배열과 비슷한 개념이다. 하지만 파이썬에서는 변수에 자료형을 따로 선언하지 않는 동적언어의 특성을 따르기 때문에 리스트 역시 자료형이 따로 없다.
list_a = []
list_b = [1,2,3]
list_c = list()
  • 이와 같은 방법들로 사용할 수 있으며 list[i]로 각 인덱스에 접근이 가능하다.

파이썬의 특징으로는 리스트 또는 컨테이너를 선언시 for문을 활용한 2차원리스트 선언과 같은 편한 방법이 존재하는데, 이를 List Comprehension이라 한다.

📍List Comprehension

  • 여러 줄의 코드를 한줄로 줄일수 있는 아주 편안한 방법이다.
    • list(expresstion for 변수 in iterable)
    • [expression for 변수 in iterable]
      cubic_list = list(x**3 for x in range(1,4)
      print(cubic_list)

📍 튜플

  • 튜플은 여러 개의 값을 순서가 있는 구조로 저장하고 싶을 때 사용
    • 리스트와의 차이점은 생성 후, 담고있는 값의 변경이 불가능하다는 점이다.
a = (1,2,3,4)
a = tuple(1,2,3,4)
  • 이와 같은 선언할 수 있으며, 리스트는 대괄호 튜플은 소괄호를 사용하여 선언한다.
  • 주의해야 할 점은 튜플의 경우 생성시 하나의 항목으로 구성된 튜플은 생성시 값 뒤에 쉼표를 붙여야 한다는 것이다. 복수항목역시 의무는 아니지만 붙이는것을 권장한다.

자세히 정리를 할려 했지만 제대로 다루기에 한페이지에 설명하기엔 너무 길다 판단하여 이정도만 정리하고 다음 포스팅에서는 각각의 항목에 대한 세세한 포스팅을 다루려고 한다.

0개의 댓글