일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- slice
- js
- lambda
- or
- LOWER
- Algorithm
- range
- iNT
- If
- split
- join
- STR
- index
- len
- MAX
- list
- 파이썬
- decorator
- FOR
- SQL
- enumerate
- Python
- DART
- WECODE
- 위코드
- map
- Sorted
- and
- sum
- count
- Today
- Total
목록나는 이렇게 학습한다/Language (51)
코드로 우주평화
캡슐화 파이썬은 클래스를 작성할 때, 변수나 함수 앞에 '__' 를 붙여 캡슐화, 즉 은닉을 할 수 있습니다. 예를 들어 객체 내 변수에 접근할 때, 일반적으로 다음처럼 '.'과 변수명만으로 쉽게 접근할 수 있습니다. class Robot: def __init__(self, name, num): self.name = name self.num = num robot = Robot('다코', '0001') print(robot.name, robot.num) ''' 결과 >>> 다코 0001 ''' 하지만 이것은 외부에서 변수를 쉽게 조작할 수 있음을 의미합니다. 이를 방지하기 위해 변수앞에 '__'를 붙여 외부에서 접근할 수 없도록 막을 수 있습니다. class Robot: def __init__(self, ..
파이썬에서 클래스들을 살펴보면 가끔 뜬금없이 데코레이터가 등장하곤 합니다. 바로 @classmethod, @staticmethod 데코레이터입니다. 이 두 데코레이터를 왜 사용하는지 같이 살펴보겠습니다. 우선 다음처럼 클래스 코드를 작성하고 인스턴스를 만들겠습니다. class Robot: number = '0001' def __init__(self, name): self.name = name def 인스턴스메서드(self): print(f'인스턴스메서드 호출 {self.name}') @classmethod def 클래스메서드(cls): print(f'클래스메서드 호출 {cls.number}') @staticmethod def 스태틱메서드(): print('스태틱메서드 호출') robot = Robot('..
파이썬에는 magic method 라는 것이 있습니다. 흔히 __000__ 형태로 되어 있는 것을 의미하며 이는 파이썬 자체에 내장되어 있는 메서드들입니다. # magic method 예시 '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeo..
어떤 객체가 무슨 타입인지를 알려면 type() 메서드를 활용하면 됩니다. 하지만 어떤 타입이 맞는지 참/거짓으로 체크만 하고 싶다면 isinstance()를 활용할 수 있습니다. 사용법은 간단합니다. isinstance 메서드에 첫 번째 인자로 해당 객체를, 두번째 인자로 체크하고 싶은 타입을 넣어주면 됩니다. def 체크_문자열(객체): return isinstance(객체, str) print(체크_문자열('문자')) # >>> True print(체크_문자열(123)) # >>> False 문자열을 넣었을 때는 True, 숫자를 넣었을 때는 False를 반환합니다. def 체크_리스트(객체): return isinstance(객체, list) print(체크_리스트('문자')) # >>> Fals..
배열을 받아 for문을 돌려 배열내 요소들을 찾거나 가공해야하는 경우가 많습니다. (매우매우) 파이썬이야 ' for i in arr: print(i) ' 로 끝나지만 js의 경우 for문내 조건에만 3가지 항목을 넣어야 합니다. // 일반적인 for 문 형태 for (let i = 0; i {console.log(item)} ) // 결과 1 2 3 4 // 두번째 인자를 지정하면 인덱스도 가져올 수 있다...
리스트에 어떤 요소의 개수를 파악해야하는 때가 있습니다. (특히 코딩테스트에서 사용할 일이 많습니다) 그래서 오늘은 요소 개수를 세는 방법을 정리해보고자 합니다. dictionary 사용 # 요소를 세고 싶은 리스트 >>> list = [1,2,3,4,5,5,5,5,5,1,1] # 빈 딕셔너리를 생성 >>> dict = {} # 요소가 딕셔너리에 있다면 += 1, 없다면 = 1 >>> for num in list: if num in dict: # dict.get(num)로 대체가능 dict[num] += 1 else: dict[num] = 1 # {요소(키): 개수(값)} 형태의 딕셔너리 생성 >>> dict {1: 3, 2: 1, 3: 1, 4: 1, 5: 5} 기본 딕셔너리를 사용하는 베이직한 방법입..
자바스크립트에는 스프레드 연산자라는 것이 있습니다. 형태는 '...arr' 이렇게 생겼습니다. 보통 배열을 합치거나 복사할 때 사용가능하고 함수에도 사용할 수 있습니다. 사용법은 다음과 같습니다. 1. 배열을 합칠 때 let a = [1,2,3,4,5]; let b = [5,5,5,5,5]; let c = [...b, ...a]; console.log(c) >>> [ 5, 5, 5, 5, 5, 1, 2, 3, 4, 5 ] 스프레드 연산자 '점점점'과 배열 변수명을 요소로 넣으면 됩니다. 2. 배열을 복사 할 때 let a = [1,2,3,4,5]; let d = [...a] console.log(d) >>> [ 1, 2, 3, 4, 5 ] 위와 동일한 방법으로 해당 배열을 복사할 수도 있습니다. 이렇게 ..
자바스크립트의 경우 배열의 합을 구하는 간단한 내장함수가 없는 것 같습니다. (파이썬 최고..) 라이브러리를 설치하거나 for문 혹은 reduce함수를 사용해야하는데 이번 글에서 for문으로 배열 합을 구하는 함수를 만들어 보겠습니다. 코드부터 볼까요? let a = [1,2,3,4,5]; function sum(a){ let sum = 0; for (let i of a){ sum += i; }; return sum; }; console.log(sum(a)) >>> 15 1. 함수 sum은 배열을 인자로 받습니다. 2. 배열로부터 요소를 뽑아 sum이라는 변수에 반복하여 더합니다. 3. sum 변수를 반환합니다. 이처럼 함수를 미리 작성해두면 Python의 sum() 처럼 배열 합계를 구하는데 사용할 수..
딕셔너리의 get 메서드와 ['키']를 이용해 값을 가져올 수 있습니다. 단 ['키']를 이용해 값을 가져올 경우, 키가 없다면 키 에러를 내뱉으므로 에러를 따로 핸들링 해주어야 합니다. >>> x {'a': 100, 'b': 200, 'c': 300} # x 딕셔너리 키-값 >>> x.get('a') # 'a'키를 가져온다. 100 >>> x.get('d') # 'd', 만약 없는 키를 요청하면 None을 반환한다. >>> >>> type(x.get('d')) >>> x.get('d', 1000) # 없는 키에 두 번째 인자로 기본값을 지정해주면 기본값을 반환한다. 1000 >>> x['a'] # get 뿐만아니라 ['키'] 형태를 이용해 값으르 가져올 수 있다. 100 >>> x['d'] # 단, 이..
setdefault 메서드로 딕셔너리에 '키'와 '값' 추가할 수 있다. >>> x = {} >>> x.setdefault('a') # 딕셔너리에 '키'를 추가한다. >>> x {'a': None} # 기본값은 'None'이다. >>> x.setdefault('b', 100) # 두번째 인자에 '값'을 넣을 수도 있다. >>> x {'a': None, 'b': 100} # '키'와 '값'을 확인할 수 있다. update 메서드를 이용해 딕셔너리 '키'와 '값' 수정할 수 있다.(없으면 키-값 추가) >>> x.update(a=50) # '키'와 '값'을 지정하여 넣을 수 있다. >>> x {'a': 50, 'b': 100} >>> x.update(c=200) # 만약 '키'와 '값'이 없다면 추가된다. ..