다른 언어도 쉽겠지만 Python은 정말 별도로 구현해야 하는 것들을 기본적으로 매우 잘 제공하고 있다. 정렬도 그중 하나의 예인데 다양한 정렬 방식을 제공하니 아래와 같이 필요한 방법을 사용하면 된다. sorted() - 현재 리스트를 변경하지 않고 정렬 후 변수에 넘기는 방식 list_data = [4,2,5,3,7,8,9] sorted_list_data = sorted(list_data) print('새로운 리스트->', sorted_list_data) # 새로운 리스트-> [2, 3, 4, 5, 7, 8, 9] list.sort() - 현재의 리스트를 정렬한다. list_data.sort() print('본인 정렬->', list_data) # 본인 정렬-> [2, 3, 4, 5, 7, 8, 9]..
이 포스팅은 일반적인 계산으로 구하는 것과 numpy를 활용하는 것 2가지 방식을 모두 제공합니다. 라이브러리 및 리스트 생성 import math import numpy vals = [i+1 for i in range(10)] # 1부터 10까지 숫자를 리스트로 생성 print(vals) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 우선 for문을 사용하여 1 ~ 10까지의 숫자를 리스트로 생성하여 vals라는 변수에 담습니다. 평균구하기 # 평균 mean = sum(vals) / len(vals) print(mean) # 5.5 일반적인 방식으로 평균을 구하는 방식은 이와 같이 더하고 나누는 작업을 해야 하지만 # Numpy 평균 num_mean = numpy.mean(vals) pr..
소인수분해(Prime Factorization)란 다들 알다시피 1보다 큰 자연수인 소인수(소수인 인수)들만의 곱으로 표현하는 것을 말한다. 소인수는 일단 1이라는 값이 아닌 2부터 시작하는 것이 핵심이며, 2로 나누지 못할 경우 2에서 +1를 해주면서 나누어지는지 체크하면 된다. 소인수분해 소스코드 def factorization(x): d = 2 while d
이클립스에서 원치 않는 에러가 나올 경우가 있다. 예를 들어, 소스를 나눴을 때 제대로 열고 닫음이 없어서 에러로 인식을 해버릴 수 있다. 이렇게 원치 않은 에러가 나올경우 무시를 하면 되는데 자바스크립트(js) 파일을 기준으로 설명을 해보고자 한다. 보통 부트스트랩(bootstrap) 소스를 받아다가 작업을 하다보면 상당히 많은 프로젝트에서 에러가 발생하고 대다수는 자바스크립트이다. 위 예제는 부트스트랩 내에 있는 plugins에 있는 자바스크립트에서 에러가 발생하였는데 이를 없애보도록 한다. Step by Step 우선 해당 프로젝트를 선택 후, Project 메뉴에서 제일 하단의 Properties를 선택한다. Javascript 메뉴에서 Include Path를 선택하고 Excluded를 더블클릭..
랜덤 모듈은 난수값을 생성하기 위한 기능을 담고 있는 모듈로 다양한 랜덤 관련 함수를 제공하고 있다. 랜덤 모듈의 경우 게임등에서도 활용할 수 있지만 데이터 분석에서도 다양한 결과를 실험하기 위해서도 쓰일 수 있으며 화면에서 데이터들을 랜덤으로 노출하고 싶을 때에도 사용할 수 있는 등 활용 방법은 매우 다양하다. 랜덤 사용 방법 import random random.random()# 0~1의 실수값 기본적으로 random.random() 함수를 사용하면 0~1의 실수값을 호출하게 된다. 위의 random을 호출한 결과는 그때그때 다르겠지만 이와같이 모두 0~1사이의 실수가 나오는 것은 확인할 수 있다. 값의 범위 지정하기 0~1의 값을 이용하여 다양한 랜덤을 구현할 수도 있겠지만, 값의 범위를 지정하여 ..
보편적인 if~else 문 public static void test1 () { String grade = ""; int math = 70; if(math >= 90) grade = "pass"; else grade = "fail"; System.out.println(math + " is " + grade); } // 70 is fail 일반적으로 if ~ else 구문을 사용할 때에는 이와같이 변수들을 세팅하여 각 조건마다 값을 세팅한다. 위 예제는 math값이 90이 넘을 경우 pass이고 그렇지 못할 경우, fail인데 math값이 70이기 때문에 "70 is fail"이라는 결과를 화면에 뿌려준다. default를 세팅하여 라인을 줄인 else 문 public static void test2 ()..
파이썬에서 클래스를 만들 경우, 생성자와 소멸자를 만들어서 원하는 값을 세팅하거나 해제시킬 수 있다. 예를들어 우리가 형태소 분석기를 파이썬으로 직접 만든다고 가정을 해보자. 그러면 형태소 분석기의 객체를 생성하는 것과 동시에 품사 사전을 읽어야 될 것이다. 이런것들 뿐만 아니라 해당 클래스에 속한 메소드들이 공통으로 사용하는 값들이 존재한다면, 생성자를 통해서 값을 세팅할 수 있을 것이다. 생성자 class 클래스명: def __init__(self): 생성자는 __init__ 메소드를 만들면 된다. self는 기본적으로 생성이 되며 값을 세팅하고 싶을 경우 self 이후에 인자값을 지정하면 된다. 소멸자 class 클래스명: def __del__(self): 클래스가 소멸하게 될 경우 실행되는 메소드..
문자열을 내가 원하는 형태로 출력하고 싶을 경우 format 함수를 이용해서 구현할 수 있으며 format 함수는 기능이 크게 2가지가 있다. 첫째 포맷안에 있는 값을 다른 방식으로 출력하고 싶은 경우 (ex: 천단위에 콤마를 붙인다던지) 둘째 %d 처럼 해당 위치에 값을 대입하는 것이다. 값 대입 사용법 중괄호가 포함된 문자열.format(값들) 사용법은 문자열 내부에 중괄호 {}가 존재하며, 문자열 이후 format() 펑션에 중괄호에 맞는 값들을 입력하면 된다. 예시 기본적인 방법 print('숫자 : {}, 실수 : {}'.format(5, 0.5)) # 숫자 : 5, 실수 : 0.5 위와 같이 숫자와 실수를 매우 자유롭게 입력할 수 있다. 인덱스 부여 print('실수 : {1}, 숫자 : {0..
파이썬에서는 리스트(List)와 같은 반복적인 데이터를 특정 조건에 맞으면 걸러주는 Filter 내장함수가 있다. 다만 필터함수는 사용법이 특이한 것이 별도의 함수가 필요하다. 인자값을 2개 전달하는데 하나는 필터링을 위한 함수와 데이터이다. 필터 사용법 filter (함수, 데이터) 필터가 없을 경우 우선 filter함수가 없을 경우 처리 방법에 대해서 생각을 해보도록 한다. numbers = range(1, 11) # 짝수만 결과 리턴 def is_even(number): return number % 2 == 0 # 짝수일 경우 True result = [] for number in numbers: if is_even(number): result.append(number) print(result) #..
프로그램은 2가지만 잘해도 왠만한 것들은 다 만들 수 있다. 첫째 반복문, 둘째 조건문이다. 반복문은 for문과 while문이며 이는 이전 포스팅에서 설명을 했으니 이제 조건문에 대해서 알아보도록 한다. 조건문이란 어떤 조건을 생성하고 해당 조건이 맞으면 수행하는 문을 말하며 파이썬에서는 if 조건문이 있다. for문, while문과 if 조건문은 모두 제어문에 속하며 제어문은 프로그램의 실행 순서등을 제어하거나 특정 조건일 때 수행할 수 있게 하는 것을 말한다. 사용법 if 조건: 실행문 elif 조건: 실행문 elif 조건: 실행문 ... else: 실행문 사실 조건문은 if만 있는 것이 아니다. while 문에서도 true일 때 loop를 실행하게 되는데 while에서 사용하는 조건과 if에서 사용..
IndexOf는 문자열에서 특정 단어가 있는지를 찾고 있을 경우 위치값을 리턴하는 내장 함수이다. 위치값은 0부터 시작하기 때문에 0 이상값이 나오면 결과가 리턴이 되고, -1인 경우 해당 값이 없을 경우이다. 그러나 이 메소드는 위치값을 찾을 경우 그 자리에서 종료를 하기 때문에 별도의 처리를 해야 모든 위치를 찾을 수 없다. 내가 검색을 못한건지, 아직 모든 위치를 리턴하는 함수를 찾지 못하였다(혹시나 indexOfAll같은 것이 있나 싶었지만...) 비슷한 역할을 하는 함수로 contains가 있는데 이는 값이 있는지 여부를 찾으며, true, false로 리턴하는 함수이기 때문에 indexOf보다 범용적이지 못하다. 모든 위치 찾기 예제 public static void main(String[] ..
파이썬으로 작성된 파일을 실행할 때 인수(argument, 인자값)를 받아서 처리를 해야 되는 경우가 있다. 예를 들어, 로컬과 개발 등의 환경이 서로 달라서 인자값을 줘야 한다던지 같은 파일을 다른 목적으로 처리를 해야 할 때 인자값을 줄 수가 있을 것이다. 이럴때 파이썬에서는 sys.argv에 값을 담아 처리를 할 수 있게 된다. sys.argv에서 sys는 파이썬 인터프리터와 관련된 정보와 기능을 제공하는 모듈 혹은 라이브러리이며, argv는 위에 적은 것처럼 argument를 의미한다. 예시 python hello.py neo 첫번째로 위와 같은 command에서 실행을 한다고 가정을 하며 hello.py 다음에 1개의 인자값을 줬는데 neo라는 인자값이다. 이 인자값을 어떻게 프로그램이 처리를 ..