Python
1.설치
- Python 만 설치
- anaconda 와 같은 배포판 설치 : 자주 사용하는 라이브러리는 IDE가 같이 설치
- python 기본 문법만 학습하거나 python 애플리케이션 만드는 것이 목적일 때는 python만 설치하고 데이터 분석을 위해서 설치할 때는 anaconda와 같은 배포판 설치
2.IDE
- python 만 설치된 경우는 python console 이나 IDLE 이용
- anaconda는 jupyter notebook(보고서 만들기) 와 spyder(애플리케이션 만들기)를 제공
- 초보자가 처음 분석을 공부할 때는 jupyter notebook 보다는 spyder를 권장
- vscode 나 pycharm(가상환경 만들기가 편함 - 프로젝트 할 때 유용)을 별도로 설치해서 사용
3.파이썬 프로그램의 구성 요소
1) Literal : 개발자가 직접 입력하는 데이터
2) Variable : 데이터를 저장해두고 다음에 다시 사용하기 위해서 붙인 이름
3) Expression (표현식) : 한번에 수행되는 문장
4) Function : 자주 사용되는 변수나 리터럴 그리고 표현식을 묶어서 하나의 메모리 영역을 할당받아서 수행하도록 해주는 개체 - 실행 단위
5) Class & Instance(객체) : 자주 사용하는 데이터와 함수를 묶은 것
6) Module : 하나의 파일 - 하나의 파일안에 여러개의 클래스 및 함수가 존재할 수 있습니다.
7) Package : Module의 집합 - 배포 단위
8) comment(주석) : 실행과는 상관없는 문장 - # 다음에 나오는 한줄의 문자열
데이터 분석 분야에서 일하고자 할 때는 주석을 습관화 할 필요가 있다.
4.작성 규칙
- 한 번에 실행되는 문장(표현식)은 한 줄에 작성
- 한 줄에 표현식이 두개면 ; 으로 구분
- 블럭을 만들 때는 반드시 : 을 붙이고 블럭 내의 문장은 일정한 들여쓰기를 해야 한다.
- 블럭은 제어문, 함수, 클래스, 예외처리 구문 입니다.
- 들여쓰기를 해제하면 블럭을 끝나게 된다.
- 파이썬은 줄 단위로 해석하면서 실행되며 한 번에 실행되는 문장의 끝에서 데이터를 출력할 때는 데이터만 남겨도 출력이 된다.
- 콘솔 출력은 print(데이터)
- 여러 개 출력할 때는 ,로 구분해서 설정하면 같이 출력
#!
는 주석이 아니다.- 유닉스의 shebang 으로 프로그램의 일부분입니다.
#! _*_
coding : 인코딩방식* : 이 문장은 아래 파이썬 코드의 인코딩 설정입니다.
5.python에서의 literal 작성 방법
1) 정수는 10진수로 작성
2) 실수는 정수부분.소수부분으로 작성
3) 복소수 가능 : 정수 +- 정수j
4) bool 데이터 : True와 False
5) 문자열 : " 나 "" 사이에 한 줄의 문자열을 대입
- """ 여러 줄 """ 또는 """ 여러줄 """
- 어떤 코드를 실행시키지 않을 의도로 따옴표 3개로 묶는 경우가 있다.
- 역슬래시 다음에 영문자 1개가 오면 제어문자로 특별한 의미를 갖는 문자가 된다.
- \n 줄바꿈, \t 탭, " ", ' ', \ \
6) byte 배열(bytes) : b'문자열' , b'\코드\코드..'
7) list(비교 가능한 데이터의 모임) : [ 데이터, 데이터 ...]
8) tuple(변경 불가능한 데이터의 모임) : (데이터, 데이터....), 데이터가 1개인 경우에는 (데이터,)
9) set(중복 불가능한 데이터의 모임) : (데이터, 데이터...)
10) dict(키와 값의 모임) : { 키:값, 키:값 ...}
11) none : 데이터 없음을 의미
6.가장 중요한 함수
1) type(데이터) : 데이터의 자료형을 문자열로 리턴
2) dir(데이터) : 데이터가 사용할 수 있는 속성과 함수의 목록을 리턴
3) help(함수) : 함수를 사용하는 방법과 설명
- 직접 만든 함수의 결과가 아니면 type으로 확인해보고 사용할 수 있는 속성이 함수의 목록을 확인해보고 helpt로 도움말도 확인해보는 것이 좋다.
>>> print(type(1000))
<class 'int'>
>>> print(dir(1000))
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'as_integer_ratio', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']
>>> print(int.bit_length)
<method 'bit_length' of 'int' objects>
>>> print((1000).bit_length())
10
>>>
7.keyword
- 파이썬이 마들어 둔 예약어 : 기능이 이미 구현되어 있음
- 다른 용도로 사용할 수 없음
import keyword
print(keyword.kwlist)
>>> import keyword
>>> print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
>>>
8. identifier(식별자)
-
개발자가 기능을 정할 수 있는 이름
-
식별자로 keyword는 사용할 수 없음.
-
식별자를 마들고 기능을 부여하면 자신의 영역에 없는 식별자면 자신의 영역에 새로만들고 기능을 부여하고 자신의 영역에 존재하는 식별자면 기능을 수정합니다.
-
기능 부여하기 (데이터 저장하기)
이름 = 기능;
-
식별자의 기능을 찾는 순서
- 현재 모듈이 우선권을 갖음 - > 파이썬의 설정에 따라 다름
-
파이썬이 제공하는 식별자의 이름을 자신의 모듈에서 값을 대입하면 기존의 기능을 사용할 수 없다.
- 식별자를 찾는 순서
import sys
print(sys.path)
- Mac이나 Linux 등에는 Python 2.x 버전이 설치가 이미 되어 있는데 여기에 3.x 버전을 설치 하면 기존 버전과 함께 존재함.
- 이런 경유에 파이썬 모듈 패키지를 다운로드 받았는데 없다고 메시지가 출력되는 경우가 있다.
- 이 경우는 path를 확인 해야함니다.
9.Variable
- 데이터를 저장하고 저장한 데이터에 이름을 붙이는 것
- 변수 생성
- 식별자 = 데이터
- 변수는 생성된 블럭에서만 사용 가능
- 블럭이 없어지면 메모리도 없어지기 때문에 같이 소멸된다.
- 변수를 만드는 이유는 데이터를 다음에 또 사용하기 위해서 입니다 .
- 리터럴이나 연산식의 결과 또는 함수의 결과를 바로 사용하지 말고 변수에 저장한 후 사용하는 것을 습관
- 데이터 분석을 할 때는 특별한 경우가 아니면 기존 변수를 수정해서 사용하지 않는 것이 좋다.
중간 결과나 전처리 한 데이터들은 새로운 변수에 저장하는 것을 습관화 하자
데이터분석에서는 중간 결과나 초기 데이터 등을 재사용할 가능성이 높기 때문이다.
#기존의 데이터가 없어져버림
a = 10
print(a)
a= a+ 5
print(a)
#기존의 데이터를 보존
b = 10
print(b)
c = b + 5
print(c)
10.연산자
1) 산술 연산자
-
+: 동일한 종류의 데이터끼리만 사용이 가능
- 숫자끼리는 덧셈을 하지만 숫자가 아닌 경우는 결합
-
-:
2) 비교 연산자
>, >=, <, <=
==, !=
- 이 연산자들은 동일한 자료형끼리만 가능
>, >=, <, <=
는 숫자 데이터에만 사용==, !=
는 모든 자료형에 사용 - 연산의 결과는 True , False
- bool 데이터와 숫자 데이터 사이에 사용되면 bool 데이터는 True는 1 False는 0으로 간주
- 산술 연산자보다 우선수위가 낮다
3) 비트 논리 연산자 : 분석이나 이미지 처리 그리고 Embedded에서 중요
-
정수 데이터를 2진수로 변환해서 비트 단위로 연산을 한 후 결과를 다시 정수로 변환해주는 연산
-
비트 각각을 연산
-
&
: and - 둘다 1인 경우만 1 나머지 경우는 0 -
|
: or - 둘 다 0 인 경우만 0 나머지 경우는 1 -
^
: xor - 두 개가 같은 경우는 0 다른 경우는 1 -
~
: 1의 보수 연산(0->1, 1->0) -
각각 연산을 해서 결과를 만든다는 것이 중요
-
데이터의 모임끼리 이 작업을 수행하면 데이터 각각을 여산해서 데이터의 모임으로 결과를 리턴
-
<<
: 왼쪽의 데이터를 오른쪽의 숫자만큼 왼쪽은로 shift -
>>
: 왼쪽의 데이터를 오른쪽의 숫자만큼 오른쪽으로 shift
4) 조건 논리 연산자&& : and
|| : or
- 데이터 전체를 하나로 보고 연산을 해서 결과도 하나만 생성
- 연산의 결과를 True 또는 False로 리턴
5) 기타 연산자
in
: 왼쪽의 데이터가 오른쪽에 소속되어 있는지를 리턴not in
: 왼쪽의 데이터가 오른쪽에 소속되지 않았는지를 리턴is
: 동일한 데이터를 가리키는지를 리턴is not
: 동일하지 않은 데이터를 가리키는지를 리턴type(데이터)
: 데이터의 자료형 리턴id(데이터)
: 데이터의 참조를 리턴in
과type
이 자주 사용- 나머지는 공부할 때만 학습
6) 할당 연산자
=
: 오른쪽의 값을 왼쪽의 변수에 대입+=
: 왼쪽 변수의 값에 오른쪽의 값을+
한 후 결과를 왼쪽의 변수에 대입
파이썬 콘솔 입력
- input("메시지")를 호출하면 한 줄의 텍스트를 입력받고 리턴해주는 함수
name=input("이름을 입력하세요")
문자열 데이터를 숫자로 변경하기
int("정수 문자열")
: 정수로 변환되서 리턴float("실수 문자열")
: 실수로 변환되서 리턴
하나의 정수를 입력받기
n = int(input("정수를 입력하세요")) # 좋지 않은 방법 (느려진다)
#아래 처럼 나눠서 처리하자
s = input("정수를 입력하세요")
n = int(s)
'Language_Study > Python' 카테고리의 다른 글
[Python] 5.문법-자료형 (0) | 2021.01.19 |
---|---|
[Python] 4.문법-클래스 (0) | 2021.01.19 |
[Python] 3.문법-Function (0) | 2021.01.19 |
[Python] 2.문법 - 제어문 (0) | 2021.01.19 |
[Python] 0.intro (0) | 2020.12.23 |