반응형
🤨 함수의 기본 구조
함수는 코드의 집합입니다.
def 함수 이름(매개변수):
수행할 문장1
수행할 문장2
...
def add(a, b): # a, b는 매개변수
return a + b
add(1, 2) # 1, 2는 인수
- 매개변수 : 함수에 입력된 전달된 값을 받는 변수
- 인수 : 함수를 호출할 때 전달하는 입력값
인수의 형식
- 위치 인수(positional argument) : 함수에 넣는 인수의 위치가 정해져 있는 방식입니다. 인수가 여러 개인 리스트 앞에
*를 붙이면 언패킹(unpacking)이 되어서 말 그대로 리스트나 튜플의 포장을 푼다는 뜻입니다. 단, 매개 변수의 개수와 리스트의 요소 개수가 같아야 합니다. - 위치 가변 인수 : 가변 인수 (variable argument)는 임의 개수의 인수를 받을 수 있습니다. 매개변수 앞에
*기호를 붙이면 됩니다. 매개변수명은 원하는 이름으로 정해도 되지만 보통 인수를 뜻하는 args를 사용합니다.
def 함수명(*매개변수):
코드
- 키워드 인수 : 키워드와 함께 인수를 넣으면, 순서와 상관없이 키워드에 맞게 인수가 입력됩니다.
- 키워드 가변 인수 : 키워드 인수를 사용하면서 동시에 가변 인수 함수를 만들 수 있습니다. 함수를 만드는 방법은 가변 인수 함수를 만드는 것과 동일하며 매개변수명(원하는 것도 가능)에 보통 키워드 인수라는 의미의 kwargs를 사용합니다.
def 함수명(**매개변수):
코드
def cat_info(**kwargs):
for kword, arg in kwargs.items(): # 딕셔너리 쌍을 얻는 items() 함수
print(kword, ':', arg)
cat_info(name='고양이')
🙂 리스트 함수
min(),max(): 말 그대로 리스트에서 최댓값과 최솟값을 구하는 함수
아스키코드
문자열만 있을 때 min(), max() 이 함수들을 사용하면 최솟값과 최댓값이 오류가 나지 않고 출력이 됩니다. 문자열을 비교하는 기준인 아스키코드(ASCII)가 있기 때문입니다.
아스키코드 ➔ 문자열로 변화하는 함수는 chr()이고, 문자열 ➔ 아스키코드로 변환하는 함수는 ord()입니다. 아스키코드는 소문자, 대문자, 자음, 자음+모음을 모두 구분합니다.

