Python

파이썬 문법 기초

수수 아보카도 2022. 11. 21. 15:30

스파르타 코딩클럽에서 백엔드 Node.js 배우는 데 필요한 파이썬 강의. 1주차로 이루어진 아주 간단했다.

 

1. 튜플 (tuple)

리스트와 비슷하지만 불변인 자료형.

딕셔너리 대신 리스트와 튜플로 만들어 사용해야 할 때 쓰인다.

a = (1,2,3)
print(a[0])

a_dict = [('bob','24'),('john','29'),('smith','30')]

 

2. 집합 (set)

중복이 제거된다는 장점이 있다.

교집합(&), 합집합(|), 차집합(-)

a = [1,2,3,4,5,3,4,2,1,2,4,2,3,1,4,1,5,1]
a_set = set(a)
print(a_set)

 

3. f-string

변수로 더 직관적인 문자열을 만들 수 있다.

scores = [
    {'name':'영수','score':70},
    {'name':'영희','score':65},
    {'name':'기찬','score':75},
    {'name':'희수','score':23},
    {'name':'서경','score':99},
    {'name':'미주','score':100},
    {'name':'병태','score':32}    
]

for s in scores:
    name = s['name']
    score = str(s['score'])
    print(f'{name}은 {score}점입니다')

4. 예외처리: try - except

에러가 있어도 건너뛰기 가능.

people = [
    {'name': 'bob', 'age': 20},
    {'name': 'carry', 'age': 38},
    {'name': 'john', 'age': 7},
    {'name': 'smith', 'age': 17},
    {'name': 'ben', 'age': 27},
    {'name': 'bobby'},
    {'name': 'red', 'age': 32},
    {'name': 'queen', 'age': 25}
]

for person in people:
    try:
        if person['age'] > 20:
            print (person['name'])
    except:
        name = person['name']
        print(f'{name} - 에러입니다')

5. 여러개 파일에서 다른 파일 불러오기 - 내가 부족한 부분

main_test.py

from main_func import *

say_hi()

main_func.py

def say_hi():
	print('안녕!')

6. 한 줄로도 표현이 가능한 파이썬!

// if
num = 3
result = "짝수" if num%2 == 0 else "홀수"
print(f"{num}은 {result}입니다.")

//for
a_list  = [1, 3, 2, 5, 1, 2]
b_list = [a*2 for a in a_list]
print(b_list)

 

7. map()

리스트의 모든 원소를 조작한다. lambda x: 를 쓰는 것이 핵심!

people = [
    {'name': 'bob', 'age': 20},
    {'name': 'carry', 'age': 38},
    {'name': 'john', 'age': 7},
    {'name': 'smith', 'age': 17},
    {'name': 'ben', 'age': 27},
    {'name': 'bobby', 'age': 57},
    {'name': 'red', 'age': 32},
    {'name': 'queen', 'age': 25}
]

// 간단하게 표현
def check_adult(person):
    return '성인' if person['age'] > 20 else '청소년'
result = map(check_adult, people)
print(list(result))

// 더 간단하게 표현
result = map(lambda x: ('성인' if x['age'] > 20 else '청소년'), people)
print(list(result))

8. filter()

리스트의 모든 원소 중 특별한 것만 뽑을 수 있다.

result = filter(lambda x: x['age'] > 20, people)
print(list(result))

9. 함수 매개변수

 1) 입력값의 개수를 지정하지 않고 모두 받기 : *args

 2) 키워드 인수 여러 개 받기: **kwargs

def call_names(*args):
    for name in args:
        print(f'{name}야 밥먹어라~')
call_names('철수','영수','희재')

def get_kwargs(**kwargs):
    print(kwargs)
get_kwargs(name='bob')
get_kwargs(name='john', age='27')

10. 객체지향

물체에 관련 속성들을 넣어두고, 컨트롤할 수 있는 함수들을 붙여준다.

중앙에서는 함수만 불러다가 물체를 제어한다.

ex. 인스턴스 = 몬스터 한 마리

 

이렇게 끝나는건가? 조금 아쉽긴 하지만...

sql도 마저 들어야하고, 혼공스 함수랑 객체지향도 마저 공부해야 한다.

마지막까지 홧팅