2022. 9. 20. 20:54ㆍ스파르타코딩클럽[AI트랙 3기]/파이썬 거북이반
*1교시
1.세상을 인식하는 방법으로 이해하기
사람들이랑, 커피라는 객체들이 있고 사람은 여러 행동을 할 수 있다.
2.프로그래밍은 객체지향, 절차지향이 있음.
우리가 가위바위보만든 것은 절차지향임.(위에서부터 순차적으로)
객체를 실재하지 않는 것이다. 코드로 나타낼 때 어떻게 해야할지 원칙들을 잘 보자
3.클래스 만들기,클래스에는 속성과 메소드 두가지가 있다(암기)
class Person:
name = “lee”
gender = “female”
age = 20
person1 = Person()
print(person1.name) #인스턴스의 속성값을 입력
인스턴스가 person1 실체화가 된 것(class는 틀)
이제 인스턴스를 추가하면
person2 = Person()
person2.name=“kwon”
person2.gender=“male”
person2.name=“20”
print(person2.name) #하면 내용이 바뀜
+)처음만들 때 무조건 실행되는 메소드 : init
class Person:
name = “lee”
gender = “female”
age = 20
def__init__(self):
print(“이닛 메소드 안입니다.”)
person1 = Person()
person2.name=“kwon”
person2.gender=“male”
print(person2.name)
하면 이닛메소드안입니다. 두 번 나옴.
------------------------------------------------------------
def__init__(self, name):
print(“이닛 메소드 안입니다.”)
name이라는 인자를 받아야하는데, 그럼 밑에
person1 = Person(“무언가1”)
person2 = Person(“무언가2”)
해줘야 정상 출력됨. self는 생략 가능하지만 뒤에 name이라는 인자를 필요로하기때문에 Person이라는 class의 괄호안에 인자를 넣어줘야함.
def__init__(self,anything):
print(“내용”)
self.name = anything #name뒤에 인자는 anything으로 같아야하고 밑에 self.name의 name은 밑에 print에서 불러주는 것과 같아야함.
person1 = Person(“무언가1”)
person2 = Person(“무언가2”)
print(person1.name)
print(person2.name)
속성을 부를 때는 괄호 필요없고, 메소드를 부를때는 괄호 넣기 > person.name / preson.walk()
class Person():
species = “homo”
def walk(self):
print(“walking”)
print(person1.speiece)
person1.walk() #여기서 walk라는 함수 자체에 print가있어서 굳이 안써줘도 출력됨.
*2교시
-메소드에는 무조건 인자가있어야함. self 가 컨벤션임.
class Person:
def talk(self):
print(“안녕하세요 저는” + self.name + “입니다.”)
def __init__(self,name , age , hobby ):
self.name = name
self.gae = age
self.hobby = hobby
x=Person(“k” , “20” , “피아노”)
x.talk() #talk 는 함수가 발동됨
인스턴스에서 입력하는 순서대로 출력됨.
def __init__(self, name, hobby, age):
self.name = name
self.gae = age
self.hobby = hobby
x=Person(“k”,“20”,“피아노”)
x.talk(hobby) > 20이 나옴.
-init은 처음 인스턴스만들 때 자동으로 돌아감.그래서 인잇안에 어떤 값을 프린트하라고 하면 인스턴스 개수만큼 그 내용이 프린트 되어 나옴.
실습)도전과제 : 속성을 함수로 바꿔주고 밑에 조건이 있다.
>문제
class Circle:
pi = 3.14
def __init__(self, radius):
self.radius = radius
self.area = radius * radius * self.pi
def getCircumference(self):
return self.radius * self.pi * 2
c = Circle(5)
print("반지름은 : ", c.radius)
print("넓이는 : ", c.area)
print("둘레는 : ", c.getCircumference())
# getArea라는 메소드를 클래스 안에서 만들고, 6번줄은 지워주세요
# 6번줄의 기능을 getArea라는 메소드에서 할수있게끔 로직을 만들어주시고
# 15번줄도 수정해서 getArea라는 메소
>내가 짠 코드
class Circle:
pi = 3.14
def __init__(self, radius):
self.radius = radius
def getArea(self):
return self.radius ** 2 *self.pi
def getCircumference(self):
return self.radius * self.pi * 2
c = Circle(5)
print("반지름은 : ", c.radius)
print("넓이는 : ", c.area)
print("둘레는 : ", c.getCircumference())'스파르타코딩클럽[AI트랙 3기] > 파이썬 거북이반' 카테고리의 다른 글
| [파이썬 거북이반] #4 class심화 (1) | 2022.09.22 |
|---|---|
| [파이썬 거북이반] #2 함수 (1) | 2022.09.20 |
| [파이썬 거북이반] #1 파이썬 기초 (1) | 2022.09.20 |