1. 파이썬에서 Module(모듈) 이란?

   1) 파이썬 코드로 이루어진 파일(.py)

   2) 함수나 변수, 클래스 등의 코드가 들어가 있다

   3) 파일로 이루어진 모듈은 다른 파이썬 파일, 그리고 다른 실행환경에서 import해 사용할 수 있다

 

 

2. 모듈, 패키지, 라이브러리, 프레임워크

   1) 하나의 독립적인 모듈로 제공되기도 하지만, 다른 모듈과 함꼐 하나의 모음빚으로 제공되기도 한다.

       모음집의 크기와 용도에 따라 패키지, 라이브러리, 프레임워크 등 다양한 이름으로 불린다

   2) 패키지

      -1 하위 모듈을 모아놓은 디렉토리(폴더)

      -2 __init__.py 모듈을 포함한다

      -3 __init__.py 모듈은 해당 패키지가 사용될 때 필요한 기본 설정이 되어 있고, 자동 실행된다

   3) 라이브러리

      -1 모듈, 패키지 등 재사용이 가능한 코드의 모음집을 통칭해 부르는 이름

      -2 여러개의 패키지로 이루어진 모음집

   4) 프레임워크

      -1 라이브러리보다 포괄적인 개념

      -2 라이브러리가 도구 모음집만 제공하는 반면, 프레임워크는 라이브러리와 함께 라이브러리를 쉽게 적용할 수 있는

          툴과 아키텍처를 함께 제공한다.

3. 파이썬 패키지 관리자, pip

   1) 파이썬에서 사용되는 모든 모듈, 패키지, 라이브러리, 프레임워크 등은 일반적으로 pip이라는 파이썬 패키지 관리자를

       이용해 설치하고 관리한다.

 

'Language > Python' 카테고리의 다른 글

Python 관련 기술면접 준비  (0) 2024.09.15
Set 정리  (0) 2024.09.14
딕셔너리 정리  (0) 2024.09.14
리스트 정리  (0) 2024.09.14
Random 정리  (0) 2024.09.14

1. Generator

 

2. 클래스를 상속했을 때 메서드 실행 방식

 

3. GIL과 그로인한 성능 문제

 

4. GC 작동 방식

 

4. Celery

 

5. pypy가 CPython보다 빠른 이유

 

6. 메모리 누수가 발생할 수 있는 경우

 

7. Duck Typing

 

8. Timsort  :  python의 내부 sort

'Language > Python' 카테고리의 다른 글

파이썬에서의 Module  (1) 2024.09.16
Set 정리  (0) 2024.09.14
딕셔너리 정리  (0) 2024.09.14
리스트 정리  (0) 2024.09.14
Random 정리  (0) 2024.09.14

1. 중복을 허용하지 않으며 순서가 없음

     순서가 없으므로 인덱싱도 안됨

 

 

2. 중복을 허용하지 안힉 때문에 중복값을 제가할 때 사용하기도 함

alist = [1,1,2,3,5,5,5,6,7,9,9,9,9]

alist = set(alist)

alist = list(aset)

print(alist)

 

 

3. 인덱싱을 하기 위해서는 다른 자료형(ex. list)으로 변환해야 함

 

 

4. set 생성 시 주의 사항 

    s1 = {} #공백 딕셔너리

 

 

5. s1 = set()     

# 공백set

 

 

6. 사용 가능 연산자

|  :  합집합

&  :  교집합

-  :  차집합

 

 

7. 사용 가능 함수 

len(), max(), min()

 

 

8. s1.union(다른 집합)

    s1.intersection(다른 집합)

    s1.difference(다른 집합)

 

 

9. s1.add(원소)

원소를 집합에 추가

 

 

10. s1.remove(원소)

해당 원소를 집합(s1)에서 제거

단, 해당 원소가 없으면 에러

 

 

11. s1.discard(원소)

해당 원소를 집합(s1)에서 제거

해당 원소가 없어도 에러는 없음

 

 

12. s1.crear()

집합의 모든 원소를 제거

공백집합(set())으로 만들어줌

'Language > Python' 카테고리의 다른 글

파이썬에서의 Module  (1) 2024.09.16
Python 관련 기술면접 준비  (0) 2024.09.15
딕셔너리 정리  (0) 2024.09.14
리스트 정리  (0) 2024.09.14
Random 정리  (0) 2024.09.14

1. 딕셔너리 생성 및 항목 추가

dic = {"가":"파이썬"}    #생성과 동시에 항목 추가

dic2 = {}      #공백 딕셔너리 생성 dec2() 함수 이용 가능

