분류 전체보기
-
TIL.32 클래스의 속성과 메서드TIL 2020. 11. 9. 17:50
## 속성에는 클래스 속성과 인스턴스 속성으로 나눈다. ## 이전까지 배웠던 속성은 인스턴스 속성이었다. ## 클래스 속성 ## 클래스 속성은 클래스 아래에 바로 속성을 만들면 된다. # class 클래스이름: # 속성 = 값 # 가방에 물건을 넣는 동작으로 알아보자. class Person: bag = [] # 클래스 속성 bag def put_bag(self, stuff): self.bag.append(stuff) james = Person() james.put_bag('책') maria = Person() maria.put_bag('열쇠') print(james.bag) # ['책', '열쇠'] print(maria.bag) # ['책', '열쇠'] ## 예상되는 결과로는 "책" // "열쇠" 처럼..
-
34.6 심사문제: 게임 캐릭터 클래스 만들기코딩도장 심사문제모음 2020. 11. 8. 21:12
표준 입력으로 게임 캐릭터 능력치(체력, 마나, AP)가 입력됩니다. 다음 소스 코드에서 애니(Annie) 클래스를 작성하여 티버(tibbers) 스킬의 피해량이 출력되게 만드세요. 티버의 피해량은 AP * 0.65 + 400이며 AP(Ability Power, 주문력)는 마법 능력치를 뜻합니다. 사용한 코드 1. class 2. def 3. self 첫 접근 방법 클래스 이름/ 메서드 이름/ 매개변수 3개 를 이용하기만 하면 문제를 해결 할 수 있다. 풀이 아래와 같이 self, 매개변수를 이용하고 모든 매개변수를 그대로 속성으로 만들어준다. class Annie: def __init__ (self, health, mana, ability_power): self.health = health self.m..
-
34.5 연습문제: 게임 캐릭터 클래스 만들기코딩도장 심사문제모음 2020. 11. 8. 20:40
다음 소스 코드에서 클래스를 작성하여 게임 캐릭터의 능력치와 '베기'가 출력되게 만드세요. 풀이 사용한 클래스명 / 메서드 명 / 매개변수 3개 인 점으로 해결 가능하다. class Knight: def __init__(self, health, mana, armor): self.health = health self.mana = mana self.armor = armor def slash (self): print('베기') x = Knight(health=542.4, mana=210.3, armor=38) print(x.health, x.mana, x.armor) :: 542.4 210.3 38 x.slash() :: 베기
-
TIL. 31 클래스의 속성, 비공개 속성 사용하기TIL 2020. 11. 8. 17:45
## 클래스 속성 사용하기 ## 클래스에서 속성 만들기 ## 속성(attribute)를 만들때는 "__init__ 메서드" 를 사용하며, 안에서 self.속성에 값을 할당하면 된다. # class 클래스이름: # def __init__(self): # self.속성 = 값 class Person: def __init__(self): ## 속성을 정의한다는 뜻 self.hello = '안녕하세요.' def greeting(self): print(self.hello) james = Person() james.greeting() :: 안녕하세요. ## __init__ 메서드 ## __init__ 메서드는 james = Person()처럼 클래스에 ( )(괄호)를 붙여서 인스턴스를 만들 때 호출되는 특별한 메서..
-
TIL.30 클래스와 메서드 사용하기TIL 2020. 11. 7. 23:04
## 클래스, 매서드 사용하기 ## 클래스란 == 객체를 표현하기 위한 문법으로 예를 들어 게임 상에의 마법수, 궁수, 사제 등 직업별로 클래스를 만들어 표현 할 수 있다. # 프로그래밍에서의 클래스는 집, 자동차, 나무 우베 브라우저의 스크롤 바, 체크 박스, 버튼 등이 대표적이다. ## 집, 자동차, 스크롤 바, 체크박스 처럼 특정한 개념이나 모양으로 존재하는 것을 객체(object)라고 부른다. ## 프로그래밍의 객체를 만들때 사용하는 것이 클래스이다. ## 게임 케릭터로 예를 들어보자 ## 기사 케릭터를 클래스로 표현해보자. ## 기사 케릭터의 직업은 클래스 ## 해당 케릭터의 체력, 마나, 공격력 등의 데이터를 클레스의 속성(attribute) ## 이런 기사가 베고 찌르는 등의 기능을 메서드(..
-
33.6 심사문제: 카운트다운 함수 만들기코딩도장 심사문제모음 2020. 11. 6. 22:38
표준 입력으로 정수가 입력됩니다. 다음 소스 코드를 완성하여 함수 c를 호출할 때마다 숫자가 1씩 줄어들게 만드세요. 여기서는 함수를 클로저로 만들어야 합니다. 정답에 코드를 작성할 때는 def countdown(n):에 맞춰서 들여쓰기를 해주세요. 사용한 코드 1. nonlocal 2. def 3. return 첫 접근 방법 10을 입력할 경우 10(포함), 9, 8, ... 1 이 마지막이라는 것을 기준으로 범위만 정해주면 이전 연습문제와 같이 어려운 부분없이 문제 해결이 가능하다. 풀이 1. countdown의 지역 변수 count 를 만들고 n + 1로 입력된 n 값도 함께 출력되도록 만들어준다. def countdown(n): count = n + 1 2. down이라는 안쪽 함수를 하나 더 생..
-
33.5 연습문제: 호출 횟수를 세는 함수 만들기코딩도장 심사문제모음 2020. 11. 6. 22:27
다음 소스 코드를 완성하여 함수 c를 호출할 때마다 호출 횟수가 출력되게 만드세요. 여기서는 함수를 클로저로 만들어야 합니다. 풀이 1. 먼저 counter 를 클로저로 만들어주기 위해 counter 함수 안의 count 함수를 직접 함수를 호출하지 않고 리턴으로 count 값을 직접 반환 counter 함수에 c를 할당하였고 counter 에서 count를 반환하였기에 c에도 count가 들어가게된다. 2. nonlocal i 를 이용해 바깥쪽 함수의 지역 변수 i 를 i = i +1 로 변경해준다 함수가 실행될때마다 i 값은 누적된다. 3. 누적된 i 값이 즉 호출 횟수이므로 이를 반환하여 counter 에게로 궁극적으로는 c로 반환되도록 해준다. def counter(): i = 0 def cou..
-
TIL. 29 전역 변수, 지역변수, 클로저 알아보기TIL 2020. 11. 6. 21:56
## 클로저를 알기 위해서는 먼저, 함수의 사용 범위를 먼저 알아보자. ## 전역 함수와 지역 함수 ## 전역 변수 (global variable) == 위처럼 함수를 포함하여 스크립트 전체에서 접글 할 수 있는 변수를 전역 변수라 한다. # 특히, 전역 번수에 접근 할 수 있는 범위를 전역 범위 (global scope)라고 한다. x = 10 # 전역 변수 def foo(): print(x) # 전역 변수 출력 foo() print(x) # 전역 변수 출력 :: 10 ## foo 함수에 x라는 변수가 업지만, 전역 변수로 x가 있으므로 foo 함수에서도 x 변수를 사용할 수 있다. ## 지역 변수 (local variable) == 지역 변수 영역이 정해진 변수로 변수를 만든 함수 안에서만 접근이 가..