하루 하루
파이썬 주요 정리 본문
해당 내용은 위의 강의를 바탕으로 내용을 정리한 게시물입니다.
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()로 처리할 수 있습니다.
'IT > PLUS' 카테고리의 다른 글
해시 - 프로그래머스 완주하지 못한 선수 (0) | 2020.05.20 |
---|---|
온라인 코딩 가능 사이트 (0) | 2020.05.14 |
BFS/ DFS - 백준 2178 미로탐색 C++ (0) | 2020.03.26 |
BFS/ DFS - 백준 11724 연결 요소의 개수 C++ (0) | 2020.03.26 |
BFS/ DFS - 백준 13023 ABCDE C++ (0) | 2020.03.22 |