dic2 ["가"} = "파이썬" #항목 추가 

# 주의

dic1 = {"가":"파이썬","가":"C(프로그래밍"}    #key값이 중복된 경우

               -> 생성과 동시에 항목 추가 시 동일한 키를 갖는 경우 중복저장되지 않음. 하나만 남게 됨

dic2 = {}

dic2["가"] = "파이썬"

dic2["가"] = "C프로그래밍"

      -> 공백 딕셔너리 생성 후 동일한 key값으로 재저장시 추가가 아니라 value 값 변경

key에 리스트 사용 불가, value에는 아무 자료형이나 상관 없음

 

 

2. 딕셔너리 항목 삭제

dil dic1["가"]     #[ ]안에는 key

해당 키가 없는 경우 오류가 발생하므로 if문을 같이 사용

     if "가" in dic 1 :

                 del dic1(key) : key에 대응하는 value를 반환하고 삭제, 해당 key가 없으면 오류 발생

    if "가" in dic1 :

                 print(dic1.pop("가"))

    dic1.clear() : key와 value 모두 삭제, 전체삭제

 

 

3. 딕셔너리 key, value 추출 

1) 딕셔너리.key() #key값들만 시퀀스로 추출, 인덱싱 안됨

2) 딕셔너리.values() #value 값들만 시퀀스로 추출, 인덱싱 안됨

3) 딕셔너리.items90 #key와 value의 쌍을 튜플로 반환, 반복문에서 튜플로 받은 경우 인덱싱 사용 가능

          for i in dic1.items() :

                         print(i[0],i[1]) 

4) list() 함수를 이용하면 리스트가 가지고 있는 함수들을 활용할 수 있음

5) 딕셔너리.get(key)    #해당 key가 없으면 none을 반환

         print(dic1["가"])  ->  "가" key가 없으면 에러

         print(dic1.get("가")) ->  "가" key가 없어도 에러가 나지 않음

6) 딕셔너리.get(key, defult_value)   #해당 key가 없을 때 default_value를 대신 반환

                                                       

'Language > Python' 카테고리의 다른 글

Python 관련 기술면접 준비  (0) 2024.09.15
Set 정리  (0) 2024.09.14
리스트 정리  (0) 2024.09.14
Random 정리  (0) 2024.09.14
문자열 정리  (0) 2024.09.14

1. 리스트 생성

1) 리스트 = [ ] : 공백 리스트 생성

2) 리스트 = [요소1,요소2,요소3...] : 요소들을 쉼표로 나열하여 생성

3) 리스트 = list( ) : 공백리스트 생성, list( )함수는 다른 시퀀스를 리스트로 변경 가능

 

 

2. 리스트 슬라이싱 

문자열 슬라이싱과 동일

 

 

3. 리스트 요소 수정 (=인덱스와 대입연산자 사용)

ex) alist[5] = 5 

연속된 범위 값 수정 가능

 

 

4. 리스트 복사

1) 리스트2 = 리스트.copy( )  :  동일 내용으로 새로운 리스트 생성

2) 리스트2 = 리스트 + [ ]

3) 리스트2 = 리스트[:]

4) 주의 : 리스트2 = 리스트 “ 동일 내용으로 새로운 이름을 생성(원본리스트에 새 이름 추가)

 

 

5. 리스트 요소 추가

1) 리스트.append(요소)  :  리스트 끝에 요소 추가

2) 리스트.insert(인덱스, 요소)  :  인덱스 위치에 요소를 삽입

3) 리스트.extend(리스트2)  :  리스트 마지막에 리스트2 요소들이 추가

4) +  :  두 리스트를 더하여 하나의 리스트를 생성(새로운 리스트) 주의 : 피연산자 모두 리스트여야 함

 

 

6. 리스트 요소 삭제

1)리스트.remove(요소)  :  리스트에 있는 요소들을 찾아 삭제 (단, 동일한 것이 있더라도 첫 번째 것만 삭제), 삭제할 것이 없으면 에러

2) del리스트[인덱스]  :  인덱스에 해당하는 요소를 삭제, del(리스트[인덱스])

3) del리스트[인댁스1 : 인덱스2]  :  두 인덱스 (인덱스1 ~ (인덱스2 –1))사이에 있는 요소들을 삭제

                                                        del(리스트[인덱스]) 형태로 쓰는 것 가능

4) 리스트[인덱스1 : 인엑스2] = [ ] 

                                        # 인덱스1 ~ 인덱스(2 –1) 사이에 있는 요소들 삭제

5) 리스트.pop()  :  리스트의 맨 마지막 요소를 삭제하면서 반환

