Programming Language/Python28

IP별 국가코드 매칭(feat.오프라인) 안녕하세요!! 오랜만에 노트북에 앉아있는 베짱이입니다. 오늘은 IP를 입력해서 국가코드를 조회해볼까합니다 그! 러! 나! 귀차니즘이 살그음살그음 다가오고 있네요 호다닥 해보도록 하지요 Q. IP에 해당하는 국가코드를 얻어오는 방법은? A1. IP주소를 입력하면 국가코드를 알려주는 사이트도 있고 A2. API를 통해 온라인상에서 얻어올수도 있고 A3. 라이브러리도 있네요 Q. 그렇다면 이 세가지의 공통점은? 전부 서버에 요청해서 결과를 얻어오는 온라인 방식..!! 그래서 폐쇄망에서는 사용할 수 없다는 치명적인 단점이 있지여.. Sol. 단점 해결방법(오프라인)!! IP대역별 국가테이블을 만들어놓고 반복문으로 대역을 비교해서 얻어오려고 합니다. Start!! 먼저 이 첨부파일은 IP대역별 국가테이블인데 KI.. 2021. 1. 20.
[File_Filter] 파일 분류하는 방법 python2 기반으로 작성했지만 print문에 ()만 붙이면 python3에서도 동작하네요!! 악성코드와 상용프로그램을 한 곳에 저장되어 있어서... 이것을 분류하려고 합니다. 악성코드는 자신의 해시값으로 파일명이 되어있습니다. import os import shutil import sys folder_name = sys.argv[1] listfile_name = sys.argv[2] if len(sys.argv) != 3: print " [-] python file_filter.py [악성코드가 있는 디렉터리] [악성코드 파일명을 저장한.txt]\n" print " [*] Using_Example" print " [*] python file_filter.py /home/maias/Desktop/dat.. 2019. 8. 6.
함수 기초 1. 파이썬 함수.. 다른언어와의 차이점 1) 다른 언어와 다르게 함수도 하나의 자료형으로 간주한다. 2) 파이썬에서는 함수도 하나의 데이터이므로 변수에 대입할 수 있다. 3) 파이썬에서는 함수자체를 매개변수로 사용할 수 있다. 4) 함수이름은 함수의 주소를 의미한다. 5) 함수이름() 은 함수의 호출(실행)을 의미한다. 2. 내장함수(Built-in Function) 1) 별도의 모듈없이 사용할 수 있는 기본으로 제공되는 함수이다. 2) https://docs.python.org/3/library/functions.html 에 접속에서 내장함수 확인이 가능하다. 3) print(dir(__builtins__)) 명령으로도 내장함수 확인이 가능하다. 3. 반환 1) 파이썬은 return 뒤에 값이 없다면.. 2018. 10. 3.
데이터 관계분석 이번 장에서 다루는 내용. - 서울시 CCTV 수와 인구수의 관계를 분석하려고 한다. - 그러기 위해서는 구별 CCTV수와 인구수를 알아야한다. ※ Jupyter Notebook을 사용하려고 한다. ※ numpy, pandas, matplotlib를 사용하여 데이터를 편집하고 그래프로 시각화하려고 한다. 1. 데이터 다운로드[1] - 구글에서 위 사진과 같이 검색한다. - 마우스 버튼이 있는 내용보기를 누른다. - csv형식의 파일을 다운로드 받는다. 2. 읽어오기[1] 1) pandas와 numpyimport pandas as pd # pandas를 pd라고 부르겠다. import numpy as np # numpy를 np라고 부르겠다. [1] pandas - 데이터 분석 및 처리를 쉽게 할 수 있도록.. 2018. 9. 30.
자료타입 1. 비트연산자 - 위 그림과 같이 왼쪽으로 이동 시 이동한 비트만큼 2의 지수승 해준다. (2의 2승) - 위 그림과 같이 오른쪽으로 이동 시 이동한 비트만큼 2의 마이너스 지수승 해준다. (2의 -2승) 2. 입력 - 입력은 위 그림과 같이 "input( )"함수로 입력을 받는다. - 문자열 타입이기 때문에 숫자를 입력받으려면 앞에서 강제로 캐스팅을 해주어야 한다. 3. 리스트 1) 리스트란? - c언어나 자바의 배열과 비슷하다. - 슬롯(인덱스)와 요소(데이터)로 이루어져 있다. - 슬라이싱이 가능하다. - ex) a[0:5] -> [ a[0], a[1], a[2], a[3], a[4] ] 출력, 총 5개를 출력해서 5번 인덱스는 출력x 2) 메소드(자주 사용하는 것만 정리) [1] len("리스트.. 2018. 9. 15.
파이썬 기본문법 1. 사칙연산 / = 나눗셈 결과 // = 나눗셈 결과의 몫 % = 나눗셈 결과의 나머지 2. 진법변환 1) hex( ) - ( ) 괄호 내에 10진수 값을 입력시 16진수 값을 반환한다. 2) oct( ) - ( ) 괄호 내에 10진수 값을 입력 시 8진수 값을 반환한다. 3) bin( ) - ( ) 괄호 내에 10진수 값을 입력 시 2진수 값을 반환한다. 3. 간단한 수학함수 1) abs( ) - ( ) 괄호 내에 값을 입력 시 절대 값을 반환한다. 2) round( ) - ( ) 괄호 내에 값을 입력 시 반올림한 값을 반환한다. 3) math.trunc( ) - math를 import를 해주어야 사용이 가능하다. - math.trunc( ) 는 ( ) 괄호 내에 값을 입력 시 내림 값을 반환한다. .. 2018. 9. 4.
Anaconda3 설치방법 1. Anaconda3 설치 - 파이썬은 2버전과 3버전이 호환이 되지 않으며 2버전의 개발이 중단되었기에 3버전을 설치하려 한다. - 아나콘다3는 많은 라이브러리가 미리 설치되어 있어 아나콘다3를 이용해서 파이썬3을 사용하려고 한다. https://www.anaconda.com/download/ 위 링크로 이동 시 설치가 가능하다. - 사이트 접속 시 위 그림과 같이 다운로드 화면을 볼 수 있으며 자신의 컴퓨터 사양에 맞춰서 다운로드 받으면 된다. - 이 상태(추천해주는 대로)로 다음! - 이 화면에서는 Add Anaconda to my PATH environment variable을 체크해준다. - 이유는 파이썬 환경변수 지정해주는 것을 체크하지 않으면 나중에 수동으로 설정해주어야하기 때문이다. - .. 2018. 9. 4.
제너레이터_문제 1. 제너레이터를 이용한 피보나치수열 def fibonacci_func(n): a,b = 0, 1 i = 0 while True: if (i > n): return yield a a, b = b, a+b i += 1 fibonacci = fibonacci_func(10) for x in fibonacci: print x, [실행결과] 0 1 1 2 3 5 8 13 21 34 55 2018. 8. 10.
제너레이터 1. Generator - iterator를 생성해주는 함수이다. - 겉보기에는 일반적인 함수와 비슷해 보이지만 return 대신에 yield 라는 것이 있다는 것이 차이점이다. 1) 일반함수 - return문을 사용하여 결과 값을 반환하고 stack pointer 복구 후 함수를 종료한다. 2) yield - 함수가 실행 중 yield를 만나면 함수는 일시정지 +[상태 유지(지역변수 및 instruction pointer는 메모리에 유지)] - 반환값을 next() 메소드를 호출한 쪽으로 전달 def generator() : print "start" for x in range(5) : yield x*x for i in generator() : print i, [실행결과] start 0 1 4 9 16 .. 2018. 8. 10.
이터레이터 1. iterator(이터레이터)란? - next() 메소드를 이용하여 데이터를 순회하는 object를 말한다. - 전부 순회한 경우(마지막 데이터 순회) StopIteration exception 발생시킨다. 2. iterable(이터러블)이란? - 멤버를 하나씩 차례로 반환 가능한 object를 말한다. - 종류에는 순차접근이 가능한 list, str, tuple 등이 있다. [소스]for i in range(1,4) : print i, [실행결과] 1 2 3 - 위와 같은 for문도 내부적으로 보면 range() 함수로 생성된 list가 iterable하여 순차적으로 멤버에 접근하고 반환하여 사용한 것이다. - 순차접근이 불가능한 dict 및 file도 iterable 하다. [소스]data = {.. 2018. 8. 10.
입력 1. 입력 - input()함수를 사용 1) 문자 입력word = input("input data = ") print word [실행결과] input data = abcd abcd 2) 숫자 입력 - input()함수의 기본 format이 string이기 때문에 int형으로 변환을 해주어야 한다. x = int(input("first number = ")) y = int(input("second number = ")) result = x + y print 'result =', result print type(result) [실행결과] first number = 10 second number = 20 result = 30 2018. 8. 10.
변환 1. 아스키코드 변환 1) c언어에서는 자동변환 되었지만 python은 함수를 사용하여 변환 - 숫자를 아스키코드로 변환print 'hello', chr(0x0a), 'world' print chr(0x53) + chr(0x74) + chr(0x61) + chr(0x63) + chr(0x6b) [실행결과] hello world Stack - 아스키코드를 숫자로 변환 print ord('a'), ord('b'), ord('c'), ord('d') def change(word) : return "".join([str(ord(a)) + "/" for a in word]) print change("abcd") [실행결과] 97 98 99 100 97/98/99/100/ 2018. 8. 10.