프로그래밍 문법 99

[java] int의 오버플로우, long 형 변환

int의 범위 자바에서 인트의범위는 -2147483647 ~ 2147483647 이다. 그 이상의 값이 들어가면 에러가 발생하거나 쓰레기값이 나온다. int a = 1233235*2351; System.out.println(a); 결과값 : -1395631811 long 형변환 숫자뒤에 L을 붙이면 형변환이 되고 long타입으로 받을 수 있다. long a = 1233235L*2351L; System.out.println(a); 결과값 : 2899335485 L을 하나에만 해도 된다. long a = 1233235*2351L; System.out.println(a); 결과값 : 2899335485 나누기를 할 경우 곱셈되는 숫자에 L을 붙여줘야지, 나눗셈에 붙이면 또 터진다. long a = 1233..

정적(static) 함수, 변수

정적함수, 정적변수 - 정적함수 : 인스턴스 없이도 사용할 수 있는 함수, 맴버변수를 사용할 수 없다. - 정적변수 : 인스턴스 없이도 접근할 수 있는 변수 - ex) public class CalculationTest { int ans = 4; static String name = "calculater"; //static 함수 static int add(int x, int y) { // return x+y+ans; //맴버변수는 사용할 수 없다. return x+y; } //맴버함수 int subtractFour(int x, int y) { return x-y-this.ans; } public static void main(String[] args) { //함수들의 사용 CalculationTest c..

abstract 클래스

abstract 클래스란? - 상속받는 자식클래스가 반드시 존재해야 하며 하나이상의 abstract 함수가 존재해야 한다. - abstract함수는 부모클래스에서 정의만 하고, 구체적인 로직 구현은 자식클래스에서 한다. 예시 1. 부모클래스(abstract 클래스) - flyable이라는 abstract 함수를 가진다 package com.fastcampus.de.java.clip11_6; public abstract class Bird { private int x,y,z; void fly(int x, int y, int z) { System.out.println("이동"); this.x = x; this.y = y; this.z = z; if (flyable(z)) { this.z = z; } el..

[접근제어자] private, default, protected, public

접근제어자 종류 1. private : 같은 클래스 내에서만 사용할 수 있음 2. default : 같은 package(폴더)에서만 사용할 수 있음 3. protected : 같은 package혹은 상속받은 자식 클래스에서만 사용할 수 있음 4. 모든 클래스에서 사용할 수 있음 예시 package com.fastcampus.de.java.clip11_5; public class AccessModifierTest { private void messageInside() { // private는 같은 클래스에서만 사용 가능 System.out.println("This is private modifier"); } void messageDefault() { // 같은 패키지에서만 사용 가능 System.out...

자바 클래스패스

클래스패스 - 자바로 컴파일 및 자바코드를 실행할 때 다른 디렉토리에 있는 파일의 경로를 지정하는 것. - 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를 일치시키면 문제가 해결된다.