내 잡다한 노트
[Python] 알아두면 좋을 문법 정리 본문
# 가변 인수
용도 ) 매개변수가 여럿인 함수를 짤 때 사용, 매개변수가 몇개가 필요한지 모를때
def funtion(*args):
print(args)
*를 붙이면 args라는 이름의 튜플이 되고 iterable해서 반복문도 사용할 수 있다.
고정인수와 가변인수를 함께 사용할 땐, 고정 매개변수를 먼저 지정해야한다.
# 언패킹
인수를 순서대로 넣을 때 리스트나 튜플을 사용하는 방법
x = [10 ,20, 30]
def print_numbers(a, b, c) 로 만들어짐.
print_numbers(*x) 를 하면 x의 요소들이 순서대로 함수에 들어가게 된다.
이때, 함수의 매개변수 개수와 리스트의 요소 개수는 같아야 한다.
딕셔너리를 언패킹할때는 ** 으로 써야한다. 이때, 함수의 매개변수 이름과 딕셔너리의 키 이름과 개수가 같아야한다.
키워드 인수))
용도))) 인수의 순서가 헷갈릴 때
키워드 인수는 함수 호출에서 매개변수의 이름을 명시적으로 지정하여 함수 또는 메서드에 전달되는 인수입니다.
함수를 호출할 때 사용되며 그러면 인수의 순서와 상관없이 그 매개변수로 들어가게 된다.
personal_info(name='홍길동', age=30) # 함수호출
def greet(name, message):
print(f"{message}, {name}!")
# calling the function with keyword arguments
greet(name="John", message="Hello")
키워드 인수를 사용하는 가변 인수 함수 ))
문법))
def 함수이름 (**매개변수):
예시))
def personal_info(**kwargs):
for kw, arg in kwargs.items():
print(kw, arg)
#personal_info(abc='a', key='dddd')
json_ff = [{'name': 'kyt', 'age': 30}, {'name': 'keet', 'age': 60}, {'name': 'kjjt', 'age': 55}]
for elem in json_ff:
personal_info(**elem)
def custom_print(*args, **kwargs):
print(args, kwargs)
print(*args, **kwargs)
custom_print(1, 2, 3, sep=': ', end='')
매개변수에 초깃값 넣기 ))
문법) def 함수이름(매개변수=값):
def ini (name, age, address='비공개'):
용도)))) 보통 주로 사용하는 값이 있지만 가끔 다른 값을 사용해야 할 때 활용한다.
초기값을 넣은 매개변수는 뒤쪽에 몰아서 써줘야 한다.
람다함수)) : 간단한 함수, 그래서 다른 함수의 인수로 넣을 때 주로 사용.
labmda 매개변수 : 리턴값
이대로 출력하면 함수 객체가 나오기 때문에 변수에 할당해주고 변수를 함수처럼 사용하면 된다.
pow_2 = lambda x : x ** 2
print(pow_2)
print(pow_2(5))
# map(function, iterable)
용도 ) iterable한 자료형의 값에 어떤 처리(함수, 형변환 등등)를 하고 싶을때
반환값은 map 객체
정의 : 두번째 인자로 들어온 자료형을 첫번째 인자로 들어온 함수에
하나씩 집어넣어서 함수를 수행한다.
# filter (function, iterable)
용도))) 반복 가능한 객체에서 특정 조건에 맞는 요소만 가져오고 싶을때
a = [44, 55, 66, 77, 23, 43, 1234, 57]
print(list(filter(lambda x : x % 11 == 0, a)))
lambda와 자주 같이 쓰인다.
# f-string
용도 )))) 문자열을 작성할 때 사용한다.
문자열 맨 앞에 f를 붙여주고, 중괄호 안에 직접 변수 이름이나 출력하고 싶은 것을 넣으면 된다.
month = [1, 2, 3, 4]
day = ['2일', '3일', '25일']
for i in month:
for j in day:
print(f"{i}월과 {j}은 내 친구들 생일이다.")
join()
용도 )))) 문자열을 연결할 때
my_list = ['apple', 'banana', 'orange']
separator = ', '
result = separator.join(my_list)
print(result)
>>> apple, banana, orange
with문
용도 )))) 자원을 획득하고 사용 후 반납해야 하는 경우에 사용한다.
문법 )))) with EXPRESSION as VARIABLE:
BLOCK
객체의 라이프사이클을 설계할 수 있다.
def __enter__(self), def __exit__(self) ---> 핸들러 이름
try, except, finally, else문
용도 )))) 예외처리를 하기 위해서
try문에 코딩을 하다가 오류가 발생하면 except 블록이 수행된다.
오류가 발생하지 않았다면 except 블록은 수행되지 않는다.
except는 특정 오류를 콕 집어서 할수도 있고 모든 오류에대해 처리할 수도있다
# finally는 예외 발생 여부에 상관없이 항상 수행된다.
보통 사용한 리소스를 close해야 할 때에 많이 사용한다.
ex))) f.close() 이러면 중간에 오류가 발생해도 무조건 실행된다.
# else는 오류가 발생하지 않았을때에 분기로 실행될 수 있다.
# pass는 특정 오류가 발생할때 그냥 통과시켜야 할 경우 사용.
# raise는 오류를 일부러 발생시킬 때 사용.
isinstance (인스턴스, 클래스) 함수
용도 )) 현재 인스턴스가 특정 클래스의 인스턴스인지 확인할 때 사용한다. 맞으면 True 틀리면 False를 반환.
언더스코어 _ , __
1 )))) _ 는 첫번째로 변수 값을 굳이 사용할 필요가 없을 때 사용한다.
values = [1, 2, 3, 4]
a, b, _, _ = values
2 )))) __이름__
내장된 특수한 함수와 변수를 나타낸다.
예를 들어 생성자인 __init__이나 연산자 오버로드로 쓰이는 __add__
3 ))) _함수
def _privateFunc():
함수 이름 왼쪽에 _를 붙이면 다른 파일을 임포트 할 때 _를 붙인 함수는 가져오지 않는다.
private의미로 사용한다. 파이썬은 진정한 private를 지원하지 않아서 임포트문에서는 누락이 되지만
직접 가져다쓰거나 호출을 할 때는 사용이 가능하다.
'Language > Python' 카테고리의 다른 글
numpy 배열 연산, 접근법 (0) | 2023.04.04 |
---|---|
(numpy)배열 생성, Shape (0) | 2023.04.04 |
파이썬 자리수 조절(소수점, 올림, 반올림) (0) | 2022.05.15 |
파이썬 print로 디버깅을 쉽게 하는 법 (0) | 2022.03.14 |
파이썬 Counter (0) | 2022.03.14 |