6) 리스트.pop(인덱스)  :  해당 인덱스 위치의 요소를 삭제하면서 요소를 반환

7) 리스트.clear()  :  리스트의 모든 요소를 삭제, del list[:], list[:]=[ ], list1=[ ]

                                   주의  :  del list1 이라고 하면 변수 자체가 소멸

 

 

7. 리스트 탐색

1) 리스트.index(요소)  :  요소가 몇 번 인덱스에 있는지 찾아 인덱스 값 반환

                                        (동일한 요소가 있더라도 첫 번쨰 찾은 요소의 인덱스 만 반환), 해당 요소가 없으면 에러

2) 리스트.index(요소, start, end) : start ~ end-1) 까지의 위치에서 해당 요소를 찾아 인덱스 위치 반환

 

 

8. 리스트 정렬

1) 리스트.sort()  :  정렬하는데 사용, 원본 리스트를 변경, 오름차순 정렬

2) 리스트.sort(reverse = True)  :  내림차순 정렬

3) 리스트.reverse()  :  리스트의 요소 순서를 역순으로 변경, 정렬이 아님을 주의, 원본리스트를 변경

4) 정렬된 새로운 리스트가 필요한 경우 :  sorted(리스트) 함수 사용

ex) list2 list1.sorted(X) list2 = sorted(list1)(O)

      내림차순으로 정렬하면 sorted(리스트, reverse=True)

5) 내림차순으로 정렬방법 추가

     리스트.sort()를 실행한 후 (오름차순 정렬)

      리스트.reverse()함수를 실행(역순으로 변경하므로 내림차순이 됨)

 

 

9. 리스트 요소 개수 세기

리스트.count(요소)  :  리스트 내에 있는 요소의 개수를 반환

 

 

10. 곱 연산

리스트를 반복(문자열 반복할 때와 동일)

 

 

11. 리스트 컴프리헨션(comprehension)

복잡한 반복의 형태를 간단하게 표현 가능

alist = [저장요소 반복문] : 중간에 ,(콤마)가 들어가면 안되면 공백이 들어감. 반복문 끝에 :(클론)들어가지 않음

ex) alist = [random.randint(1,10) for I in ranger(10)  :  10개 의 랜덤값이 요소로 저장되면서 리스트 생성

 

 

12. 리스트 안의 리스트 요소(2차원 리스트)

1) alist = [[0,1],[1,2],[2,3]]

2) m = [[0]*5 for I in range(3)]

3) [[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]]

'Language > Python' 카테고리의 다른 글

Set 정리  (0) 2024.09.14
딕셔너리 정리  (0) 2024.09.14
Random 정리  (0) 2024.09.14
문자열 정리  (0) 2024.09.14
Turtle 그래픽 정리  (3) 2024.09.14

1. import random

random 모듈을 사용하기 위해 반드시 작성

 

 

2. 변수 = random.randrange(stop)

0부터 stop-1 사이의 값들 중 랜덤 값 하나를 반환

 

 

3. 변수 = random.randrange(start, stop)

star부터 stop-1 사이의 값들 중 랜덤값 하나를 반환

 

 

4. 변수 = random.randrange(star, stop, step)

start부터 wtop-1 사이의 값이 step 만큼씩 떨어져 있는 값들이며 이들 중 랜덤 값 하나를 반환

1) start, step은 생략 가능

2) start가 없으면 0부터 시작

3) stop의 의미는 stop-1까지의 수를 의미

 

 

5. 변수 = random.randint(start, end)

start부터 end 사이의 값들 중 랜덤 값 하나를 반환

(start, end모두 포함, start 값이 end값 보다 작은 값)

 

 

6. import random

1) 변수 = random.choice(리스트) : 리스트에 있는 요소들 중에 랜덤으로 하나의 요소를 결정하여 반환

                                                       리스트 대신에 시퀀스를 사용 가능

2) 변수 = random.sample(리스트 개수) : 리스트에 있는 요소들 중 랜덤으로 주어진 개수만큼 추출하여 리스트로 반환

                                                                 리스트 외에 range(), 문자열 등 시퀀스 사용 가능

                                                                    → 추출 시 중복 추출은 없음

                                                                    → 개수 입력 시 리스트의 총 요소 개수를 초과할 수 없음

3) random.shuffle(리스트) : 리스트에 있는 요소들의 순서를 섞어줌, 원본 리스트를 변경

'Language > Python' 카테고리의 다른 글

