즐겁게!! 자신있게!! 살아보세!!

재밌는 인생을 위하여! 영촤!

Language_Study/Python

[Python] 1.문법

Godwony 2020. 12. 23. 14:41
반응형

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(데이터) : 데이터의 참조를 리턴
  • intype이 자주 사용
  • 나머지는 공부할 때만 학습

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