01. 튜플, 집합
튜플
a = ('사과', '감', '배')
print(a[1]) # 감
a[1] = '수박' # Error
- 리스트와 같지만 불변형이다. (값을 넣거나 변경할 수 없음)
집합
a = [1,2,3,4,3,2,1,5,7,4]
b = [1,2,8]
print(set(a)) # [1, 2, 3, 4, 5, 7]
print(set(a) & set(b)) # [1, 2]
print(set(a) | set(b)) # [1, 2, 3, 4, 5, 7, 8]
print(set(a) - set(b)) # [3, 4, 5, 7]
- set() : 중복을 제거해준다.
- & : 교집합
- | : 합집합
- - : 차집합
02. f-string
score = [
{'name':'철수', 'score':70},
{'name':'영희', 'score':65},
{'name':'기찬', 'score':75},
{'name':'영수', 'score':40},
{'name':'병태', 'score':100}
]
for s in scores:
name = s['name']
score = str(s['score'])
print(name + '의 점수는' + score + '점 입니다.')
print(f'{name}의 점수는 {score}점 입니다.') # f-string
# 철수의 점수는 70점 입니다.
# 영희의 점수는 65점 입니다.
# 기찬의 점수는 75점 입니다.
# 영수의 점수는 40점 입니다.
# 병태의 점수는 100점 입니다.
- f-string : 앞에 f를 붙이고 중괄호로 변수를 넣어주면 된다.
03. 예외처리
people = [
{'name':'bob', 'age':27},
{'name':'john', 'age':30},
{'name':'carry'},
{'name':'smith', 'age':20},
{'name':'ben', 'age':40}
]
for person in people:
try:
if person['age'] > 20:
print(person['name'])
except:
print(person['name'], '에러입니다')
# bob
# john
# carry, 에러입니다
# ben
04. 파일 불러오기
from 파일명 import *
- 파일명에 있는 모든 함수들을 가져와서 쓸 수 있음
- * 대신 함수 명을 써주면 그 함수만 가져올 수 있음
05. 한줄의 마법
예시 1)
num = 3
if num % 2 == 0:
result = '짝수'
else:
result = '홀수'
print(f'{num}은 {result}입니다') # 3은 홀수입니다
result = '짝수' if num % 2 == 0 else '홀수'
예시 2)
a_list = [1,3,2,5,1,2]
b_list = []
for a in a_list:
b_list.append(a*2)
print(b_list) # [2, 6, 4, 10, 2, 4]
b_list = [a*2 for a in a_list]
06. map, filter, lamda식
map
people = [
{'name':'bob', 'age':27},
{'name':'john', 'age':30},
{'name':'carry', 'age':19},
{'name':'smith', 'age':20},
{'name':'ben', 'age':40}
]
def check_adult(person):
return '성인' if preson['age'] > 20 else '청소년'
print(list(map(check_adult, people)))
# ['성인', '성인', '청소년', '청소년', '성인']
- map(n,m) : m을 돌면서 값들을 n에 넣어준다
print(list(map(lambda person: ('성인' if preson['age'] > 20 else '청소년'), people)))
- lambda식을 이용하여 한줄 식으로 변경할 수 있다
filter
print(list(filter(lambda x: x['age'] > 20, people)))
# [{'name':'bob', 'age':27}, {'name':'john', 'age':30}, {'name':'ben', 'age':40}]
07. 함수 심화
def cal(a, b=2):
return a+2*b
print(cal(1)) # 5
print(cal(1,3)) # 7
- 함수에 값을 넣어 놓으면 아무 값도 안주었을 시 고정 값이 나오고 값을 주면 변경된 값이 나온다
- *args 를 넣으면 값의 개수를 지정하지 않고 모두 받을 수있다
- **kwargs 변수명을 지정해서 넣어줄 수 있다.
08. 클래스
class Monster():
hp = 100
alive = True
def damage(self, attack):
self.hp = self.hp - attack
if self.hp < 0:
self.alive = False
def status_check(self):
if self.alive = True:
print('살았다')
else:
print('죽었다')
m1 = Monster()
m1.damage(150)
m1.status_check() # 죽었다
m2 = Monster()
m2.damage(30)
m2.status_check() # 살았다
- 클래스는 과자 틀과 비슷하다. 클래스(class)란 똑같은 무언가를 계속 만들어 낼 수 있는 설계 도면(과자 틀), 객체(object)란 클래스로 만든 피조물(과자 틀로 찍어 낸 과자)을 뜻한다.
- 클래스로 만든 객체에는 중요한 특징이 있다. 바로 객체마다 고유한 성격을 가진다는 것이다. 과자 틀로 만든 과자에 구멍을 뚫거나 조금 베어 먹더라도 다른 과자에는 아무런 영향이 없는 것과 마찬가지로 동일한 클래스로 만든 객체들은 서로 전혀 영향을 주지 않는다.
'코딩 테스트 (Python) > 문법' 카테고리의 다른 글
[문법] 해시테이블 개념 및 구현(Python) (0) | 2024.01.05 |
---|---|
[문법] 문법 노트 (Python) (0) | 2024.01.04 |
[문법] 파이썬 기초 문법 (0) | 2024.01.04 |
[문법] 자료구조 개념 및 구현(Python) (0) | 2024.01.04 |
[문법] 알고리즘 (0) | 2024.01.03 |