반응형
# 집합(Set) 자료형 (순서X, 중복X)
# 집합(Set) 자료형 (순서X, 중복X)
# 선언
a = set()
b = set([1, 2, 3, 4])
c = set([1, 4, 5, 5])
d = set([1, 2, 'pen', 'seoul', 'air'])
print('a : ', type(a), a)
print('b : ', type(b), b)
print('c : ', type(c), c)
print('d : ', type(d), d)
# 튜플 변환
t = tuple(b)
print('t : ', type(t), t)
print('t : ', t[0], t[1:3])
#리스트 변환
l = list(c)
print('l : ', type(l), l)
print('l : ', l[0], l[1:3])
# 집합 자료형 활용
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
print('s1 & s2 : ', s1 & s2)
print('s1.intersection(s2):', s1.intersection(s2) )
print('s1 | s2 : ' ,s1 | s2);
print('s1.union(s2) : ' ,s1.union(s2))
print('s1 - s2 : ', s1 - s2)
print('s1.difference(s2) : ', s1.difference(s2))
# 추가 & 제거
s1 = set([1,2,3,4])
s1.add(5)
print('s1 : ', s1)
s1.remove(2)
print('s1: ', s1)
1. 클래스
파이썬도 자바와 비슷하네? 생성자를 만들어줘야 한다.
1. 클래스 정의
1) 클래스 변수
- 직접 사용 가능, 객체보다 먼저 생성
2) 인스턴스 변수
- 객체마다 별도로 존재, 인스턴스 생성 후 사용
- 예) self.speed : 현재 인스턴스의 speed 변수
speed : 함수의 파라미터로 넘어 온 speed 변수
- 해당 인스턴스가 가지는 값과 함수의 인자 값을 구분함
3) self
- 인스턴스(instance) 자기 자신을 의미함
- init 메서드
class Car:
#객체를 초기화하는 특별한 메소드
#속도, 색상을 받아서 객체 안의 변수에 저장함
def __init__(self, speed, color):
self.speed = speed
self.color = color
myCar = Car(0,"white")
print(myCar.speed)
print(myCar.color)
새로 생성된 Car의 객체는 myCar다.
class Car:
#객체를 초기화하는 특별한 메소드
#속도, 색상을 받아서 객체 안의 변수에 저장함
def __init__(self, speed, color):
self.speed = speed
self.color = color
def drive(self): #메소드의 첫번째 인자는 항상 self
self.speed=60
print("주행중입니다.")
def stop(self):
self.speed=0
print("정지했습니다")
myCar = Car(0,"white")
print(myCar.speed)
print(myCar.color)
myCar.drive()
print(myCar.speed)
myCar.stop()
print(myCar.speed)
yourCar = Car(60, "green")
earthCar = Car(70, "silver")
moonCar = Car(30, "red")
2. 거북이 객체 생성
import turtle
from turtle import * #tutle 모듈에서 모든것을 불러옴
t = Turtle() #객체생성
t.forward(100)
t.left(90)
t.forward(200)
turtle.exitonclick()
3. 인간 객체 생성
class Human:
def __init__(self):
self.age = 0
def old(self):
self.age += 1
# 사람 인스턴스 생성
human1 = Human()
human2 = Human()
for i in range(10): #10세
human1.old()
for i in range(20): #20세
human2.old()
# 각 사람의 나이 출력
print(human1.age)
print(human2.age)
4. 학생 객체 생성
class Student:
def __init__(self, id, name, age, gender, department):
self.id = id
self.name = name
self.age = age
self.gender = gender
self.department = department
def show(self):
print("===학생 정보===")
print(f"학번 : {self.id}")
print(f"이름 : {self.name}")
print(f"나이 : {self.age}")
print(f"성별 : {self.gender}")
print(f"학과 : {self.department}")
def add_age(self, offset):
self.age += offset
student1 = Student("20230001", "이순신", 20, "남성", "컴공")
student2 = Student("20210002", "신사임당", 30, "여성", "산디")
student3 = Student("20210003", "참무식", 40, "중성", "영교")
student1.show()
student2.show()
student3.show()
student1.add_age(1)
print(student1.age)
5. 고객 객체 생성
class Client:
client_cnt = 0
def __init__(self, id, name, age, gender, point):
self.id = id
self.name = name
self.age = age
self.gender = gender
self.point = point
Client.client_cnt += 1
def show(self):
print("===고객 정보===")
print(f"고객 번호 : {self.id}")
print(f"이름 : {self.name}")
print(f"나이 : {self.age}")
print(f"성별 : {self.gender}")
print(f"고객 점수 : {self.point}")
print(f"현재 총 고객 수 : {Client.client_cnt}")
def __del__(self):
Client.client_cnt -= 1
client1 = Client(1,"순신", 20, "남성", 20000)
client2 = Client(2,"무식", 40, "남성", 560000)
client3 = Client(3,"상성", 30, "여성", 510400)
client1.show()
client2.show()
client3.show()
print(f"현재 총 고객 수 : {Client.client_cnt}")
반응형
'Python' 카테고리의 다른 글
파이썬 GUI, 넘파이 연습 (1) | 2023.04.19 |
---|---|
Python 클래스, 객체, GUI (0) | 2023.04.18 |
파이썬 statistics 모듈 활용, set, 가위바위보 게임 프로그램 (1) | 2023.04.11 |
Python matplotlib이란 무엇인가? (3) | 2023.04.10 |
파이썬 딕셔너리 연습 (0) | 2023.04.04 |