[TIL] 파이썬 기초 문법 2

히끼·2024년 2월 20일

TIL

목록 보기
7/43

python 기초 문법 2

1. 튜플 (Tuples)

  • 순서가 있는 자료형 (sequence data type)
  • 불변형(immutable)으로 원소를 바꿀 수 없음 (리스트와의 차이점)
  • 딕셔너리 대신 튜플과 리스트의 조합으로 주로 사용함
# combination of list and dictionary
blackpink = [{'name': 'Jennie', 'age': 28}, {'name': 'Lisa', 'age': 26}]
# combination of list and tuple
blackpink = [('Jennie', 28), ('Lisa', 26)]

2. 집합 (Sets)

  • 중복된 요소가 없는 자료형 (no duplicate elements)
  • 교집합, 합집합, 차집합을 구할 수 있음
nums = [1, 2, 3, 10, 9, 8, 3, 2, 1]
num_set = set(nums) # {1, 2, 3, 8, 9, 10}

num_set1 = set([1, 2, 3, 4, 5])
num_set2 = set([1, 3, 5, 7, 9])

print(num_set1 & num_set2) # 교집합 {1, 3, 5}
print(num_set1 | num_set2) # 합집합 {1, 2, 3, 4, 5, 7, 9}
print(num_set1 - num_set2) # 차집합 {2, 4}

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() # function in main_func.py

6. 삼항연산자 if

num = 2
result = ('even' if num % 2 == 0 else 'odd')
print(result) # 'even'

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) # [2, 4, 6, 8, 10, 12, 14, 16, 18]

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}
]

# map()
result = map(lambda x: 'Adult' if x['age'] > 18 else 'Youth', tws)
print(list(result)) # ['Adult', 'Adult', 'Youth', 'Youth', 'Youth', 'Youth']

# filter() : 값이 True인 것만 가져오기
result = filter(lambda x: x['age'] > 18, tws)
print(list(result)) # [{'name': 'Shinyu', 'age': 20}, {'name': 'Dohoon', 'age': 19}]

9. 함수의 매개변수

def cal(a, b):
    return a + b * 2

print(cal(1, 2)) # 5
print(cal(b = 3, a = 1)) # 7

# 특정 인자에 default 값 주기
def cal2(a, b=1):
    return a + b * 2

print(cal2(2)) # 4
print(cal2(2,2)) # 6

# 여러 개의 인수를 하나의 매개변수로 받기 (개수는 무제한!)
def greeting(*args):
    for name in args:
        print(f'Hello {name}!')

greeting('Shinyu', 'Dohoon')

# 키워드 인수를 여러 개 받기
def member(**kwargs):
    print(kwargs)

member(name='Shinyu') # {'name': 'Shinyu'}
member(name='Dohoon', age='19') # {'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() # 살았다!

0개의 댓글