==================================

출처: jump to python

==================================

 

파이썬이란?

 

  1. 파이썬은?

    1. 인터프리터 언어(한 줄씩 소스코드를 해석해서 그때그때 실행해 결과를 바로 확인할 수 있는 언어)이다.

  2. 특징

    1. 쉬운 언어

    2. 무료

    3. 속도가 빠르다. C는 더 빠름.(그런 이유로Python 함수들 중 C로 작성된 것들도 많음)

      1. ‘life is too short, you need python’

  3. 파이썬으로 가능한 일

    1. 시스템 유틸리티 제작

    2. GUI 프로그래밍

      1. Tkinter를 주로 사용

    3. C/C++과의 결합

    4. 웹 프로그래밍

    5. 수치 연산 프로그래밍

      1. 적합하지는 않지만 Numpy라는 모듈을 제공하여 빠르게 돌아감

    6. 데이터베이스 프로그래밍

      1. Sybase, Infomix, Oracle, MySQL, PostgreSQL등 데이터베이스에 접근하기 용이한 도구를 제공

      2. pickle은 자료 변형없이 그대로 파일을 저장하고 불러옴

    7. 데이터분석,  사물인터넷

      1. pandas 모듈 이용

  4. 훑어보기

    1. 파이썬은 대화형 인터프리터이다. 

    2. 파이썬은 대소문자를 구분한다.

    3. ‘…’은 아직 문장이 끝나지 않음을 의미한다.

 

