프로그래밍 문법 110

자바 클래스패스

클래스패스 - 자바로 컴파일 및 자바코드를 실행할 때 다른 디렉토리에 있는 파일의 경로를 지정하는 것. - java 파라미터 (-cp 혹은 -classpath)로 설정가능. - 여러개의 경로는 구분자(windows ";", 유닉스계열 ":")로 구분한다 * cf : 환경변수로 지정된 JAVA_HOME 하위의 lib디렉토리는 지정하지 않아도 클래스패스에 포함됨. 예시 외부 클래스(external이라는 디렉토리에 위치한)를 참조하는 Hello.java를 빌드하기 1. -cp 로 파라미터 외부폴더 external를 경로지정 세팅하고 Hello.java 컴파일 javac -cp ../external Hello.java Hello.class파일 생성됨 2. -cp로 외부폴더 external과 현재경로(.)를 ..

데이터프레임 문자열 컬럼을 두개로 쪼개기

문자열 쪼개기 하나의 문자열 컬럼을 쪼개서 다른 문자열 컬럼 두개로 만든다 str사용 a = df["SNP_01"].str[0] b = df["SNP_01"].str[2] display(pd.DataFrame({"SNP_01_01":a,"SNP_01_02":b})) apply함수사용 def split_get_one(a): return a[0] def split_get_two(a): return a[2] a = train["SNP_01"].apply(split_get_one) b = train["SNP_01"].apply(split_get_two) display(pd.DataFrame({"SNP_01_01":a,"SNP_01_02":b}))

파이썬 zip함수

