본문 바로가기

Language

(13)
Python 09 - 함수와 매개변수 with Tuple def function_name(parameter1,parameter2): print(f"{parameter1},{parameter2}) argument1 = 1argument2 = 2function_name(argement1,argument2) 함수를 정의할 때 함수의 이름과 parameter, 실행할 코드를 작성한다.parameter(매개변수)란 함수 외부와 내부를 이어주는 통로이며 이를 구분할 수 있도록 식별자를 통해 각 통로에 이름을 정한다. 함수가 정의되면 ()를 이용해 함수를 호출하여 사용할 수 있다. 함수가 호출될 때 함수에 전달해 줄 객체를 argument(인자)라고 한다. 함수는 이렇게 매개변수를 통해서 외부의 값을 함수 내부로 가져와 사용할 수 있는데, 매개변수에는 여러 종류가 있..
Python 08 - 파이썬만의 독특한 반복문 with Tuple 다른 언어와 다르게 파이썬은 반복문의 활용에 있어 매우 큰 장점이 있다.  바로 반복문의 카운터 변수로 여러 변수를 이용할 수 있다는 점이다. 다른 언어의 경우 보통 하나의 카운터 변수만을 사용할 수 있다.for i,j in zip([1,2,3,4,5],[6,7,8,9,10]): print(i,j) 하지만 파이썬의 경우 위와 같 여러 카운터를  이용할 수 있는데 바로 튜플의 특징 때문이다. 파이썬에서 튜플은 패킹과 언패킹이란 특징을 가지고 있는데 이에 대해 알아보자. 패킹이란 여러 개의 변수를 튜플로 묶는 것을 의미한다.tuple1 = (1,2,3) # 튜플의 패킹 선언1tuple2 = 1,2,3,4 # 튜플의 패킹 선언2tuple3 = tuple(1,2,3,4) # 튜플의 패킹 선언3 언패킹이란 튜플의..
Python 07-b) - 불변객체와 가변객체의 매서드 차이 대표적인 불변 객체 String의 매서드를 사용해 본 적 있을 것이다.upper(), lower()와 같이 연결된 문자열을 대문자 혹은 소문자로 바꿔주는 기능은 매우 유용하다. 대표적인 가변 객체로는 list의 매서드도 사용해 본 적이 있을 것이다.append(),reserved()와 같이 요소를 추가하거나 배열의 순서를 반대로 하는 기능 또한 매우 활용하기 좋다. 하지만 여기에는 숨겨진 비밀이 있다. 바로 이 매서드들의 결과 반환의 유무이다. upper(), lower()의 경우 print() 해볼 시 값을 반환해 줌을 알 수 있다.이와 반대로 append(),reserved()의 경우 print() 해볼 시 값을 반환하지 않음을 알 수 있다. 어째서 이런 차이가 발생하는 것일까? 바로 불변 객체와 가..
Python 07-a) - 전역변수와 지역변수 앞선 내용에 이어서 가변객체와 불변객체의 특징을 함수를 사용해보면서 살펴 보겠다. 파이썬에서 전역변수와 지역변수를 나누는 이유는 무엇일까? 바로 원하지 않는 변수의 변화가 일어날 확률을 줄이기 위해서이다.a = 100 # 불변 객체(숫자형)b = "전역변수" # 불변 객체(문자열)c = [1,2,3] # 가변 객체(리스트)d = {"1번키":"1번값","2번키":"2번값"} # 가변 객체(딕셔너리)def print__text(): b = a*5 # 불변 객체 a를 입력값으로 이용 and 지역변수로서 b 사용 print(f"함수 내에서 b : {b}") c[0] = 2 # 가변 객체 c의 [0]번 인덱스의 값 변경 d["1번키"] = "함수 내에서 값 변경" print(f"함수..
Python 07 - 불변 객체와 가변객체 ( 메모리 자원 ) 파이썬에서 불변 객체와 가변객체는 메모리 자원 관리 측면에서 매우 중요한 개념이다. 불변 객체란 말 그대로 변하지 않는 객체를 의미한다. 문자열, 숫자, tuple 객체가 불변 객체인데 객체에 메모리 공간이 한 번 할당되면 그 크기는 더이상 변하지 않는다는 특징을 가지고 있다.  반대로 가변 객체는 변할 수 있는 객체이다. list, set, dictionary 객체가 가변 객체이며 이 객체들은 메모리 공간이 할당 되어도 그 크기가 변할 수 있는 특징을 가지고 있다. 객체마다 이렇게 다른 특징을 가지고 있기 때문에 코드를 짤 때 상황에 맞춰 올바르게 사용해야 한다. 특히 함수와 클래스와 같은 문법과 결합되면 굉장히 복잡해질 수 있다. 간단한 예시로 불변 객체를 변수가 참조하는 방식과 가변객체를 변수가 참..
Python 06 - 파이썬의 자료형과 타입 파이썬의 자료형은 숫자형, Boolean, Set, Dictionary, 그리고 시퀀스형이 있다. 숫자형은 숫자를 나타내는 객체로 정수형(int), 실수형(float), 복소수형(Complex)이 있다.  숫자형에서 주의할 점은 주로 실수형에 있다. 컴퓨터가 실수형 데이터를 가지고 비교 연산을 할 때 오류가 생길 확률이 매우 높다.컴퓨터에서 실수의 경우 유리수 + 무리수의 값을 비트로 표현하기에 매우 어려워 근사값을 이용하기 때문에 문제가 발생한다.예를 들어서 0.3 같은 숫자 리터럴은 사실 0.300000000004이기 때문에 비교 연산이 어렵다. 또 반올림의 형식이 우리가 익숙한 사사오입(반올림 할 위치의 숫자가 5일 때 앞자리에 상관없이 올림) 방식이 아니라 오사오입 (반올림 할 위치의 숫자가 5일..
Python 05 - "변수에 대한 접근" 파이썬 문법을 공부하다 문득 이런 생각이 들었다.  "파이썬의 개발자는 파이썬 이용자들이 정말 편하게 개발을 할 수 있도록 많은 기능을 지원해주는구나" 그리고 또 하나는 "변수에 대한 접근은 많은 신경을 써야하는 구나"였다.  오늘 써볼 주제는 후자이다. 어떻게 보면 가장 중요하면서 당연하다. 만약 우리가 실제로 서비스하는 프로그램이 동작 도중 변수가 엉키면서 이상한 값이 흘러들어가기 시작하면 총체적 난국이 될 것이다.  파이썬은 쉽고 간결한 문법으로 사용자가 편하게 이용하는 만큼 프로그램이 동작했을 때 오류가 생길 위험이 상당히 존재한다. 그 중에서도 "변수"의 자유로움에 인한 오류가 꽤 큰 부분을 차지할 것이다. 대규모 프로젝트의 경우 많은 사람들이 접근하여 코드를 작성하면 변수의 값이 변화되는 경우..
Python 04 - 변수의 주소와 메모리 관리 파이썬에서 변수의 주소는 어떻게 지정될까?이에 대해서 알아보기 전에 파이썬의 메모리 관리 방법에 대해서 우선적으로 알 필요가 있다. 파이썬은 인터프리터가 내부에 가비지 컬렉터(garbage collector)라는 메모리 관리 프로그램이 존재한다. 가비지 컬렉터는 가비지 컬렉션(garbage collection)이라는 알고리즘으로 메모리를 관리하는데, 파이썬에서 사용하는 가비지 컬렉션 알고리즘은 참조 카운팅 방식((Reference Counting)이다.  우리는 a라는 변수에 객체가 할당된다고 하면 " a라는 공간에 객체를 담는구나 ! " 라고 보통은 생각한다. 하지만 실제로는 조금 다르게 동작한다.  a라는 변수는 실제로는 객체가 담긴 공간의 주소를 가리킨다. 이를 a 변수가 어떤 객체를 '참조 한다'..