본문 바로가기

Python

(73)
[Python] [정수 다루기] 몫과 나머지 - divmod 이 글은 프로그래머스의 파이썬을 파이썬답게 강의를 수강하고 작성하는 글입니다. 알고리즘 문제를 풀다 보면, 정수를 나눈 몫과 나머지를 구해야 할 때가 있다. 보통(다른 언어에서는) 아래와 같이 몫과 나머지를 따로 구한다. a = 7 b = 5 print(a//b, a%b) # 1 2 (파이썬에서 /연산자는 부동소수점 숫자를 돌려준다. //연산자가 두 수를 나누고 정수를 제외한 나머지를 잘라버린다.) 파이썬에서는 파이썬의 divmod와 unpacking을 이용하면 다음과 같이 코드를 짤 수 있다. a = 7 b = 5 print(*divmod(a, b)) # 1 2 ※ divmod를 사용할 때 주의할 점 무조건 divmod를 사용하는 게 좋은 방법은 아니다. 가독성이나, 팀의 코드 스타일에 따라서, a//..
[Python] Asterisk 본 글은 BoostCourse에서 '머신러닝을 위한 파이썬' 강의를 듣고 작성한 글입니다. Asterisk(*)는 가변인자로 한번에 여러개의 변수를 넘겨줄 때 유용하다. 예시 def asterisk_test(a, *args): print(a, args) print(type(args)) asterisk_test(1,2,3,4,5,6) #1 (2, 3, 4, 5, 6) # def asterisk_test(a, **kargs): print(a, kargs) print(type(kargs)) asterisk_test(1, b=2, c=3, d=4, e=5, f=6) #1 {'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6} # unpacking (2, 3, 4, 5, 6)이 하나의 tuple..
[Python] lambda & map & reduce 본 글은 BoostCourse에서 '머신러닝을 위한 파이썬' 강의를 듣고 작성한 글입니다. 1. lambda 함수 이름 없이, 함수처럼 쓸 수 있는 익명함수이다. 다음 f함수는 def f(x, y): return x + y print(f(1, 4)) 이렇게 람다를 이용해서 나타낼 수 있다. f = lambda x, y: x + y print(f(1, 4)) 2. map sequence자료형에 함수 적용을 하나하나 한꺼번에 할 때 굉장히 유용하게 사용된다. (python2에서는 print(map(f, ex))해도 [1, 4, 9, 16, 25]의 list 결과가 나오지만 python3에서는 list(map(f, ex))를 해줘야지 list형태로 나온다.) ex = [1, 2, 3, 4, 5] f = lam..
[Python] join과 split 1. join sequence의 멤버들을 하나의 문자열로 합치는 함수이다. 예시1 sequence의 멤버들을 하나의 string으로 이어붙인다. my_list = ['1', '100', '33'] answer = ''.join(my_list) # answer = '110033' 예시2 li = ['This', 'is', 'the', 'example', 'of', 'split'] print(" ".join(li)) #"This is the example of split"가 출력된다. 2. split 문자열을 쪼개는 함수이다. 파라미터로 구분자를 주면 해당 구분자를 기준으로 문자열을 잘라 리스트 형식으로 반환한다. 파라미터에 아무것도 주지 않으면 공백을 기준으로 문자를 나눈다. 예시 str = "This i..
[Python] 문자열 소문자 또는 대문자로 바꾸기 1. string.upper() string내부의 모든 알파벳을 대문자로 바꿔주는 함수이다. 예시 1 2 str = "abcd" print(str.upper()) #"ABCD"가 출력된다. cs 2. string.lower() string내부의 모든 알파벳을 소문자로 바꿔주는 함수이다. 예시 1 2 str = "ABCD" print(str.lower()) #"abcd"가 출력된다. cs
[python] 2차원 배열 선언 n*m의 2차원 배열을 선언하는 방법에 대해서 알아보겠습니다. 1. 2중 for문으로 2차원 배열 선언 array = [[0 for col in range(m)] for row in range(n)] 2. 연산자 *와 for문으로 2차원 배열 선언 array = [[0]*m for i in range(n)] 3. 연산자 *로 2차원 배열 선언 단, 아래 코드는 전체 리스트 안에 포함된 각 리스트가 모두 같은 객체로 인식된다. array = [[0]*m]*n 참고: 직진
[Python] 모듈과 패키지 그리고 프로젝트 모듈각종 변수, 함수, 클래스를 담고 있는 파일특정 기능을 .py 파일 단위로 작성한 것패키지특정 기능과 관련된 여러 모듈을 모아놓은 디렉터리패키지는 모듈에 네임스페이스(namespace, 이름공간)를 제공한다.잘 만들어진 패키지는 다른 여러 프로젝트에서 가져와(import) 사용할 수 있다.- 구조: 여러 파이썬 모듈(.py 파일)과 __init__.py 파일로 구성 (__init__.py 파일이 있어야 파이썬이 해당 디렉터리를 패키지로 인식)- 목적: 특정 기능(예: 데이터 분석, 웹 요청)을 수행하는 코드들을 체계적으로 묶어 다른 개발자들이 쉽게 설치하고 사용할 수 있도록- 예시: pandas, requests, numpy 등 pip을 통해 설치하는 대부분의 라이브러리들이 패키지에 해당라이브러리특정..
[Pytorch] torch has no "from_numpy" member #pylint: disableE1101 과 #pylint: enable=E1101 사이에 torch.from_numpy() 코드를 작성하면 된다. # pylint: disable=E1101 tensor = torch.from_numpy(np_array) # pylint: enable=E1101