1. 파이썬의 특징
파이썬은 다른 언어들에 비해서 상대적으로 배우기가 쉽다. 그러나 속도가 느린 편이기 때문에, 배우기는 어려우나 속도가 빠른 C언어와 함께 쓰는 경우가 종종 있다. C언어는 컴파일 언어이고, 파이썬은 인터프리터 언어이기 때문이다. 파이썬 라이브러리 중에는 C언어로 작성된 것들도 많다. 대표적으로 numPy라는 라이브러리는 C 언어의 라이브러리를 파이썬에서 쓸 수 있도록 래핑해준다.
파이썬은 모바일 프로그래밍이나 운영 체제 프로그래밍에는 적합하지 않다. 모바일 앱을 만들고 싶다면 Java/Kotlin 또는 Swift를 사용하는 것이 일반적이고, 운영 체제를 만들기 위해서는 C언어 등의 로우 레벨 언어들을 이용하는 것이 보편적이다.
2. 파이썬 설치 및 기본 환경 설정
intelliJ Pycharm 에서 [Alt + F12]를 누르면 Terminal 창을 띄울 수 있다. 기본 설정이 Windows PowerShell로 되어있는데, 만약 윈도우의 cmd(Command Prompt)를 사용하고 싶다면 아래 그림과 같이 + 버튼 옆의 화살표를 눌러 추가해주면 된다.
그리고 드롭다운 화살표를 눌렀을 때 나오는 Settings 창에서 cmd를 기본 Terminal 로 설정할 수도 있다.
특히 파이썬은 파이썬이 설치된 후, Terminal에서 python이라는 명령어를 실행하면 REPL(Read Evaluate Print Loop)이라고 하는, 명령어를 바로 테스트 해볼 수 있는 환경이 제공된다. cmd처럼 화살표 위 키를 이용해서 이전 명령어를 입력할 수 있고, [Ctrl + Z] 이후 Enter키를 눌러 REPL을 종료할 수 있다.
*google Colaboratory
파이썬을 로컬 환경에 설치하지 않고, 온라인 환경에서 파이썬 실행환경을 제공한다. 이외에도 온라인에서 python을 실행할 수 있는 여러 서비스들이 많다.
3. 파이썬 자료형
타입과 자료구조
타입
숫자, 문자열, 불
자료 구조
변수, 리스트, 튜플, 딕셔너리, 집합
숫자, 문자열, 불, 튜플은 재정의하지 않는 이상 변경되지 않으므로 Immutable 하다고 하고, 리스트, 딕셔너리, 집합 등은 추가나 삭제 등이 가능하므로 Mutable하다고 한다.
4. 숫자 자료형
정수, 실수, 컴퓨터식 지수 표현(4.24e10, 4.24e-10), 8진수(0o37), 16진수(0x7A) 등을 표현한다. 참고로 8진수는 0o뒤에 8진수 숫자(0~7)를, 16진수는 0x뒤에 16진수 숫자(0~f)를 넣는다.
타입의 확인은 type({변수}) 함수를 통해 할 수 있다. 숫자 타입은 정수형 int, 실수형 float가 있다.
기본적인 연산은 다른 언어와 같다. 특히 나눗셈의 경우에는 나누기는 '/', 몫은 '//', 나머지는 '%' 연산자를 사용한다.
5. 문자열 자료형
문자열의 표현과 타입
문자열을 표현하는 방법은 " ... "와 같이 문자열을 큰 따옴표로 감싸주는 방법이 있다. 이외에 '...' (작은 따옴표), """...""" (큰 따옴표 3개), '''...'''(작은 따옴표 3개)를 사용할 수 있다. 백 슬래시로 escape를 할 수 있는 것은 다른 언어와 같다. 따옴표 3개를 사용하면 escape 처리 없이도 편하게 여러 줄의 str을 입력할 수 있다.
문자열의 type은 str이다.
문자열의 덧셈, 곱셈은 다른 언어와 같다. 문자열끼리 더하면 문자열 이어붙이기(concatenate)가 되고, 곱하면 곱하는 숫자만큼 해당 문자열을 반복한다.
이제 문자열을 다루는 다양한 내장 함수들에 대해서 살펴볼 것이다. 그런데 이런 함수들은 대략적으로 기능만 알고 있으면 되는 것이지, 굳이 외울려고 할 필요는 없다. 필요한 순간이 오면 다 구글링해서 찾으면 그만이며, 그렇게 조금씩 쓰다보면 익숙해진다. 그냥 이런 기능을 하는 내장함수가 있었다는 것만 기억하면 된다.
인덱싱(indexing)
다른 언어와 다르게 파이썬은 문자열의 인덱싱 기능을 제공한다. 0번이 str의 첫번째 문자, -1로 가면 맨 마지막 문자를 선택할 수 있으며 길이를 초과하는 index값을 조회할려고 하면 IndexError가 발생한다.
len
문자열의 길이 정보는 len({문자열}) 함수를 쓴다. 이를 위 개념과 합쳐보면, 문자열의 길이가 34 일때, a[0] = a[-34] = "L"을 표현하게 된다(a[34], a[-35]는 에러).
find
{문자열}.find({찾을 문자}) 문법을 사용하면 문자열 내부의 찾을 문자의 index를 역으로 구할 수도 있다. 항상 맨 앞의 index 값을 반환하며, 찾을 수 없을 때는 -1을 반환한다.
문자열 자르기(slicing)
{문자열}[first:end:gap] 문법을 사용한다. 구분자가 :인 것에 유의하자. 문자열의 first index 이상 ~ end index 미만의 문자열을 gap 간격으로 slicing 한다. gap의 기본값은 1이며, 이 경우 연속으로 문자열을 출력하는 것을 의미한다. first나 end를 생략하면 문자열의 맨 처음 또는 맨 끝을 의미한다.
gap만 설정할 수도 있다.
문자열 포매팅(formatting)
%형 포매팅
문자열 포매팅은 문자열 내부에 동적으로 변수값을 넣어주고 싶을 때 사용한다. 문자열 뒤에 %를 넣어서 변수로 들어갈 값들을 설정할 수 있다. %d는 정수, %f는 실수, %s는 문자열, %c는 문자열 1개, %o는 8진수, %x는 16진수, %%는 %값 자체 를 정의하여 사용한다. 다만 숫자는 문자열로 변환될 수 있으므로 %s 타입으로 하면 숫자형 타입은 문자열 타입으로 변환되어 매핑된다.
.format형 포매팅
변수로 지정해서 {} 문법으로 포매팅을 하면, .format() 구문에 들어가는 값은 순서와 무관하게 변수명을 따라 값이 매핑된다.
f형 포매팅 (python 3.6 이상)
문자열 앞에 f를 붙여줘서 변수값을 포매팅 할 수 있다.
정렬과 공백
%s에서 %와 s 사이에 숫자값을 넣으면 그만큼의 공백을 의미한다. 아래 예제에서는 %형 포매팅 문법을 사용했다. 원래 "%s" % "hi"라고 했다면 'hi'만 출력됬을텐데, 10을 넣어줌으로써 뒤에 오는 "hi" 문자열 앞에 10칸의 공백이 추가되었다.
소수점 표현
위 정렬과 공백 문법과 비슷하게, 소수점의 자리 수를 제한하여 표현해줄 수 있다.
문자 개수 세기
문자열 내부의 문자 개수를 세는 count() 함수도 있다.
특정 문자로 문자열 나누기, 합치기
문자열을 특정 문자로 나누거나, 리스트의 원소들을 하나로 합칠 수 있는 join() 함수가 있다.
공백 삭제
문자열 양 옆의 공백 제거는 strip()으로 한다.
문자열 바꾸기
특정 문자열을 replace() 함수를 이용하여 바꿀 수 있다.
문자열을 나누어 리스트로 만들기(Split)
다른 프로그래밍 언어에도 대부분 있는 split 기능이다.
참조
1. 유튜브 조코딩 채널 - 최신 파이썬 코딩 무료 강의
https://www.youtube.com/watch?v=KL1MIuBfWe0
'Programming-[Backend] > Python' 카테고리의 다른 글
Python 라이브러리 실행 에러 : Windows 환경에서 pip install 정확히 하기(black, isort 실행 문제) (2) | 2022.07.08 |
---|---|
파이썬 기본 - 4. 입력과 출력, 클래스, 모듈, 패키지, 예외처리, 내장/외장 함수 (0) | 2022.06.05 |
파이썬 기본 - 3. 조건문, 제어문, 함수 (0) | 2022.06.04 |
파이썬 기본 - 2. 리스트, 튜플, 딕셔너리, 집합, 불, 인스턴스 복사 (0) | 2022.06.04 |
객체지향 프로그래밍 : 파이썬 생성자, Decorator 예제 (0) | 2020.06.29 |