본문 바로가기

Always Awake29

20.01.05 기록 1. ==연산자와 is 연산자의 차이 ==나 !=는 값 자체를 비교하고 Is, is not은 주어진 두 객체가 같은 객체인지를 비교한다. 즉 1 == 1.0에서 1은 1.0과 같은 크기의 값이므로 true이지만 1 is 1.0에서 1과 1.0은 각각 int, float 객체로 서로 다른 객체이므로 false이다. 2. 파이썬에서 객체 할당방식의 랜덤함 파이썬에서 변수가 있는 상태에서 다른 값을 할당하면 메모리 주소가 달라질 수 있다. 예를 들어 변수 a= -5라는 할당을 한 후 a와 -5의 id는 같지만, a=-6이라고 재 할당 할 경우 a는 -6과 다른 id값을 가질수도 있다. 확인해보면 재할당된 a의 경우 -6과도, -5와도 id가 다르다는 것을 알 수 있다. 찾아보니 파이썬에서 자주 사용되는 범위(.. 2020. 1. 6.
19.12.26 기록 1. 모듈 호출 방식의 차이 import 모듈명 from 모둘명 import 함수명 의 차이는 한가지. 전자는 모듈을 통째로 가져오므로 모듈명.함수명()을 해야 함수를 사용할 수 있지만 후자는 모듈 내의 해당 함수만 가져오겠다는 의미로 함수명()과 같이 바로 사용할 수 있다. 만약 모듈 내의 모든 함수를 가져와 쓰고싶지만 모듈명을 일일이 붙이기 귀찮다면 from 모듈명 import *를 사용하면 된다. (*를 사용하면 전체를 불러옴) 2. 모듈에서의 name변수(__name__) python의 name변수는 모듈명이 할당되는 내부변수이다. import를 통해 해당 모듈을 불러와 run하면 그때 name은 해당 모듈명이 되고, 만약 함수가 정의되어있는 파일을 run하면 name은 main이 된다. 3. r.. 2019. 12. 27.
19.12.25 기록 1. replace 함수의 객체조작 여부. 문자열의 replace함수는 객체를 직접 조작할 수 없다. 함수 호출 이후에 문자열은 대체된 상태로 저장되지 않는다. 만약 대체된 상태로 문자열을 대체하고 싶다면, 해당 문자열에 리턴값을 반환시켜 초기화해야한다. 예를 들어 a = "I need something to drink." a.replace("drink","eat") print(a) a = a.replace("drink","eat") print(a) 위와 같은 코드가 있을때 결과값은 I need something to drink. I need something to eat. 으로 나온다. 단순히 replace 함수를 호출하는 것만으로는 객체 a의 drink를 바꿀 수 없다. a에 대체된 객체 a.repl.. 2019. 12. 26.
Python은 Call by reference일까? Call by value일까? C나 C++를 공부한 적이 있다면 Call by reference와 Call by value에 대해 들어본 적이 있을 것이다. 두 방식은 함수의 인자 전달 방식인데, 각각 어떤 타입을 전달하느냐에 차이를 둔다. 1. Call by value : 변수를 복사한 값을 전달하는 방식 함수의 인자(argument)를 받을 때, 변수에 담긴 값 자체를 stack에다가 복사하여 넘겨준다. 예를 들어 변수 a가 있고 함수 def1가 있을 때, def1(a)에서 전달받은 a는 a 자체(주소 값)가 아니라 a의 복사 값, 레플리카이다. 따라서 함수 내에서 해당 인자를 조작하여 바꾸었다고 해도 원본 변수 a는 변하지 않는다. 원본을 건드리지 않아 안전하지만, 함수의 사용으로 해당 전역 변수를 바꾸고 싶을 때는 리턴 값을 .. 2019. 12. 24.
19.12.24 기록 1. 컴파일러(Compiler)와 인터프리터(Interpreter)의 차이 개발자가 작성한 소스 코드(source code)를 기계가 읽을 오브젝트 코드(object code)로 바꾸어 주는것이 컴파일러의 역할이다. 인터프리터 또한 개념은 비슷하지만, 방식에 차이가 있다. 컴파일러 인터프리터 변환 및 실행방식 모든 소스 코드를 한번에 수집하여 기계어로 변환 후 실행 소스 코드의 각 행마다 중간 언어로 변환하여 바로바로 실행 실행 시간 컴파일된 프로그램은 이미 변환이 다 된 프로그램이므로 인터프리터에 비해 실행 속도가 빠름. 그러나 원시 프로그램이 클 경우 컴파일 과정에서 일반적으로 인터프리터보다 오랜 시간이 소요됨. 각 행마다 매번 중간 언어로 변환하여 실행하므로 컴파일된 프로그램에 비해 실행 속도가 느.. 2019. 12. 24.