데이터형

 

  1. 숫자형

    1. 종류

      1. 정수(integer): 0, 양수, 음수

      2. 실수형(floating-point): 소수점이 포함된 수

        1. ex) 3.5e10, 3.412 등

      3. 8진수나 16진수도 사용가능

    2. 사칙연산

      1. +,-,/,*

      2. 제곱: **

      3. 몫: //, 나머지: %

        1. 몫의 반환값은 정수값만 됨

          1. ex) 7/4=1.75지만 7//4=1

          2.  
  2. 문자열: 문자나 단어들의 집합

    1. 표현

      1. 문자열을 하나로 취급할 때: 작은따옴표로 감싸거나 큰따옴표로 감쌈

        1. ex) “python’s availability”혹은 ‘python”s availability’

      2. 작은따옴표나 큰따옴표를 문자열안에 포함시키고 싶을 때

        1. ex) \큰따옴표 or \작은따옴표 -> 컴퓨터는 문자열을 둘러싸는 기호가 아닌 문자 자체로 인식함

      3. 여러줄을 사용할 때:  \n을 사용해 줄을 바꾸거나 세개의 큰따옴표 혹은 작은따옴표로 감쌈

        1. ex) ‘life is too short, \n we should use python’

        2. ex) ‘’’life is too short, … we should use python’’’

    2. 이스케이프코드: 문자열에서 미리 지정해둔 문자코드

      1. \n: 줄바꿈, \t: 문자열 탭

      2. tip: 이스케이프코드보다 따옴표 세개사용이 깔끔하여 권장

    3. 문자열사칙연산(다른 언어에서 찾기 힘든 부분)

      1. 합치기(concatenation): + 사용

        1. ex) ‘abcd’ + ‘efg’ = ‘abcdefg’

      2. 곱하기: * 사용, 문자열을 두번 반복하라는 의미

        1. ex) ‘abcd’*2 = ‘abcdabcd’

      3. 문자열길이구하기: len()함수

    4. 인덱싱과 슬레이싱

      1. 인덱싱 방법

        1. 파이썬은 0부터 인덱싱해서 마지막은 n-1까지 인덱싱

        2. 인덱싱 중 ‘-’기호는 문자열을 거꾸로 카운트한다는 의미

        3. 공백문자도 문자이므로 인덱싱가능

        4. 문자열은 immutable 자료형이어서 인덱싱으로 문자변경이 불가

      2. 슬레이싱방법

        1. 문자열변수[n,m]: n번째부터 m-1번째까지

    5. 문자열 포매팅(formatting): 문자열에 삽입하기, 포맷코드 사용

      1. 숫자, 변수: %d, 부동소수: &f

        1. ex) ‘apple is %d’ %3

        2. ex) %0.4f% 3.4553443 = ‘3.4553’

        3. %10.4f% 3.4553443 = ‘      3.4553’

      2. 문자: %s, 다른 숫자형을 입력해도 자동으로 문자열로 변환

        1. ex) ‘apple is %s’ %’red’

      3. 두개 이상의 값

        1. ex) ‘apple is %s and %d’ %(‘red’,3)

      4. 포맷코드에 %를 함께 쓰고 싶을 때: %%를 사용 -> %를 문자로 인식

        1. ex) ‘error is %d%%’ %30 = ‘error is 30%’

      5. 정렬하기: 포맷코드 사이에 원하는 값을 입력하면 그만큼의 문자열을 생성하고 오른쪽 정렬을 함

        1. 음수: 왼쪽 정렬

        2. ex) ’%10s’ %’hi’ = ‘        hi’

      6. %와 %d를 함께 쓸 때는 %d%% 이렇게 사용

    6. 모든것을 통합하는 format함수

      1. 한개 값

        1. ex) ‘apple is {0}’.format(3) -> 숫자, 문자, 변수도 대입 가능

      2. 두개 이상의 값

        1. ex)’apple is {0} and {1}. format(‘red’,’10’)

      3. index 숫자 자리에 문자사용 가능

        1. ex) ‘apple is {0} and {color}’.format(‘1’,color=’red’)

      4. 정렬

        1. 왼쪽정렬: {0:<10}

        2. 오른쪽 정렬: {0:>10}

        3. 가운데 정렬: {0:^10}

        4. 공백에 원하는 문자를 넣고 싶을 때: {0:문자^10}

      5. 소수점 표현

        1. ‘{0:0.4f}’.format(3.234235) = ‘3.2342’

      6. f 문자열 포맷팅

        1. f ‘문자열’ 하면 외부 변수를 참조 가능

          1. ex) name = ‘홍길동’,  f’my name is {name}’ = ‘my name is 홍길동’

        2. f’{‘hi’:<10}

        3. f’{name:!<10}’

        4. f’{value:0.4f<10}’

    7. 문자열 내장함수: 문자열이 자체적으로 가지고 있는 함수

      1. 사용법: 문자열 뒤에 점을 찍고 함수를 사용하면 됨

        1. 문자 수 세기: 문자.count(‘수를 셀 문자’)

        2. 문자 찾기

          1. 문자.find(‘찾을문자’): index를 반환, 없다면 -1을 반환

          2. 문자.index(‘찾을 문자’): 없으면 error 반환

        3. 문자 삽입: 삽입할문자.join(‘문자열’)

          1. ex) ‘,’.join(‘abc’) = ‘a,b,c’

        4. 문자열 대문자,소문자화: 문자열.upper(): 대문자, 문자열.lower(): 소문자

        5. 공백지우기: 왼쪽지우기-> 문자열.lstrip(), 오른쪽 지우기 -> 문자열.rstrip, 둘다 지우기 -> 문자열.strip

        6. 문자 대체: 문자열.replace(‘대체당하는 문자’,’대체할문자’)

        7. 문자나누기: 문자열.split() -> 스페이스,엔터,줄바꿈을 기준으로 나눔, 원하는 문자에 따라 나누고 싶으면 함수에 문자를 입력하면 됨

  3. 리스트(list)

    1. 특징

      1. list는 대괄호([]) 안에 쉼표(,)로 요소를 구분 지음

      2. 어떠한 자료형도 포함할 수 있음 -> list안에 list도 가능함

      3. 인덱싱과 슬라이싱

        1. 인덱싱 방법

          1. 문자열과 동일

          2. list안에 list인덱싱: list[][]

            1. 삼중 list도 가능: list [][][]

        2. 슬라이싱방법

          1. 문자열과 동일

          2. list안에 list 슬라이싱: list[][]

    2. 연산

      1. list끼리 더하면 요소끼리가 아니라 전체를 더하는 것

      2. len(list): list의 길이

      3. 문자형이 다른것은 연산하면  type error가 뜸

    3. list 다루기

      1. 수정: list를 인덱싱하여 값을 교환

      2. 삭제: del a[]: 삭제할 값을 인덱싱하여 삭제

    4. 관련 함수들

      1. list.append(값): list에 값 추가, 다른 자료형도 추가 가능

      2. list.sort(): list 정렬

      3. list.index(값): 값에 해당하는 index반환

        1. 값이 없으면 value error를 냄

      4. list.insert(인덱스, 값): 원하는 인덱스 자리에 값을 넣음

      5. list.remove(값): 첫번째로 나오는 값을 지움

      6. list.pop(index): 인덱스 자리 값을 print하고 값을 지워서 반환

      7. list.count(값):요소 세기

      8. list.extend(list): list 확장하기

  4. 튜플(tuple)

    1. 특징: list와 비슷하지만 수정,삭제가 불가능

    2. 대괄호가 아닌 괄호를 사용해서 튜플생성

  5. 딕셔너리(dictionary): 연관배열 혹은 해시형

    1. 구성:  {key:value, key:value, …}

      1. key로 value를 찾아서 사용

      2. 요소삭제: del dic[1]

      3. value에는 어떤 자료형이 들어가도 상관없음

        1. ex) dic = {‘name’=’chaelin’,’hieght’=167,’score’= [1,2,3,4,5]}

    2. 주의사항: key는 동일한 것을 여러개 만들어 놓으면 하나만 인식

    3. 관련 함수

      1. 딕셔너리의 key를 list처럼 만들기: dictionary.keys()

        1. 하지만 이것은 list가 아닌 list형식의 객체 -> 해결법: list(dictionary.keys())

      2. 딕셔너리의 value를 list처럼 만들기: dictionary.values()

      3. key와 value 모두 지우기: dictionary.clear()

      4. key로 value 얻기: dictionary.get(‘key’)

      5. key가 딕셔너리안에 있는지 확인:  key in dictionary

  6. 집합 자료형(set)

    1. 사용법: 객체 = set() -> 비어있는 집합

      1. 안에 list를 넣으면 list숫자로 인식

      2. 안에 만약 list없이 문자열을 넣으면 문자 하나씩 인식

    2. 특징

      1. 중복을 허용하지 않음

      2.  순서가 없음

        1. indexing 불가능 -> list나 tuple로 변환하여 indexing해야함

    3. 사용

      1. 교집합: 집합1 & 집합2

        1. 추가 사용법: 집합1.intersection(집합2)

      2. 합집합: 집합 | 집합2

        1. 추가 사용법: 집합1.union(집합2)

      3. 차집합: 집합1 - 집합2

        1. 추가 사용법: 집합1.difference(집합2)

      4. 값 추가: 집합1.add(값)

      5. 여러값 추가: 집합1.update(list)

      6. 특정 값 제거: 집합1.remove(값)

  7. 불 자료형(boolean)

    1. 참과 거짓자료형

    2. 자료형에도 참과 거짓인 존재

      1. 리스트,튜플,집합은 비어있으면 거짓

      2. 숫자는 0만 거짓

      3. 중요한 예제! -> 사용 예시

        1. a = [1,2,3,4]

        2. while a: print(a.pop())

        3. while문은 참일동안 실행하는데 a가 빈 리스트가 되면 거짓이 되어서 종료 

    3. 참/거짓 여부 확인 함수: bool(데이터)

  8. 변수

    1. 생성

      1. 변수이름 = 변수를 저장할 값 <- C나 JAVA처럼 변수형 설정이 필요없음

      2. 변수가 생성되면서 메모리에 자동으로 위치가 할당됨

        1. 이를 확인하는 함수: id(변수)

    2. 변수 법칙

      1. 변수 복사: 예를 들면, a =[1,2,3]으로 변수를 생성하고 b=a로 하였을 때, a와 b는 다른 것인가? 동일 한 것

        1. id함수를 이용해 확인: id(a)=id(b) -> 의미: 같은 객체 [1,2,3]을 다른 이름 a,b가 다르게 가르키는 것

      2. 다른 것으로 인식시키고 싶을 때

        1. [:] 이용

          1. 복사를 b=a[:] <= 이렇게 사용하면 값을 지정하는 것

        2. copy 모듈

          1. from copy import copy 후에 b= copy(a)

    3. 입력방법

      1. 다수도 가능

        1. ex) a,b = b,a

'Python > 기초' 카테고리의 다른 글

Pandas 사용 함수  (0) 2022.04.22
각 type별 함수 사용  (0) 2022.04.19
파이썬 나아가기  (0) 2019.09.05
Python 프로그램 입출력하기  (0) 2019.09.05
Python 제어문  (0) 2019.09.05

+ Recent posts