딕셔너리 정리  (0) 2024.09.14
리스트 정리  (0) 2024.09.14
문자열 정리  (0) 2024.09.14
Turtle 그래픽 정리  (3) 2024.09.14
출력형태  (1) 2024.09.14

1. ‘  ’. ”  “, ‘’‘  ’‘’, ”“”  “”“ (따옴표 3개)

1) 따옴표 3개는 여러 라인을 하나의 문자열로 처리할 때 사용 가능

     (주석처럼 사용 가능하나, 주석은 아님)

2) \n : 줄바꿈 문자 (개행 문자)

            \‘ : 작은 따옴표

            \” : 큰 따옴표

 

 

2. 연산자 사용

1) +  :  피연산자 모두 문자열이면 문자열 연결 연산자로 사용

2) *  :  문자열*수(정수), 수 만큼 문자열 반복

 

 

3. len(문자열)

len 함수를 이용하여 문자열 길이(문자 개수)를 구할 수 있음

 

 

4. 인덱싱과 슬라이싱

1) 인덱스 : 항상 시작은 0부터 시작, 뒤에서 부터는 –1,

                  [len(문자열)-1] 은 마지막 문자

2) 변수[start : end] -> start ~ end-1 (end 이전) 까지의 문자열을 추출

3) 변수[:end] -> start가 생략되면 0(처음) ~ end-1 까지의 문자열을 추출

4) 변수[start:] -> end가 생략되면 끝까지, start ~ 문자열 끝까지를 추출

5) 변수[start : len(문자열)], 변수[start : 아주 큰 값] 으로 작성 가능

6) 변수[:] -> 둘 다 생략할 시, 문자열 전체를 추출하는 것을 의미

 

 

5. 문자 변경

1) 문자열을 할당하면 해당 문자열은 문자열 상수, 문자열에 있는 문자 일부 변경 불가

2) greeting = “Hello, world!!”

3) greeting[7] = “W” (x) #인덱스를 이용하여 해당 문자만 변경할 수 없음

4) greeting = greeting[:7]+“W’+greeting[8:] or greeting = ”Hello, World!“

'Language > Python' 카테고리의 다른 글

딕셔너리 정리  (0) 2024.09.14
리스트 정리  (0) 2024.09.14
Random 정리  (0) 2024.09.14
Turtle 그래픽 정리  (3) 2024.09.14
출력형태  (1) 2024.09.14

1. import turtle

turtle 모듈을 사용하기 위해 import

 

 

2. t = turtle. Turtle( ) 

    t = turtle.Pen( )

t라는 이름으로 turtle 객체를 생성

  t 는 객체변수

  . 은 접근 연산자

  대/소문자 구분해야 한다

 

 

3. t.forward( )

픽셀만큼 앞으로 이동

처음 시행할 때 turtle 헤드 방향은 항상 오른쪽

앞으로 전진 == 오른쪽으로 이동

 

 

4. t.back( )

    t.bk( )

픽셀만큼 뒤로 (헤드반대방향) 이동

 

 

5. t.left(각도)

    t.lt(각도)

진행방향의 왼쪽으로 각도만큼 회전

 

 

6. t.right(각도)

    t.rt(각도)

진행 방향의 오른쪽으로 각도만큼 회전

 

 

7. t.shape(모양)

arrow, turtle, circle, square, triangle, classic

 

 

8. t.shape("turtle")

따옴표 빼먹지 말것

 

 

9. t.width(굵기)

    t.pensize(굵기)

선의 굵기 조정

 

 

10. t.color(색)

선의 색을 변경

색은 색이름(영문문자열) 또는 #000000 ~ #ffffff 문자열 

2자리 씩 끊 어서 r(빨강), g(초록), b(파랑)성분

t.begin_fill( )  :  색 채우기 시작

t.end_fil( )  :  색 채우기 종료

 

11. t.penup()

    t.pu()

    t.up()

팬을 올림

 

 

12. t.pendown( )

      t.pd( )

      t.down( )

팬을 내림

 

 

13. t.goto(x,y)

x, y 좌표로 펜이 이동

펜이 down되어 있으면 선이 그려짐

 

 

14. t.circle(반지름)

반지름 크기의 원을 그림 

양수 -> 반시계 방향

음수 -> 시계 방향

 

 

15. 작명 규칙

1) 변수의 이름은 영문자와 숫자, 밑줄문자(_)로 이루어진다.

2) 변수의 이름은 중간에 공백이 들어가면 안된다.

3) 변수의 이름은 숫자로 시작할 수 없다.

4) 변수의 이름에 쓰이는 영문자는 대문자와 소문자를 구별한다.