파이썬 zip함수 여러 iterable한 자료형을 순서대로 묶어준다 예시 1 a=[1,2,3,4,5,6,7,8,9] b=[10,20,30,40,50,60,70,80,90] c=[100,200,300,400,500,600,700,800,900] list(zip(a,b,c)) 예시 2 : 묶을 데이터의 길이가 다르면 같은 거 까지만 묵어준다 a=[1,2,3,4,5,6,7,8,9] b=[10,20,30,40,50,60,70,80,90,10,20] c=[100,200,300,400,500,600,700,800,900,100,200] list(zip(a,b,c)) 예시 3 : 자료형이 달라도 묶인다 a=[1,2,3,4,5,6,7,8,9] b={10,20,30,40,50,60,70,80,90,10,20} c=(10..

pip이용하여 requirements.txt 만들기

1. requirements.txt 현재 가상환경에 설치된 python 패키지를 버전과 함께 작성하여 requirements.txt 파일에 저장한다 2. requiremnets.txt 생성 커맨드 다음 커맨드를 이용하여 자동으로 requirements.txt파일을 생성할 수 있다. pip freeze > requirements.txt * 가끔 다음과 같이 @ file 형식으로 버전이 저장되는 경우가 있다. aioredis @ file:///home/conda/feedstock_root/build_artifacts/aioredis_1591809643295/work amqp @ file:///home/conda/feedstock_root/build_artifacts/amqp_1591005859311/work..

파이썬 argparse 사용법

argparse 파이썬 실행시 옵션을 추가할 수 있게 해주는 argparse의 사용법을 알아본다. argparse 구현 import argparse def main(): # args 선언 args = argparse.ArgumentParser() # arg 추가 args.add_argument('--arg1', type=str, default='default1', help='이것은 default1입니다.') args.add_argument('--arg2', type=str, default='default2', help='이것은 default2입니다.') args.add_argument('--arg3', type=int, default=3, help='이것은 default3입니다.') # 파싱 conf..

파이썬 라이브러리 설치, 버전확인, 삭제

1. 라이브러리 설치 pip install [라이브러리이름]==[버전] 버전을 적지 않으면 최신 버전으로 설치 2. 라이브러리 버전 확인 2.1 콘솔창에서 확인 pip show [라이브러리이름] 2.2 코드에서 확인(파이썬 3.8이하) from importlib_metadata import version print(version('라이브러리')) 2.3 코드에서 확인(파이썬 3.8이상) import pkg_resources print(pkg_resources.get_distribution('pywin32').version) 3. 라이브러리 삭제 pip uninstall [라이브러리]

PyAutoGUI 실행시 pyautogui.FailSafeException 에러

1. 문제, 원인 PyAutoGUI로 파일 실행시 다음의 에러가 발생하는경우가 있다. pyautogui.FailSafeException: PyAutoGUI fail-safe triggered from mouse moving to a corner of the screen. To disable this fail-safe, set pyautogui.FAILSAFE to False. DISABLING FAIL-SAFE IS NOT RECOMMENDED. 이는 파일이 실행중, 마우스가 모니터 사각형 모서리에 가는 경우 발생하는 에러이다 2. 해결 pyautogui.FAILSAFE = False 위의 코드를 추가하는 것으로 해당 에러를 방지할 수 있다.

파이참 모듈 설치후에도 ModuleNotFoundError: No module named 에러발생시 해결법

특정 모듈 설치 후에도 ModuleNotFoundError: No module named 에러가 발생하는 경우가 있다. 이런 경우 모듈이 설치된 파이선인터프리터와, 현재 실행되고있는 파이썬 인터프리터가 다른 경우가 원인일 때가 있다. 즉 모듈이 설치된 파이선 인터프리터를 현재 파일의 인터프리터로 설정하면 문제가 해결된다. 따라서 1. 모듈이 설치된 파이썬 인터프리터 2. 현재실행되고있는 파이썬 인터프리터 위 1,2를 일치시키면 문제가 해결된다.

이벤트 발생에 따른 처리

HTML코드 this is h1 1 this is h1 2 this is h1 3 click to change color click to change class mouse over this is h2 this is h3 this is h2(out of div) JS코드 // -------------------------------[이벤트동작]------------------------------- // 1. 클릭으로 색깔 바꾸기 function handleTitleClickColor() { // element가 블루면 토마토, 토마토면 블루로 const nowColor = changeColorElement.style.color; let newColor; if (nowColor==="blue") { ne..

HTML에서 작성한 내용을 JS에서 수정하기

HTML코드 this is h1 1 this is h1 2 this is h1 3 click to change color click to change class mouse over this is h2 this is h3 this is h2(out of div) JS코드 // -------------------------------[불러오기]------------------------------- // 1. id로 불러오기 const callById = document.getElementById("line1"); console.log(callById); console.log("className : ",callById.className); console.log("innerText : ",callById.in..

함수 파라미터를 변수로 묶어서 넣기 (*args, **kwargs)

함수의 파라미터를 변수로 만들어주는 것 *args, **kwargs 함수의 파라미터 값이 매우 많은 경우가 있다. (catboost의 예) 이 경우 함수의 파라미터값을 줄줄 써주어야 하는 불편함이 있다. 이를 방지하기 위해 변수에 함수 파라미터를 넣고, 해당 변수만 함수의 input값으로 주면 코드를 깔끔하게 할 수 있다. 이를 가능하게 해주는 것이 *args와 **kwargs이다. 먼저 파라미터 a,b,c가 있는 다음과 같은 함수가 있다. def func(a,b,c): print("a : ",a) print("b : ",b) print("c : ",c) 이를 *args와 **kwargs *args 파라미터들을 튜플형태로 묶어준다. 파라미터 순서에 맞게 튜플 값들의 순서를 맞춰주어야 한다. input_a..

파이썬 함수주석(Function Annotations), (->, : , __anotations__)

파이썬 Function Annotations 파이썬에서 함수를 구현할때, input과 output의 type을 주석으로서 명시해줄 수 있다. 다음과 같이 ":" 과 "->"를 하고 타입을 명시해준다. def f(a:str, b:int, c:bool)->list: 이는 a는 string타입, b는 int타입, c는 bool타입, 그리고 함수 리턴값은 list타입을 의미한다. 예시 1. code def f(a:str, b:int, c:bool)->list: print("a의 데이터타입은 string : ",a) print("b의 데이터타입은 int : ",b) print("c의 데이터타입은 bool : ",c) return [a,b,c] return_value = f("hello",10,True) print..

파이썬 시간 datetime 클래스

함수 의미 timetype.strftime(“%Y%m%d”) time 타입의 객체를 “20210510” 형식으로 바꿈 timetype-timedelta(days=1) 하루 전으로 시간을 옮김 datetime.datetime.strptime(“2021-07-19”,”%Y%m%d”) 문자열을 time 타입으로 (2021-07-19 00:00:00) dateobj.date() 분단위 까지 있는 시간타입을 일단위까지 만들어줌 (2021-07-19 00:00:00 => 2021-07-19 ) dateobj.weekday() 날짜타입의 요일을 반환 (월요일:0, 화요일:1 ...일요일:6)