enumerate(): 파이썬만의 독특한 함수로 리스트의 원소에 순서값을 부여하는 함수이며 for문과 함께 쓰일 수 있습니다.zip(): 여러 개의 순회 가능한(iterable) 객체를 인자로 받고, 각 객체가 담고 있는 원소를 순차적으로 접근할 수 있는 반복자(iterator)를 반환하는 함수.append(): 리스트의 맨 마지막에 요소를 추가하는 함수.sort(): 리스트의 요소를 순서대로 정렬해 주는 함수
🙃 딕셔너리 함수
key-value 추가하기
setdefault(): 이미 해당 key가 있을 때는 그 key의 value를 반환하고 key가 없을 때는 딕셔너리에key:value를 저장하고 value를 반환
딕셔너리.setdefault(key, value)
update(): 특정 key-value 조합을 삽입하고 이미 존재하는 key에 value값 수정이 가능
딕셔너리.update(iterable)
key-value 삭제하기
pop(): 리스트에서 마지막 요소를 출력하고 그 이후에 해당 마지막 요소를 삭제, 딕셔너리에서pop()은 key를 필수로 넣어주어야 하기 때문에 리스트에서 사용하는 것과 차이가 있음popitem(): 리스트에서pop()처럼 딕셔너리에서 특정 key를 지정하지 않아도 마지막 value만 출력
딕셔너리 생성
fromkeys(): 리스트나 튜플을 넣으면 자동으로 딕셔너리를 만들 수 있는 함수, key는 해당 리스트가 들어가고 value는None이 자동으로 들어감
dict.fromkeys(리스트 또는 튜플)
dict.fromkeys(리스트 또는 튜플, 'age') # value를 넣어주려면 key 넣고 순서대로 추가 가능
😲 컴프리헨션
리스트 컴프리헨션
# 반복문
list_for = []
for i in range(0, 11, 2):
list_for.append(i)
print(list_for)
# 리스트 컴프리헨션
[x for x in range(0, 11, 2)]
# 반복문 + 조건문
# 반복문 컴프리헨션 뒤에 바로 이어서 조건문 추가 가능
[x for x in range(0, 11, 2) "조건문"]
중복 표현과 컴프리헨션
# for문 중복
a = [1, 2, 3]
b = [a, b, c]
[[x, y] for x in a for y in b]
# if문 중복
# 2와 3의 공배수
[x for x in range(1, 30) if x % 2 == 0 if x % 3 == 0]
셋 컴프리헨션
셋(set) 컴프리헨션은 리스트를 만들 때 쓰는 대괄호 [ ] 대신에 중괄호 { }를 씁니다.
# 셋 컴프리헨션
{x for x in range(0, 11, 2)}
딕셔너리 컴프리헨션
중괄호를 이용하면서 동시에 key:value의 형태로 내용 넣으면 딕셔너리를 만들 수 있습니다.
friend_num = [5, 13, 4, 21]
friend_name = ['hj', 'hg', 'dy', 'sj']
{k:v for k, v in zip(friend_num, friend_name)} # zip() 함수를 활용하여 키와 밸류를 지정
{k:v for k, v in zip(friend_num, friend_name) if k < 10} # if문도 함께 쓸 수 있음
f-string
문자열을 시작하는 따옴표 바로 앞에 f를 붙이고 값을 넣고 싶은 곳에 {} 구멍을 뚫고, 그 안에 변수 이름을 바로 넣어주면 됩니다. .format()처럼 뒤에 변수를 또 써줄 필요가 없습니다.
그리고 중괄호{}안에서 간단한 연산도 가능하다는 큰 장점이 있습니다.
또 한 가지 중괄호 안에 변수이름= 처럼 등호(=)를 붙여주면 print문을 간결하게 쓸 수 있습니다.
my_number1 = 10
print(f"my_number1 = {my_number1}")
# f를 활용하면!
print(f"{my_number1 = }")
#값은 값이 나오는걸 알 수 있음
my_number1 = 10
🚨 오늘의 이슈
enumerate()사용
python_score = [50, 85, 93, 79]
for i, score in enumerate(python_score):
if score >= 80:
grade = "A"
elif score >= 60:
grade = "B"
else:
grade = "C"
print(f"{i+1}번은 {score}점으로 {grade} 등급 입니다.")
해당 마지막 print 줄에서 {i+1} 이렇게 +1을 해서 1번은 이라고 할 수 있지만,
for i, score in enumerate(python_score, start=1):
if score >= 80:
grade = "A"
elif score >= 60:
grade = "B"
else:
grade = "C"
print(f"{i}번은 {score}점으로 {grade} 등급 입니다.")
enumerate(python_score**, start=1**) 해당 부분 , start=1을 추가하면 마지막 줄에서 +1을 추가하지 않아도 1번부터 나온다는 사실을 알게 되었다. 흥미진진😃
'IT' 카테고리의 다른 글
| 파이썬 클래스(Class)? (0) | 2026.04.11 |
|---|---|
| 파이썬 람다, 일급 객체 (1) | 2026.04.11 |
| 파이썬 변수, 연산자, 조건문, 반복문 (0) | 2026.04.10 |
| 파이썬(python)이란 무엇인가, 파이썬의 자료형 (1) | 2026.04.10 |
| 깃(Git)과 깃허브(GitHub)? (1) | 2026.04.08 |