본문 바로가기

Python

(15)
20210128_Python 와 Ruby 비교05 - 객체와 모듈, 다중상속, mixin, 패키지 매니저 Python vs Ruby (루비 위주) Object & Module (객체와 모듈) 모듈내 클래스 객체에 할당하기 Ruby lib.rb라는 모듈 파일을 생성한 상태에서 실행(루비의 경우엔 파일안에서 모듈 자체 이름을 붙여 주어야 함) Ruby에서는 객체에 할당시에는 ::를 사용하여 모듈 이름을 붙여주고 클래스를 같이 할당함 "lib.rb 파일" module Lib class A def a() return 'a' end end end "작업 하고자 하는 파일" require_relative 'lib' obj = Lib::A.new() # 모듈에 속한 클래스를 가져올 경우 ::을 씀 p obj.a() Python lib.py 파일을 만들고 클래스 할당시 모듈이름.클래스이름() ..
20210127_Python 와 Ruby 비교04 - 인스턴스 변수 접근, 클래스 변수(클래스 멤버), 오버라이딩 Python vs Ruby (루비 위주) Object Oriented Programming 02 (객체 지향 프로그래밍) Ruby와 Python의 인스턴스 변수의 접근 지난시간에 말한것과 같이 Ruby와 Python의 경우에는 인스턴스 변수에 대한 접근 특성은 다르다. Ruby의 경우에는 인스턴스 변수에 직접 접근이 불가능하고 간접적으로 접근이 가능하다. 이에 반해, Python의 경우에는 인스턴스 변수에 접근이 직, 간접 모두 가능하다. 그런데 이렇게 인스턴스 변수에 직, 간접 접근에는 장 단점이 존재한다. Python의 경우에는 직간접으로 접근을 허용함으로써 자유도가 좋고 편리하지만, 그 만큼 데이터의 오류를 초래할 수 있다. 또한 Ruby의 경우에는 데이터의 오류를 잘 정제 할수 있지만, 그만큼 불..
20210123_Python 와 Ruby 비교03, 객체지향, class, instance 생활코딩 "python&ruby"강의 참고 Python vs Ruby (루비 위주) 객체 지향 프로그래밍 (Object Oriented Programming) 철학적이지만, python과 ruby의 기능을 배우는 것으로 생각하는게 구체적인 느낌으로 배울수 있을 것이다. 모듈(module)은 함수를 수납하여 복잡도를 단순화 시킨다. 클래스(class)는 모듈처럼 그룹핑을 통한 수납이 가능한데, 모듈과 다르게 연관된 함수와 변수를 수납한다. 과정 class를 복제하여 instance를 만든다. 그런데 이 instance는 class와 똑같은 변수와 함수를 품지만, 변수의 값만 각각 바뀌어 품고 있는 공통된 함수를 이용해 결과를 낸다. 1. 객체 지향 프로그래밍의 사례 1) 문자열(string) 클래스 사용 ..
20210122_Python 와 Ruby 비교02 - Ruby 함수, 블럭, 모듈 생활 코딩 "Python & Ruby 강의" 수강후 정리 1. Python vs Ruby 1) 함수(Function) 여러곳에서 활용가능하게 하고 코드의 중복을 낮추어 재활용성을 높이며 가독성을 높이는 중요한 기능! 복잡해진 프로그램을 함수를 통해 그룹화로 정리해도 좋음 함수 만들기 로그인 애플리케이션 함수 내가 만든 login 함수는 함수안에 넣는 것을 true, false로 반환해준다. 그리고 real_login 함수는 로그인을 실행시키며 입력을 받게하여 true, false에 따라 출력문을 제시한다. def login(id) members = ['tom', 'jerry', 'snoopy'] for member in members do if member ==..
20210121_Python 와 Ruby 비교 01 - Ruby 위주로 환경설정 Python 3버전, Ruby install vscode에서 작업 할거면 tasks.json 파일 있으면 엄청 편하다 언어별 tasks.json 파일 설정 관련 사이트 문서편집기(notepad)를 통한 코딩 실행 터미널로 작업하기에는 복잡한 구조를 못함-> 코드를 파일로 만들어서 작업하는게 좋음 notepad로 print("hello, world!")hellowworld.rb 파일 작성 notepad로 print("hello, world!")hellowworld.py 파일 작성 Ruby의 경우 터미널에서 동작 명령어는 ruby 파일이름 임 python의 경우 터미널에서 동작 명령어는 python 파일이름 임 (물론, 경로에 없으면 경로에 들어가거나 경로까지 모두 쳐줘야 함) Ruby Syntax..
20210113_ Python 입문10(총 활용), 간단한 타이핑 게임 Python 을 활용한 간단한 타이핑 게임 만들기 1. 게임 구상 한컴 타자연습과 같이 게임에서 타이핑 해야하는 문자를 출력한다. 사용자의 입력을 받는다. 사용자의 입력과 게임에서 출제하는 문제 출력과 동일한지 체크한다. 동일하다는 출력문, 다르다는 출력문 출력 중에서 하나 출력 하고 동시에 해당하는 사운드 출력 5문제 정도 반복 후 게임 끝 출력 맞은 개수에 따른 합격, 불합격 출력 맞은 개수, 걸린 시간, 출력 데이터 베이스 연동 (id, 맞은 개수, 걸린 시간, 등록 시간) 2. 필요한 패키지 import import random # 문제 뽑거나 섞을때 무작위 import time # 걸린 시간을 측정하기 위해서 import winsound # 정답, 오답 사운드를 출력하기 위해서 import sq..
20210111_ Python 입문9, 데이터베이스 연동(SQLite) Python 데이터베이스 연동(SQLite) Python의 경우 기본적으로 sqlite 패키지가 있음 굳이 설치 안해도 됨 DB의 경우 깃허브를 사용하면 잘 알것이라고 생각한다. 저장소 느낌이라고 보면 된다. 장기적으로 보존해야하는 정보를 안전하게 다룰수 있고 복원도 쉬움 데이터 표준화, 독립성 보장, 실시간 처리 가능 1. 파이썬 데이터베이스 테이블 생성, 데이터 삽입 1) datetime 패키지를 활용한 삽입 날짜 생성 import datetime now = datetime.datetime.now() # 나중에 현재시간을 기록할 함수를 써먹기 위해서 알아가는 거임 print('now : ' , now) # now : 연월일 시분초 밀리세컨 까지 출력 '날짜 시간 포맷 변경' nowDatetime = ..
20210110_ Python 입문8,excel, csv 외부 파일 처리 Python 외부 파일 처리_ CSV, XSL, XLSX 1. CSV 파일 읽기 및 쓰기 CSV 파일은 보통 컴마로 구분 되어 있으며 MIME 타입이라고 한다. csv 파일을 사용하기 위해서는 csv를 import 해야 한다.(python에 보통 csv 패키지가 기본으로 있음 pip로 설치할 필요는 없음) 1) CSV 파일 읽기 코드 구분자가 ,인 경우(기본 list 형 반환) import csv # 1. csv import 시켜준다. 함수 호출시 csv 까지 이름을 붙여 호출해줘야함 with open('./resource/sample1.csv', 'r') as f: # 2. with 구문으로 csv파일을 read(읽기)모드로 open해 주며 alias를 f로 지칭 reade..
20210109_ Python 입문7, txt파일 읽기 쓰기, 에러 예외 처리 Python 입문 07 Python 파일 읽기와 쓰기 Python에서 파일을 읽고, 쓰려면 기본적으로 open 함수와 with 문을 알아야 한다. 1. open 함수와 with문 open함수를 통해 파일 객체를 생성해야 한다. 파일 객체 = open('./경로.파일이름', '파일 열기 모드') 파일 열기 모드 : r(읽기모드) , w(쓰기모드), a(추가모드) 안그러면 계속 파일이 열려있는 상태이고 다시 파일에 어떤 기능을 수행할때 부딪혀 에러가 난다. 위 close 때문에 with을 통하면 with문이 끝나면 자동으로 닫힌다. 2. 파일 읽기 1) 접근법 f = open('./resource/review.txt', 'r') # 1. open함수를 사용하여 파일 객체를 지정해 본다. print(type(..
20210108_ Python 입문6, 클래스(class), 클래스의 상속, 모듈(module)과 패키지(pakage) Python 입문 06 Python 클래스(Class) 1. Python 클래스(Class), 인스턴스(Instance), 오브젝트(Object) 이해 먼저 클래스를 사용하는 이유는 데이터 효율적 관리, 복잡한 처리과정을 편하게 만들기 위해서이다. 클래스를 이해하려면 클래스(class), 인스턴스(instance)를 이해 해야 한다. 자그럼 클래스와 인스턴스 등의 용어에 대해 이해해 보자. 세상에는 모든지 개념이라는게 존재한다. 이 개념은 구체적으로 어떤 특정 사람('김아무개'), 사물, 동물, 숫자, 문자, 자료 등의 무엇이든지 존재 자체를 개념이라고 볼 수 있는데 여기서는 Object 라고 이야기한다. 상당히 제일큰 범주의 용어라고 생각한다. Real이라고 생각하는 것도 편한 것 같다. 예를 들어 사..
20210107_ Python 입문5, 함수,*args,**kwargs, parameter hint, lambda Python 입문 05, 함수,args,*kwargs, parameter hint, lambda Python 함수 정의 및 lambda(람다) 사용 1. 함수 반복적, 중복 프로그래밍을 피할수 있음 1) 함수 정의(선언) 방법 구조 def 함수명(매개변수parameter): code 리턴값이 없는 함수 def hello(world): print("hello", world) hello("python!") # world 만 붙여 출력만 하는 함수라서 값이 지정 되어 있지 않아 type()로 데이터 형식 확인 안됨 리턴값이 있는 함수 def hello_return(world): v = "hello" + str(world) return v print(hello_return("python!!!")) print(t..
20210106_Python 입문4, 흐름제어 조건문, 반복문, List comprehension(리스트 컴프리핸션) Today Tips : vscode 단축키 파라미터 정보 힌트 : ctrl + shift + space 함수 위에서 쓰거나 함수 괄호 안에 커서 두고 사용 퀴즈 보충 학습 특정 문자열 추출 index 함수 를 사용하여 슬라이싱을 통해 a = 'apple' # 'pl 추출인 경우 a_idx = a.index('pl') print(a([a_idx : a_idx+1])) 거꾸로 추출 reversed 함수 사용하면 list 형태로 넣어야 되고 출력도 list 형태로 나옴 만약에 그냥 문자 스타일로 출력을 원하면 슬라이싱으로 print(list(revesed())) print a([::-1]) 특정 문자 제거 슬라이싱(너무 손이 많이가고 시간이 많이 걸림)으로 하거나, replace 함수 사용 참고로 정규 표현식..
20210105_Python 입문3, 자료구조, list, tuple, dict, set Python 입문 03 Python 자료구조 (list, tuple) 1. List (리스트) [ ] 대괄호 사용 그릇, 배열로 어떤 특징의 모음이라고 보면 된다. 순서O, 중복O, 수정O, 삭제O 1) 선언 a = [1, 2, 3, ['a', 'b', 'c']] # 리스트 내에 리스트 중복 가능 b = list(1, 2, 3, 'h','i', 'j', 'k') # 명시적 사용도 가능 2) 인덱싱 print(a[2]) # 인덱싱 번호 2번 출력 print(a[3][1]) # 중복 리스트 인덱싱 번호 1번 출력 # 인덱싱 번호 음수도 가능 3) 슬라이싱 저번 시간에 엄청 어렵게 이해했는데 편하게 이해하는 법..
20210104_Python 입문2, 가상환경 설정, pip, 데이터 형태, 문자,숫자 함수 등 Python 입문 02 Print 에서 % ,format사용 어제 % 사용 이어서 알아볼 예정 1. % 와 자리수 print("Q: %6d, P: %4.3f" %(324, 6843.2356)) 이 처럼 %d, %f 에 숫자가 들어가는 경우 숫자는 자리수를 이야기함 %6d : 6자리 정수 %4.3f : 4자리 그리고 소수3자리까지의 실수 2. 숫자 키값 사용 print("Q: {0: 6d}, P: {1: 4.3f}").format(324, 6843.2356)) 이렇게 키값을 사용하여 자리수 지정 출력도 가능. 주의!({0: 6d}에서 :를 붙여써야함. 즉 키지정은 붙여 쓰자 ) 3. 문자 키값 사용 print("Q: {a: 6d}, p: {b: 4.3f}".format(a=324, b=6843.2356))..
20210103_Python 입문, VScode 단축키 GitHub markdown 문법 연습 일단, 깃허브 블로그 타이틀과 카테고리 태그, 목차 사용법을 확인한 상태이고 코드에 주석 **Ctrl + /** 으로 옆에 남겨놨다. (주석 처리시 추가적으로 한컴 입력기 인지 확인하자, Microsoft입력기일 경우 잘 된다. ) 그리고 들여쓰기 는 를 스페이스바 한칸으로 생각하면 좋다.(끊어지지 않는 공란) 난 현재 2번 반복하여 사용한 상태이다. 단, 의 경우 몇번을 해도 1칸 공백으로 처리된다. 코드 블럭 의 경우 grave 라고 숫자 1번 키 왼쪽 버튼인데 grave로 감싸면 코드 처리가 되고 세번 으로 감싸면 코드 블럭 처리가 된다. 그러면서 깃허브 마크다운 코드에 색상을 주고 싶었는데 깃허브에서는 지원을 안하나 보다. 더 찾아봐야 할 듯 하다. 그냥 글..