본문 바로가기

python19

[Python] 파이썬 GC(Garbage Collector) 1. Garbage Collection(가비지 컬렉션)이란? 프로그램을 개발 하다 보면 유효하지 않은 메모리인 가바지(Garbage)가 발생합니다. C언어의 경우 개발자가 malloc() ,free()라는 함수를 통해 직접 메모리를 해제해주어야 합니다.가비지 컬렉션이란 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요없게 된 영역(Garbage)을 해제하는 기능입니다. 2. Python에서 GC 파이썬에선 기본적으로 참조 횟수가 0이 된 객체를 메모리에서 해제하는 레퍼런스 카운팅 방식을 사용합니다. 하지만, 참조 횟수가 0은 아니지만 도달할 수 없지만, 상태인 reference cycles(순환 참조)가 발생했을 때는 별도의 알고리즘을 통해 상황을 해결합니다. 2.1. 레퍼런스 카운팅 모든 객체는 참.. 2022. 9. 29.
[Python] GIL (Global Interpreter Lock) GIL을 이해하려면 먼저 Python 인터프리터란 것이 정확히 무엇인지 알아야 합니다. 1. Python 인터프리터란? 파이썬은 인터프리터에 의해 실행되는 스크립트 언어입니다. 인터프리터(interpreter)란 소스 코드를 처음부터 한 라인씩 차례대로 해석하며 실행하는 프로그램입니다. 그 프로그램의 구현체로는 여러 가지가 있을 수 있는데, 현재 Python 인터프리터의 표준 구현체로 받아들여지고 있는 것은 바로 CPython 입니다. CPython은 C 언어를 이용하여 구현한 Python 인터프리터 입니다. 2. GIL (Global Interpreter Lock) In CPython, the global interpreter lock, or GIL, is a mutex that protects acc.. 2022. 9. 15.
[python] 성적 처리하기2 - by class 성적처리프로그램 class로 만들기 성저처리1과 기능은 같다. class형태로 만들고 데이터를 pickle로 저장하고 불러온다. 기능 1 입력 : 이름 국어성적 영어성적 수학성적을 입력(총점과 평균은 계산해서 입력됨) 2 전체출력 : 모든 데이터 출력 3 이름 검색 : 이름을 입력해서 같은 이름인 사람의 점수 출력 4 평균 검색 : 점수를 입력해서 평균점수가 입력받은 점수보다 높은 사람 출력 5 수정 : 이름을 입력받으면 해당 이름과 같은 사람의 국어, 영어, 수학의 점수를 다시 입력받는다. 6 삭제 : 이름을 입력받아 같은 사람의 데이터를 삭제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33.. 2020. 7. 22.
[python] 성적 처리하기 데이터는 score.txt에서 읽어오도록 하였다. score.txt가 없을시 오류가 날 수 있음 기능 1 입력 : 이름 국어성적 영어성적 수학성적을 입력(총점과 평균은 계산해서 입력됨) 2 전체출력 : 모든 데이터 출력 3 이름 검색 : 이름을 입력해서 같은 이름인 사람의 점수 출력 4 평균 검색 : 점수를 입력해서 평균점수가 입력받은 점수보다 높은 사람 출력 5 수정 : 이름을 입력받으면 해당 이름과 같은 사람의 국어, 영어, 수학의 점수를 다시 입력받는다. 6 삭제 : 이름을 입력받아 같은 사람의 데이터를 삭제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39.. 2020. 7. 22.
[python] 반복문으로 별모양 그리기2 함수로 별모양 출력 컨트롤 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 def star(num): line = int(input("몇 줄을 출력하시겠습니까? : ")) if(num==1): for i in range(1,line+1): print("*"*4) elif(num==2): for i in range(1,line+1): print("*"*i) elif(num==3): for i in range(1,line+1): print(" "*(line-i)+"*"*i) elif(num==4): for i in range(1,line+1): print(" "*(line-i)+"*"*(2*i-1)) .. 2020. 7. 22.
[python] 반복문으로 별모양 출력하기 1. 3X4 네모 모양 1 2 3 4 for i in range(3): for j in range(4): print("*",end="") print() cs 2. 직각 삼각형(좌측) 1 2 3 4 5 for i in range(3): for j in range(3): if(j 2020. 7. 22.