5) 예약어(키워드)는 변수명으로 사용할 수 없다.

     * 예약어키워드 -  import, if, elif, else, while, for, in, not

                                  True, False은 키워드이기 때문에 사용할 수 없다

                                  cf. true, false는 소문자이므로 사용할 수 있다

 

 

16. t.setheading(각도)

      t.seth(각도)

주어진 각도로 헤드 방향 변경

 

 

17. scr 1 = turtle.screen( )

      scr 1 = turtle.getscreen( )

scr 1 객체 생성 캔버스를 의미

그림을 그리는 화면

 

 

18. scr 1 . addshape(이미지 파일 문자열)
경로와 확장자( .gif)를 포함한 이미지 파일 문자열을 shape으로 추가

 

 

19. t.stamp( )

해당 이미지 모양을 screen에 찍어둠

 

 

20. t 라는 turtle 객체가 있다고 가정(1)

1) 터틀 그래픽에서 문장열 값 입력

2) 변수 = turtle.textinput(“창 제목”, “대화창 출력 분자열”)

3) “창 제목”의 내용은 생략 가능, “  ”는 유지해야 함

4) 터틀 그래칙에서 문자열 출력

5) t.write(“문자열”, 거북이 이동 여부(Ture, False), 정렬(“left”, “right”, “center”), 폰트(“글꼴(없으면 따옴표만)”, 글자크기, 글자 속 성(“normal”, “italic”, “bold”))

6) 거북이 이동 여부는 글자가 출력될 때 거북이가 움직이면서 출력되는지 여부를 의미

         ex) t.write(“안녕하세요?, Ture,”center“,(”“.15,”bold“))

7) 거북이를 이동시키면서 ”안녕하세요?“ 글자를 가운데 정렬이 되도록 출력

8) 글꼴은 따로 지정하지 않았으며, 글자크기는 15, 굵게 출력

 

 

21. t 라는 터틀 객체를 생성했다고 가정(2)

1) t.clear()    #화면 지우기

2) t.hideturtle() , t.ht()   #터틀 숨기기(안보이게 하기)

3) t.showturtle()  , t.st()   #터틀 보이게 하기

4) t.home()   #터틀을 (0,0) 위치로 이동, 헤드 방향도 0도로 변경(오른쪽 방향)

'Language > Python' 카테고리의 다른 글

딕셔너리 정리  (0) 2024.09.14
리스트 정리  (0) 2024.09.14
Random 정리  (0) 2024.09.14
문자열 정리  (0) 2024.09.14
출력형태  (1) 2024.09.14

1. 콤마(,)

    print(“학과”,“컴퓨터공학”)

    print(“학번; ”, 2020)

 

2. format 함수

    print(“학과: {}”.format(“컴퓨터공학”))

    format(“학과: {}, 학번: {},”.format(“컴퓨터공학”,2020))

 

3. format함수 이용 시 또 다른 방법 – 변수의 순서(인덱스) 사용, 0부터 시작

    print(“학과: {0}, 학번: {1}”.format(“컴퓨터공학”,2020))

    print(“학과: {0}, 전공: {0}, 학번: {1}”.format(“컴퓨터공학”,2020))

 

4. % 사용

    print(“학과: %s”%(“컴퓨터공학”))

    print(“학과: %s, 학번: %s%(”컴퓨터공학“, 2020))

      * %d : 정수, %f : 실수, %s : 문자열

      * %와 알파벳 사이에 있는 숫자는 자릿수 (ex. %4d) %f를 사용, %와 f 사이에 .(점)과 숫자를 넣어 사용

      * ex) print(%.2f“%(3.7452)) --> 3.76

                                                    #소수점 둘째자리까지  #반올림됨

 

5. + 이용

    print(“학과: ”+“컴퓨터공학”)

    print(“학과: ”+“컴퓨터공학, 학번: ”+str(2020))

    소수점 제한 시 round()함수 사용  #round함수는 반올림 함수

      * ex) round(3.7452, 2) --> 3.75

    round 함수는 ,(콤마), format, +에서 사용

 

6. 실수 값에서 소수점 없이 출력하고자 할 때

    1) %.0f  #자리수가 없다는 의미  #.0 출력 되지 않음

    2) int() 함수 사용

    3) round(실수값,0) --> .0 으로 출력됨을 주의

'Language > Python' 카테고리의 다른 글

딕셔너리 정리  (0) 2024.09.14
리스트 정리  (0) 2024.09.14
Random 정리  (0) 2024.09.14
문자열 정리  (0) 2024.09.14
Turtle 그래픽 정리  (3) 2024.09.14

+ Recent posts