본문 바로가기

BASIC50

비공개 속성, 메서드 사용하기 비공개 속성, 메서드 사용하기 클래스 바깥에서는 접근할 수 없고 클래스 안에서만 사용할 수 있는 비공개 속성(private attribute)을 사용해보겠습니다. 비공개 속성은 클래스 안의 메서드에서만 접근할 수 있습니다. 비공개 속성은 __속성과 같이 이름이 __(밑줄 두 개)로 시작해야 합니다. 단, __속성__처럼 밑줄 두 개가 양 옆에 왔을 때는 비공개 속성이 아니므로 주의해야 합니다. class 클래스이름: def __init__(self, 매개변수) self.__속성 = 값 class Person: def __init__(self, name, age, address, wallet): self.name = name self.age = age self.address = address self.__.. 2023. 11. 17.
위치 인수, 키워드 인수 참고 | 클래스의 위치 인수, 키워드 인수 클래스로 인스턴스를 만들 때 위치 인수와 키워드 인수를 사용할 수 있습니다. 규칙은 함수와 같습니다. 위치 인수와 리스트 언패킹을 사용하려면 다음과 같이 *args를 사용하면 됩니다. 이때 매개변수에서 값을 가져오려면 args[0]처럼 사용해야 합니다. class Person: def __init__(self, *args): self.name = args[0] self.age = args[1] self.address = args[2] maria = Person(*['마리아', 20, '서울시 서초구 반포동']) 키워드 인수와 딕셔너리 언패킹을 사용하려면 다음과 같이 **kwargs를 사용하면 됩니다. 이때 매개변수에서 값을 가져오려면 kwargs['name']처.. 2023. 11. 17.
튜플 응용하기 메서드 설명 index(값) 리스트에서 특정 값의 인덱스를 구함 count(값) 리스트에서 특정 값의 개수를 구함 튜플 응용하기 이번에는 튜플의 메서드와 다양한 사용 방법을 알아보겠습니다. 튜플은 리스트와는 달리 내용을 변경할 수 없습니다(불변, immutable). 따라서 내용을 변경하는 append 같은 메서드는 사용할 수 없고, 요소의 정보를 구하는 메서드만 사용할 수 있습니다. 튜플에서 특정 값의 인덱스 구하기 index(값)은 튜플에서 특정 값의 인덱스를 구합니다. 이때 같은 값이 여러 개일 경우 처음 찾은 인덱스를 구합니다(가장 작은 인덱스). 다음은 53이 세 번째에 있으므로 인덱스 2가 나옵니다. >>> a = (38, 21, 53, 62, 19, 53) >>> a.index(53) 2 특.. 2023. 10. 9.
map 22.6 리스트에 map 사용하기 이번에는 리스트에 map을 사용해보겠습니다. map은 리스트의 요소를 지정된 함수로 처리해주는 함수입니다(map은 원본 리스트를 변경하지 않고 새 리스트를 생성합니다). list(map(함수, 반복가능한 객체)) list(map(함수, 리스트)) tuple(map(함수, 튜플)) 예를 들어 실수가 저장된 리스트가 있을 때 이 리스트의 모든 요소를 정수로 변환하려면 어떻게 해야 할까요? 먼저 for 반복문을 사용해서 변환해보겠습니다. >>> a = [1.2, 2.5, 3.7, 4.6] >>> for i in range(len(a)): ... a[i] = int(a[i]) ... >>> a [1, 2, 3, 4] for에 range(len(a))를 사용해서 인덱스를 가져왔습.. 2023. 10. 9.
리스트 표현식 리스트 표현식( 리스트 컴프리헨션 / list comprehension) 사용하기[식 for 변수 in 리스트]list(식 for 변수 in 리스트)>>> a = [i for i in range(10)]        # 0부터 9까지 숫자를 생성하여 리스트 생성>>> a[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> b = list(i for i in range(10))    # 0부터 9까지 숫자를 생성하여 리스트 생성>>> b[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]   리스트 표현식의 동작 순서 >>> c = [i + 5 for i in range(10)]    # 0부터 9까지 숫자를 생성하면서 값에 5를 더하여 리스트 생성>>> c[5, 6, 7, 8, 9, 10, 11.. 2023. 10. 9.
리스트의 가장 작은 수, 가장 큰 수, 합계 구하기 22.4 리스트의 가장 작은 수, 가장 큰 수, 합계 구하기 이번에는 리스트(튜플)에 저장된 값 중에서 가장 작은 수, 가장 큰 수, 요소의 합계 구해보겠습니다. 22.4.1 가장 작은 수와 가장 큰 수 구하기 먼저 가장 작은 수와 가장 큰 수는 어떻게 구할까요? 앞에서 반복문을 배웠으니 요소를 모두 반복하면서 숫자를 찾아내 보겠습니다. >>> a = [38, 21, 53, 62, 19] >>> smallest = a[0] >>> for i in a: ... if i >> smallest 19 먼저 리스트 a의 첫 번째 요소 a[0]를 변수 smallest에 저장합니다. 그리고 for로 리스트의 요소를 모두 반복하면서 i가 smallest보다 .. 2023. 10. 9.
리스트 반복문 22.3 반복문으로 리스트의 요소를 모두 출력하기 리스트에 인덱스를 지정하여 요소를 한 개씩 출력하기는 상당히 귀찮죠? 이번에는 리스트와 반복문을 사용하여 간단하게 모든 요소를 출력해보겠습니다. 22.3.1 for 반복문으로 요소 출력하기 for 반복문은 그냥 in 뒤에 리스트를 지정하면 됩니다. for 변수 in 리스트: 반복할 코드 다음은 for로 리스트 a의 모든 요소를 출력합니다. >>> a = [38, 21, 53, 62, 19] >>> for i in a: ... print(i) ... 38 21 53 62 19 for i in a:는 리스트 a에서 요소를 꺼내서 i에 저장하고, 꺼낼 때마다 코드를 반복합니다. 따라서 print로 i를 출력하면 모든 요소를 순서대로 출력할 수 있습니다. 물론 .. 2023. 10. 9.
리스트의 할당과 복사 알아보기 이번에는 리스트의 할당과 복사에 대해 알아보겠습니다. 할당과 복사는 비슷한 것 같지만 큰 차이점이 있습니다. 먼저 다음과 같이 리스트를 만든 뒤 다른 변수에 할당합니다. >>> a = [0, 0, 0, 0, 0] >>> b = a b = a와 같이 리스트를 다른 변수에 할당하면 리스트는 두 개가 될 것 같지만 실제로는 리스트가 한 개입니다. ▼ 그림 22-12 리스트를 다른 변수에 할당했을 때 a와 b를 is 연산자로 비교해보면 True가 나옵니다. 즉, 변수 이름만 다를 뿐 리스트 a와 b는 같은 객체입니다. >>> a is b True a와 b는 같으므로 b[2] = 99와 같이 리스트 b의 요소를 변경하면 리스트 a와 b에 모두 반영됩니다. >>> b[2] = 99 >>> a [0, 0, 99, 0.. 2023. 10. 9.
리스트 method 리스트 메서드 메서드 설명 append(값) 리스트 끝에 값을 추가, 리스트[len(리스트):] = [값]과 같음 append(리스트) 리스트를 넣으면 리스트 안에 리스트가 들어감 extend(리스트) 리스트 끝에 다른 리스트 연결, 리스트[len(리스트):] = [값, 값]과 같음 insert(인덱스, 값) 리스트의 특정 인덱스에 값을 추가 pop() 리스트의 마지막 값을 삭제한 뒤 삭제한 값을 반환 pop(인덱스) 인덱스를 지정하면 해당 인덱스의 값을 삭제한 뒤 삭제한 값을 반환, del 리스트[인덱스]와 같음 remove(값) 리스트에서 특정 값을 삭제 index(값) 리스트에서 특정 값의 인덱스를 구함 count(값) 리스트에서 특정 값의 개수를 구함 reverse() 리스트에서 값의 순서를 반대.. 2023. 10. 9.