python 기초 문법 2
1. 튜플 (Tuples)
- 순서가 있는 자료형 (sequence data type)
- 불변형(immutable)으로 원소를 바꿀 수 없음 (리스트와의 차이점)
- 딕셔너리 대신 튜플과 리스트의 조합으로 주로 사용함
blackpink = [{'name': 'Jennie', 'age': 28}, {'name': 'Lisa', 'age': 26}]
blackpink = [('Jennie', 28), ('Lisa', 26)]
2. 집합 (Sets)
- 중복된 요소가 없는 자료형 (no duplicate elements)
- 교집합, 합집합, 차집합을 구할 수 있음
nums = [1, 2, 3, 10, 9, 8, 3, 2, 1]
num_set = set(nums)
num_set1 = set([1, 2, 3, 4, 5])
num_set2 = set([1, 3, 5, 7, 9])
print(num_set1 & num_set2)
print(num_set1 | num_set2)
print(num_set1 - num_set2)
3. f-string
tws = [
{'name':'Shinyu','age':20},
{'name':'Dohoon','age':19},
{'name':'Youngjae','age':18},
{'name':'Hanjin','age':18},
{'name':'Jihoon','age':17},
{'name':'Kyungmin','age':16}
]
for t in tws:
name = t['name']
age = t['age']
print(f'{name} is {age} years old.')
4. 예외처리 (try except)
tws = [
{'name':'Shinyu','age':20},
{'name':'Dohoon','age':19},
{'name':'Youngjae'},
{'name':'Hanjin','age':18},
{'name':'Jihoon','age':17},
{'name':'Kyungmin','age':16}
]
for t in tws:
try:
print(t['name'], t['age'])
except:
print(t['name'], '[age error]')
5. 파일 불러오기
from main_func import *
greeting()
6. 삼항연산자 if문
num = 2
result = ('even' if num % 2 == 0 else 'odd')
print(result)
7. for문을 한 줄로 쓰기
num_list = [1,2,3,4,5,6,7,8,9]
new_num_list = [num * 2 for num in num_list]
print(new_num_list)
8. map, lambda, filter
tws = [
{'name':'Shinyu','age':20},
{'name':'Dohoon','age':19},
{'name':'Youngjae','age':18},
{'name':'Hanjin','age':18},
{'name':'Jihoon','age':17},
{'name':'Kyungmin','age':16}
]
result = map(lambda x: 'Adult' if x['age'] > 18 else 'Youth', tws)
print(list(result))
result = filter(lambda x: x['age'] > 18, tws)
print(list(result))
9. 함수의 매개변수
def cal(a, b):
return a + b * 2
print(cal(1, 2))
print(cal(b = 3, a = 1))
def cal2(a, b=1):
return a + b * 2
print(cal2(2))
print(cal2(2,2))
def greeting(*args):
for name in args:
print(f'Hello {name}!')
greeting('Shinyu', 'Dohoon')
def member(**kwargs):
print(kwargs)
member(name='Shinyu')
member(name='Dohoon', age='19')
10. 클래스 (Class)
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:
print('살았다!')
else:
print('죽었다')
m1 = Monster()
m1.damage(120)
m2 = Monster()
m2.damage(90)
m1.status_check()
m2.status_check()