하루 하루

파이썬 주요 정리 본문

IT/PLUS

파이썬 주요 정리

san_deul 2020. 4. 24. 16:48

 

해당 내용은 위의 강의를 바탕으로 내용을 정리한 게시물입니다.

1. dictionary

ages = {'Tod' : 35, 'Jane' = 23, 'Paul' : 62}

ages['Sunny'] = 5   # 값 추가  {'Tod' : 35, 'Jane' : 23, 'Paul' : 62, 'Sunny' : 5}

ages['Sunny'] = 10 # 값 수정 {'Tod' : 35, 'Jane' : 23, 'Paul' : 62, 'Sunny' : 10}

del ( ages ['Tod'] ) # 값 삭제 {'Jane' : 23, 'Paul' : 62, 'Sunny' : 10}

ages.pop('Sunny')  # 값 삭제 {'Jane' : 23, 'Paul' : 62}

dict.clear()            # 값 모두 삭제 

 

for key in ages.keys():   # keys() 생략 가능

    print(key)               #  Jane, Paul 

 

for value in ages.values():

    print(value)             # 23, 62

 

for key, value in ages.items():

    print('{}의 나이는 {} 입니다'.format(key, value))

    # Jane의 나이는 23 입니다. 

    # Paul의 나이는 62 입니다. 

 

'Sunny' in ages.keys # 딕셔너리 타입에 키가 았는지 확인 시 in 사용 


 

dict1 = {1 : 100, 2 : 200}

dict2 = {1 : 1000, 3 : 300}

dict1.update(dict2)        #{1 : 1000, 2 : 200 : 3 : 300}

 


students = ["태연", "진우", "정현", "하늘", "성진"]

{"{}".format(number):name for number, name in enumerate(students)}

    # {'2': '정현', '0': '태연', '1': '진우', '4': '성진', '3': '하늘'}

 

students = ["태연", "진우", "정현", "하늘", "성진"]

scores = [85, 92, 78, 90, 100]

result = {x : y for x, y in zip(students, scores)}

    # {'성진': 100, '진우': 92, '하늘': 90, '태연': 85, '정현': 78}

 

2. 튜플 

 

a, b = 1, 2

c = a, b      #c = (1, 2) packing

d, e = c     # d = 2, e = 1 unpacking

d,e = e,d    # d= 1 , e =2

 

3. List 

list = [5,4,6,7]

print( list.index(7) )   # 3

list.insert( 1 , 10 ) # list = [5, 10, 4, 6, 7]

list.sort() # list = [4, 5, 6, 7, 10]

list.reverse() # list = [10, 7, 6, 5, 4]

 

list = [1, 2, 3, 4, 5, 6, 7, 8, 9]

list[2:8:2]          # [3, 5, 7]이 출력됩니다.

list1 = list(range(10))      # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

del list[:5]                 # 처음부터 5번째까지 삭제          [6, 7, 8, 9]

list[1:3] = [77, 88]         # 1번째부터 3번째까지의 값을 수정   [6, 77, 88, 9]

list[1:3] = [77, 88, 99]     # 더 많은 개수로 변환              [6, 77, 88, 99, 9]

list[1:4] = [8]              # 더 적은 개수로 변환              [6, 8, 9]


"10:35:27"

list = str.split(":")             #문자열을 ":"기준으로 리스트화

new_str = ":".join(list)          #리스트를 ":"기준으로 문자열화

 


areas1 = [ i*i for i in range(1,11) ]                          # [ 계산식 for ]

areas2 = [ i*i for i in range(1,11) if i % 2 == 0]             # [ 계산식 for문 조건문 ]

areas3 = [ ( x, y ) for x in range(15) for y in range(15) ]    # [ 계산식 for for ]

4. Try Exceptiion

예외의 이름을 모르는 경우에는 Exception as를 통해 해결

- 예외 처리 

try:

    # 에러가 발생할 가능성이 있는 코드

except Exception as ex:     # 에러 종류

    print('에러가 발생 했습니다', ex)  # ex는 발생한 에러의 이름을 받아오는 변수

 

-  사용자 예외 처리 

class BadUserName(Exception):     

      pass       # 이름에 대한 예외처리

try:

    sign_up( )

except BadUserName:

    print( "이름으로 사용할 수 없는 입력" )

 

5. TIME

 

Import datetime

addtime = datetime.timedelta(days = 10)

datetime.datetime.now() + addtime    # 10일 후

datetime.datetime.now() - addtime    # 10일 전

thedate = datetime.datetime.now().replace(hour = 10, minute=0, second = 0)  # 10시 정각

 

6. 객체 지향 

인스턴스가 특정 클래스의 인스턴스인지 알아보는 방법으로 isinstance를 이용할 수 있습니다.

list1 = list("hello")

isinstance(list1, list)      #True


 

class Human( ):

    '''인간'''

    def __init__( self, name, weight ):

        '''초기화 함수'''

        self.name = name

        self.weight = weight

 

    def __str__( self )

        '''문자열화 함수'''

        return "{} ( 몸무게 {}kg )".format( self.name, self.weight )

 

person = Human( "사람", 60.5 )     # 초기화 함수 사용

print( person )                    # 문자열화 함수 사용


오버라이드

 

class Animal( ):

    def greet( self ):

        print( "인사한다" )

 

class Human( Animal ):

    def greet( self ):

        print( "손을 흔든다" )

 

class Dog( Animal ):

    def greet( self ):

        print( "꼬리를 흔든다" )


class Animal( ):

    def __init__( self, name ):

        self.name = name

 

class Human( Animal ):

    def __init__( self, name, hand ):

        super().__init__( name )        # 부모클래스의 __init__ 메소드 호출

        self.hand = hand

 

person = Human( "사람", "오른손" )

위의 예처럼 Human클래스의 __init__에서 name super()로 처리할 수 있습니다.

Comments