파이썬으로 작성된 파일을 실행할 때 인수(argument, 인자값)를 받아서 처리를 해야 되는 경우가 있다. 예를 들어, 로컬과 개발 등의 환경이 서로 달라서 인자값을 줘야 한다던지 같은 파일을 다른 목적으로 처리를 해야 할 때 인자값을 줄 수가 있을 것이다. 이럴때 파이썬에서는 sys.argv에 값을 담아 처리를 할 수 있게 된다. sys.argv에서 sys는 파이썬 인터프리터와 관련된 정보와 기능을 제공하는 모듈 혹은 라이브러리이며, argv는 위에 적은 것처럼 argument를 의미한다. 예시 python hello.py neo 첫번째로 위와 같은 command에서 실행을 한다고 가정을 하며 hello.py 다음에 1개의 인자값을 줬는데 neo라는 인자값이다. 이 인자값을 어떻게 프로그램이 처리를 ..
문자열 리스트를 문자열로 합치는 함수가 Join 함수라면, 반대로 문자열 데이터를 문자열 리스트로 분리(나누기)하는 내장 함수는 split 함수이다. 사용방법 문자열.split(구분자) 여기서 join과 차이점을 확인해야 될 것이 join함수의 경우 데이터가 함수안에 들어가고, 앞에 구분자가 있었는데 join과 순서가 정반대라는 점을 인지하도록 한다. 사용예시 Split 함수는 상당히 많이 사용될 수 있다. 예를 들어 CSV 데이터를 split하여 리스트 형태로 분리할 수 있는데 텐서플로우, 케라스, 파이토치 혹은 머신러닝을 공부하는 사람이면 거의 무조건 한번 정도는 프로그램에 꼭 사용한다. 자연어처리쪽에서도 많이 사용된다. 우선 형태소 분석을 하려면 데이터를 구분해야 하는데 공백 기준으로 tokeniz..
Join함수는 리스트로 되어 있는 문자열 데이터들을 설정한 구분자(separator)로 구분하여 문자열 형태로 반환하는 내장 함수이다. 문자열을 리스트 형태로 나누는 것을 split 함수라고 한다면, 리스트를 문자열로 바꾸는 것이니 split의 reverse 함수라고 이해하면 된다. 사용방법 구분자.join(문자열리스트) 구분자(separator)가 앞에 오고 문자열이 뒤에 오는 구조라서 좀 헷갈릴 수 있다. 사용예시 공백구분자 >>> str_list = ["동해물과","백두산이","마르고","닳도록"] >>> str = " ".join(str_list) >>> print(str) 동해물과 백두산이 마르고 닳도록 구분자를 공백으로 지정하여, 문자열을 출력하는 예시 쉼표(,) 구분자 >>> str_list..
람다(Lambda) 함수는 익명으로 만드는 함수로, 별도의 def로 사용자 정의 함수를 만들지 않고 작업을 수행하는 익명 함수이다. 사실 함수라는 것이 "재사용"이 주된 목적인데 익명이라는 말이 뭔가 앞뒤가 안 맞아 보인다. 그러나 함수의 목적이 재사용만 있는 것은 아니다. 주된 목적이 재사용에 있지만, 코드의 간결함, 리팩토링등으로 봤을 때에도 함수를 사용할 수 있기 때문이다. 즉, 후자의 목적으로 만든 것이 람다함수라고 생각하면 될 것이다. 람다는 익명이기 때문에 한번 사용되면 heap 메모리에서 삭제되기 때문에 메로리 관리 차원에서는 유리한 면이 있다. lambda의 장단점 코드의 간결화 : 람다를 사용하게 되면 복잡한 코드가 간결하게 바뀌게 되어 코드의 간결화로 이루어 지며 이는 곧 가독성이 올라..
함수는 반복적으로 활용 될 수 있는 변수와 알고리즘 등을 묶어 호출할 수 있는 코드의 집합이다. 일반적으로는 단 하나의 목적을 가지고 만들어져 있지만, 여러가지 기능들을 처리할 수도 있고 전체적인 함수들을 또 호출하는 스크립트성 함수가 만들어질 수도 있다. 함수의 종료는 크게 4가지로 내장 함수와 외장 함수, 사용자 정의 함수 그리고 익명 함수(람다)로 나뉘어 질 수 있다. 내장 함수는 파이썬을 설치하는 순간부터 쓸 수 있는 것으로 우리가 흔히 사용했던 print() 같은 것이 내장 함수이다. 외장 함수는 외부에서 만들어진 것들을 우리가 불러다가 쓰는 것이고, 사용자 정의 함수는 사용자가 직접 만든 함수이다. 즉 지금 우리가 할려는 함수를 만들고 사용한다는 것은 사용자 정의함수를 만든다는 것과 동일하다...
리스트(list)와 튜플(tuple)이 순서가 있는 배열 형태의 자료형이라면 딕셔너리(dictionary)는 키(key)와 값(value)이 쌍으로 있는 자료형입니다. 우리가 사전을 보면 찾는 대상인 주제(ex: 단어)와 내용이 있는 것처럼 딕셔너리는 동일하며 결국 딕셔너리의 목적은 Key로 Value를 찾는 것입니다. 딕셔너리 선언 딕셔너리변수명 = {key1 : value1, key2 : value2 ... keyn : valuen} >>> kor_eng = {'동쪽':'east','서쪽':'west','학생':'student','소년':'boy','소녀':'girl'} >>> kor_eng {'동쪽': 'east', '서쪽': 'west', '학생': 'student', '소년': 'boy', '소..
튜플(Tuple)이란 리스트와 동일하게 다양한 데이터를 집합형태로 저장을 한다. 하지만 리스트와 차이점이 하나 있는데 그건 바로 튜플은 한번 생성하면 변경을 할 수 없다는 것이다. 즉, 변경을 하는 부분(삽입, 삭제, 수정)을 제외한 나머지 처리는 리스트의 방식과 같다. 튜플 생성 >>> str_data = ('빅뱅','방탄소년단','블랙핑크','트와이스') >>> type(str_data) >>> str_data ('빅뱅', '방탄소년단', '블랙핑크', '트와이스') 리스트는 []를 사용해서 초기화를 할 수가 있었지만 튜플을 한번 생성을 하면 수정을 할 수 없기 때문에 초기화를 할 때 한번에 값을 넣는 것이 좋다. 튜플 인덱싱 및 슬라이싱 # 0번째 값을 불러온다 >>> str_data[0] '빅뱅'..
리스트란 관계가 있는 데이터를 벡터에 묶는 데이터 형이다. 파이썬의 리스트는 다른 언어의 리스트와 다르게 서로 다른 형들을 하나의 리스트로 관리할 수 있기 때문에 편리성이 있는 반면에 주의를 요할 필요도 있다. 개발을 많이 해본 사람은 잘 알겠지만, 컴퓨터의 인덱스 값은 0부터 시작한다는 점을 기억해 두었으면 한다. 즉 여기서 말하는 1번째라는 것은 2번째 데이터를 뜻한다. 파이썬 리스트 사용법 리스트변수 = [값1, 값2, ... 값n] 파이썬의 리스트 사용법은 위와 같이 대괄호를 사용하며 안에 요소들을 쉼표(,) 형태로 구분한다. 파이썬 리스트 선언 # 리스트 변수 선언 >>> list_data = [] >>> type(list_data) 파이썬의 리스트 선언은 이와 같이 [] 값으로 초기화를 시키는..
Input 함수 파이썬에서는 단 하나 input이라는 메소드를 호출함으로써 값의 입력을 받는 단계를 모두 끝낼 수 있다. 자바에서 사용하는 Scanner도 복잡한 것은 아니지만 이렇게 쉽게 만드는 것은 어떨까라는 아쉬움이 있다. 사실 가장 큰 이유는 Python은 변수를 특정 타입으로 선언할 필요가 없어서 모든 처리들이 심플해진다. 변수 = input("메세지...") 위와 같이 input 이후 메세지를 입력하면, 메세지가 나오고 값을 입력 받을 수 있다. 그리고 그 값은 변수에 저장이 되는데 저 라인이 다이다. 예시를 좀 더 가시적으로 확인해보기 위해서 jupyter에서 실행한 화면을 올려보도록 한다. (소스 코드는 포스팅 하단) Input 예제 (구구단 출력) 위 내용은 input으로 우선 사용자의 ..
While 반복문 다른 언어가 그렇듯 파이썬도 while문을 제공한다. 사용 방법은 while 문 다음에 조건을 넣는 것인데, 이때 해당 조건이 True(참)가 될 경우 loop를 수행한다. While은 for문과 다르게 나갈 수 있는 값이 없으며 직접 그 조건을 입력해야 되기에 for문보다는 잘 사용되지 않는 편이다. While 조건 구문을 이용한 처리 While 문은 우선 loop를 수행한 후 변화한 변수가 조건에 부합하는지 여부를 계속 체크하는 방식이 있다. i = 0 # 변수선언 while i < 5:#조건 print("i는 ", i, "입니다.") i += 1# 증감연산 위 방식의 매커니즘은 다음과 같다. 변수값을 선언한다. (여기서는 i) 현재 변수값을 기준으로 조건을 비교한다 이때 True가..
For 반복문 For는 “~를 위하여”의 뜻만 있는 것이 아니라 “~하는 동안에”라는 뜻을 가지고 있기 때문에 대다수 컴퓨터 언어들이 제공하는 반복 명령문이다. 반복문은 반복해야 하고, 또 탈출을 해야 하는 것이 필요하다 이를 위해서는 2가지의 값이 필요한데 하나는 비교해야 될 대상과 변해야 될 값이다. For문 사용방법 For 변수 in range(값): 반복해야 할 내용 For문 예제 위 예제를 보면, i라는 변수가 있고, range(5)라는 상수값이 있다. 우선 i라는 변수는 아무런 값이 세팅되어 있지 않기 때문에 0으로 세팅이 되며, range(5)에 적힌 수 만큼 반복을 하며 값을 하나씩 증가시킨다. 즉 i값은 0부터 4까지 값이 변화되며 5번을 반복하게 된다. 마지막에 콜론(:) 값까지가 선언..
개발자라면 증감 연산자를 사용해보지 않는 사람이 없을 것이다. C나 Java 개발자라면 ++와 --와 같은 증감 연산자가 너무나도 익숙하다. 하지만 파이썬은 다른 프로그램 언어(Program Language)에서 사용하는 증감 연산자를 제공하지 않는다. 증감연산자 에러 i = 0 print(i++) 이와 같이 매우 간단한 i값하게 i에 1을 증가시키는 증감연산자를 수행해봤는데 아래와 같은 에러가 발생한다. File "D:/Python/example_02.py", line 14 print(i++) ^ SyntaxError: invalid syntax 신택스 에러(SyntaxError)란 구문 오류를 뜻한다. 한마디로 저런 건 파이썬에서 제공하지 않는다는 의미이다. 위치에 따라 에러가 나는지 살피기 위해서 ..