일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Stack
- 윤성우의 열혈 자료구조
- Algorithm
- buffer
- datastructure
- coding test
- 이스케이프 문자
- 알기쉬운 알고리즘
- 이것이 자바다
- insertion sort
- R
- 메모리구조
- stream
- Serialization
- Selection Sorting
- 혼자 공부하는 C언어
- JSON
- list 컬렉션
- C 언어 코딩 도장
- 윤성우 열혈자료구조
- s
- Graph
- C programming
- Today
- Total
목록Programming Language/Python (28)
Engineering Note
최근에 openai의 API를 이용할 서비스를 개발하면서, API key를 사용할 일이 있었다. 그런데 API key는 외부에 노출되면 안되는 정보기도 하고 여러 코드에서 중복으로 사용되는 코드라서 환경변수에 등록하고 사용해야 하는데 환경변수에 등록하고 현재 파일에서 읽어오는 과정을 정리하려고 한다. 그래서 dotenv 모듈의 load_dotenv 함수를 통해 환경변수를 운영체제의 환경변수로 등록해주는 방법을 정리하려고 하려고 한다. 우선 dotenv메서드 사용을 위해 필요한 라이브러리를 설치한다.pip install python-dotenv env 파일이 다음과 같이 있다면 OPENAI_API_KEY="sk-" 다음 처럼 환경변수를 읽어올 수 있다.from dotenv import load_dote..

2차원 리스트 리스트 안에 리스트를 넣어서 만들 수 있음 2차원 리스트로 행,열로 표현된 평면구조를 표현할 수 있음 행과 열은 모두 0부터 시작함 Python에서 2차원 리스트 선언하는 법. 아래는 3행 2열짜리 2차원리스트를 선언한 예다. a = [ [10,20], [30,40], [50,60] ] 조금더 직관적으로 알아보기 위해 python에서 다음과 같이 선언할 수도 있다. a = [ [10,20], [30,40], [50,60] ] 2차원 리스트는 리스트안에 값으로 리스트가 존재하고 이렇게 바깥 리스트 안에 존재하는 각각의 리스트들이 각 행의 값들을 의미한다. 그리고 각 행에 존재하는 열들은 다시 리스트의 값이므로 기존의 리스트에서 값에 접근하는 것처럼 접근이 가능하다. ex) n행은 a[n]으로..

파이썬의 int 함수는 실수 또는 문자열로 표현된 숫자를 정수로 바꾸어 주는 함수이다. 12.3 실수를 int 함수의 매개변수로 넣으면 소수점 이하부분은 지워지고 정수 부분만 반환한다. "11" 이라는 문자열로 된 수를 int 함수의 매개변수로 넣으면 11이라는 10진수 형태의 정수를 반환한다. 여기서 10진수형태라고 한 이유는 int가 default로 10진수의 정수로 반환하고 다른 조건을 넣어준다면 다른 진법표기형태로 수를 바꿀수도 있기 때문이다. 만약 "11"이 2진법의 수를 나타낸 것이였다면 이 수를 2진법의 정수로 바꾸고 싶을 것이다. 그렇다면 다음과 같이 하면된다. int("11",2) 첫 번째 매개변수에 기존 수를 넣어주고, 두 번째 매개변수의 바꾸고 싶은 형태의 진법에 대한하는 n값을 넣어..
Dictinary 파이썬에서는 연관된 값들을 묶어서 저장하는 용도로 딕셔너리라는 자료형을 제공합니다. 아래와 같이 lux 라는 리스트 자료형에서 인덱스 0은 체력, 인덱스 1은 마나, 인덱스 2는 사거리, 인덱스 3은 방어력이라고 했을 때 리스트만 봐서는 각 값이 어떤 능력치인지 쉽게 알기가 힘듭니다. 이럴 때 각 데이터들을 명확히 구분하여 저장하기 위해서 딕셔너리라는 사용합니다. lux = [490,334,550,18,72] 딕셔너리 자료형을 이용해서 게임 능력치를 저장해 보면 아래와 같습니다. lux = {'health':490, 'mana':334, 'melee':550,'armor':18.72} 이렇게 딕셔너리에 값을 저장하면 lux라는 캐릭터의 health(체력)은 490, mana는 334, ..

파이썬에서 함수의 매개 변수로 리스트를 전달할 때 일반 변수와 차이점이 있다. 일반변수를 함수의 매개변수로 전달할때 값만 전달된다. 이를 call-by-value라고 한다. 그러나 리스트는 값이 아닌 주값이 전달된다. 이를 call-by-reference라고한다. 이때 리스트는 call-by-reference로 동작하기 때문에 전달받은 리스트 매개변수로 함수 내부에서 값을 변경하면 함수 외부에서도 값이 변경된다. def nomal_val_swap(a,b): temp = a a = b b = temp def list_swap(list_val): temp = list_val[0] list_val[0] = list_val[1] list_val[1]= temp a = 10 b = 20 list_val = [10..

sorted 와 sort 차이 sorted() 함수이고 sort()는 시퀀스 자료형의 메서드이다. 그래서 사용 법에서도 sorted(시퀀스)는 매개변수를 받고 시퀀스.sort()로 사용한다. 이때 sorted()를 사용하면 인자로 전달한 시퀀스 자료의 값은 변하지 않고 sorted(시퀀스)의 return 값으로 정렬된 형태의 자료가 반환된다. 반면 sort()는 기존 자료를 정렬시켜 기존 자료의 값이 바뀌어 버린다. 그리고 반환값은 None이다. 예시 str_list = list("WXA ") print("origin str_list: ",str_list) print("sorted 함수 사용 중 ch",sorted(str_list)) print("sorted 함수 사용 후 ch",str_list) pri..

permutations 함수 서로 다른 n개중에서 r개를 골라 나열하는 것을 순열이라 하는데 이러한 순열을 구해주는 파이썬 함수 시퀀스 자료형과 r에 해당하는 숫자를 함수의 인자로 넘겨 주면 된다. from itertools import combinations,permutations orders = ["XYZ", "XWY", "WXA"] print(list(permutations(orders,2))) 출력결과 combinations 서로 다른 n개중에서 r개를 고르는 경우를 조합이라 하는데 이러한 조합을 구해주는 파이썬 함수 시퀀스 자료형과 r에 해당하는 숫자를 함수의 인자로 넘겨주면 된다 이때 함수의 반환은 객체이므로 list 함수로 리스트 자료형으로 만들어 준 후에 출력해서 결과를 확인 할 수 있다...

__name__: 파이썬의 기본 내장 변수로 특별한 변수: 현재 스크립트 파일이 모듈로 사용되지 않고 실행파일로 사용되면 __name__은 __main__이 저장되고, 모듈로서 실행되면 __name__은 파일명으로 저장된다.app.py# app.pyprint("app name",_name__)print("hello1")if __name__ == "__main__": print("hello2")python app.py으로 실행을 하면 app.py가 메인 스크립트로 실행이 되는 것이고 __name__변수에는 __main__이 있다.하지만app.py와 같은 디렉토리 위치에아래처럼 test.py라는 파이썬 프로그램을 만들고# test.pyimport appprint("app __name__:",app.__..