알쏭달쏭 공부한거 쓰기

유튜브 -파이썬 , class 본문

파이썬 -23여름학기(ㄱㅎㅈ)

유튜브 -파이썬 , class

elec_cy 2023. 7. 6. 13:02

#딕셔너리

딕셔너리=불변의 key, 변화가능한  값

 

리스트와 튜플과 달리 순서가 없다.

 

딕셔너리={key:value, key:value}

 

a={}: 빈 딕셔너리

동일한 키 두개 가질 수 없다. 

like 사물함

 

딕셔너리 추가

딕셔너리명[key]=value

 

삭제 

del딕셔너리명[key]

값을 가지고 올때

1)딕셔너리명[key]

2)딕셔너리명.get(key)> 조건문으로 유용하게 쓸 수 있다.

둘의 차이는 key가 없을때가 다르다.

 

딕셔너리명. key 만 가져오기

딕셔너리명.keys()>>dict_keys(['a','b','c'])

(어차피 키들은 다 다른 값을 가지고 있음)

 

>이걸 list로 보고 싶다?>> list(딕셔너리명.keys())

 

값만!

딕셔너리명.values()>list(딕셔너리명.values())

 

딕셔너리 키와 값은 for 문이랑 같이 이용한다.

items()> 키랑 값 같이 받아 온다.

for key, value in 딕셔너리명.items():

    print(key, value)

 

in을 이용해서 key를 찾을 수 있다. 

def print_kwargs(**kwargs): #**2개이면 dict형식으로 인자를 받는다.
	for k in kwargs.keys():
    	if (k=='name'):
        	print('당신의 이름은:',kwargs[k])
print(print_kwargs(name='조슈아',b='2')) #입력 매개변수의 변수명은 key로 값은 값으로 dict에 저장

Immutable-변할 수 없는 자료형

정수, 실수, 문자열, 튜플>  

Mutable-변할 수 있는 자료형

리스트,딕셔너리, 집합

 

a=1
def vartest(a):
	a+=1
vartest(a)
print(a) 
#1

b=[1,2,3]
def vartest2(b):
	b=b.append(4)
    
 vartest2(b)
 print(b)
 #[1,2,3,4]

1)정수

전역변수 a와 지역 변수 a는 다르다 

함수안에 들어가서 지역변수가 a+=1로 a의 값이 a=2로 바뀌면 정수는 immutable 하므로가르키는 주소가 2로 달라진다.

함수가 끝나고 전역변수 a를 출력해도 전역변수 a는 1을 가르키는 주소를 가짐으로 1이  출력된다.

2)리스트

전역변수 b와 지역변수 b는 다르다

 전역변수b를 선언하면 리스트가 만들어지고 이 주소를 가르킨다. 전역변수b가 이 리스트를 가리키는 주소를 지역변수 b에게 전달하게 된다. 지역변수b와 전역변수b는 동일한 주소를 가지게 된다. 함수 내에서 append를 하게 되면 지역변수 b의 주소에 있는 리스트에 추가하고 함수를 나가 전역변수b를 출력하면

동일한 주소를 가지고 있는 전역변수b는 4가 포함된 리스트를 출력함을 알 수 있다.

 

#클래스>객체 프로그램밍하기

클래스- 반복되는 변수&메서드(함수)를 미리 정해놓은 틀(설계도)<함수랑 변수가 똑같은 구조로 여러번 쓰기엔 불편하니 설계도를 만들자

 

클래스는 왜 하냐7

class설계도로 만든 결과물이 찍어져서 변수에 들어가게 된다 .

class=과자틀

객체-과자

#대화형
>>> class FourCal:
...     pass
...
>>> a=FourCal()

>>> print(a)
<__main__.FourCal object at 0x0000019147BA9250>
#FourCal이라는 클래스로 만든 객체이다.

 

class FourCal:
    def __init__(self, first,second):
        #특별한 기능이 있는 함수>처음 만들때 FourCal이라는 class로 결과를 만들때__inti__ 무조건 수행
        self.first=first
        self.second=second
    def setdata(self,first,second):
        self.first=first
        self.second=second
    #self 클래스 안에 있는 함수=메소드>   
    def add(self):
        result=self.first+self.second
        return result
        
a=FourCal(1,2)
a.setdata(1,2) #a에 있는 함수를 쓰겠다. a가 self로 들어간다. 찍어낸 객체마다 함수를 가지는것
print(a.first)#1
print(a.second)#2
print(a.add())#3

1)self의 의미

2)__init__의미

 

클래스의 상속-기존class활용하자

이미 만들어놓은 설계도class(부모 class)를 이용해서 추가적인 새class(자식 class)를 만들고 싶을 때

상속을 받으면 이미 부모에서 __init__이 있으므로 안써도 된다.

class FourCal:
    def __init__(self, first,second):
        #특별한 기능이 있는 함수>처음 만들때 FourCal이라는 class로 결과를 만들때__inti__ 무조건 수행
        self.first=first
        self.second=second
    def setdata(self,first,second):
        self.first=first
        self.second=second
    #self 클래스 안에 있는 함수=메소드>   
    def add(self):
        result=self.first+self.second
        return result
    def div(self):
    	result=self.first/self.seond
        return result
            
            
#괄호안에 부모클래스를 넣는다. 이 클래스를 고대로 써서 자식 클래스 쓰는것
class MoreFourCal(FourCal):
    #부모에서 쓰던거 그대로 쓸 수 있다.
	#부모에게 없는거 추가
    def pow(self): 
        result=self.first**self.second
        return result
    
    #함수 변형해서 쓸 수 있다.=메서드 오버라이딩
    #부모 함수의 것을 변형하는데 자식 클래스에 정의댄걸로 이용
    def div(self):
    if self.second==0:
        return 0
    else:
    	return self.first/self.seond 
a=MoreFourCal(4,2)
print(a.add())    
a=MoreFourCal(4,2)
print(a.add())	
#6
print(a.pow())
#16

클래스 변수와 객체 변수

클래스 변수=클래스에 공통적으로 적용되는 변수로 클래스 바로 밑에 작성

객체변수=객체마다 다를 때는 객체변수를 이용한다

 

#객체와 절차 차이

 

 

 

'파이썬 -23여름학기(ㄱㅎㅈ)' 카테고리의 다른 글

22 파이썬 기말 족보  (0) 2023.07.06
7/6 수업 내용  (0) 2023.07.06
23 여름 중간 풀이  (0) 2023.07.05
7/5 파이썬 수업-딕셔너리,객체와 클래스  (0) 2023.07.05
중간 대비-22 파이썬 족보  (0) 2023.07.04