jyamethyst21 님의 블로그

파이썬 기본 문법 본문

보안 & IT 지식 🌺

파이썬 기본 문법

jyamethyst21 2026. 1. 1. 00:31

오늘까지 기본 문법에 더하여 조건문, 반복문, 함수, 내장 함수 등, 차주부터는 예외 처리, 입출력 구현에 이어 본격적으로 머신 러닝을 다룰 예정이다.

 

(수업 끝나고 운동 갔다가 정리하느라고 12시가 넘어버렸네.. 앞으론 당일에 최대한 업로드 하도록 하겠다.)

 

리스트 컴프리헨션

1) 기본 형식

[표현식 for 항목 in 반복_가능객체 if 조건문]

[표현식 for 항목1 in 반복_가능_객체1 if 조건문1

            for 항목2 in 반복_가능_객체2 if 조건문2 ... ]

 

2) 리스트를 사용해서 긴 반복문 등을 간단하게 한 줄로 작성 가능

a = [1,2,3,4]
result = [num * 3 for num in a]
print(result)

# 결과: [3,6,7,12]

 

3) 리스트 컴프리헨션 안에 if 조건 사용 가능

a = [1,2,3,4]
result = [num * 3 for num in a if num % 2 == 0]
print(result)

# 결과: [6, 12]

설명: for문 먼저 보고 if문, 마지막으로 num * 3 실행

 

함수

1) 매개변수와 인수

- 매개변수 : 함수에 입력받는 값을 저장하기 위한 변수

- 인수 : 함수를 호출할 때 전달하는 값

def add(a,b): # 매개변수 : a,b
	return a+b
   
print(add(3,4)) # 인수 : 3,4

 

2) 일반적인 함수 (입력값이 있고 리턴값이 있는 함수)

# def 함수_이름(매개변수):
#	수행할 문장
#   ...
#   return 리턴값
# 리턴값을 받을 변수 = 함수 이름(입력 인수 1, 입력 인수 2..)

def add(a,b):
	result = a+b
    return result
a = add(3,4)
print(a)

# 결과 : 7

 

 

3) 입력값이 없는 함수 (매개변수가 정의되지 않은 함수)

def say():
	return 'hi'

a = say()
print(a)

# 결과 : hi

 

4) 리턴값이 없는 함수 (리턴값이 없는 함수는 호출해도 리턴 되는 값이 없음)

def add(a,b):
	print(a+b)
add(3,4)

# 결과 : 7

설명 : 리턴값이 없는 함수는 리턴 되는 값이 존재하지 않음, 위 코드는 print() + vs 코드의 조합으로 인해 출력

a = add(3,4)
# 결과 : 3

print(a)
# 결과 : None

설명 : None이 출력됨

 

5) 입력값, 리턴값이 없는 함수 (매개변수도 없고 return문도 없는 함수)

def say():
	print('hi')

say()

# 결과 : hi

 

6) 함수 호출 시 매개변수 지정 가능 (매개변수 순서에 상관없이 사용할 수 있음)

def sub(a,b):
	return a-b

result = sub(b=5, a=3)
print(result)

# 결과 : -2

 

7) 입력값이 몇개인지 모르는 경우 (*args)

# def 함수 이름(*매개변수):
#   수행할문장

def add_many(*args):
	result = 0
    for i in args:
    	result = result + i
    return result
result = add_many(1,2,3)
print(result)

# 결과 : 6

result = add_many(1,2,3,4,5)
print(result)

# 결과 : 15

 

8) 키워드 매개변수 (**kwargs)

def print_kwargs(**kwargs):
	print(kwargs)
print_kwargs(a=1)

# 결과 : {'a' : 1}

print_kwargs(name='foo', age=3)
# 결과 : {'age' : 3, 'name' : 'foo'}

설명 : *args는 위치 인자들을 튜플로 받는다면 **kwargs는 키워드 인자를 딕셔너리로 받음, 그래서 출력이 딕셔너리 형태!

 

9) 매개변수에 초기값 미리 설정

def say_myself(name, wo=True, age):
	if wo:
    	print('여자입니다')
    else:
    	print('남자입니다')
# 결과 : SyntaxError: ~~

설명 : 매개변수 초기화도 가능한데, 초기화할 매개변수는 항상 맨 뒤쪽에 놓아야함

 

10) 매개변수 선언 범위

# Case 1.

a = 10
def vartest(a):
	a += 1
vartest(a)
print(a)

# 결과 : 10


# Case 2.
def vartest(a):
	a += 1
vartest(3)
print(a)

# 결과 : not defined

# Case 3.
ab = 10
def vartest():
    global ab
    ab = ab+1
vartest()
print(ab)

# 결과 : 11

설명 :

1) 첫번째 케이스

매개변수 a가 함수 안에서만 사용하는 변수이므로 함수 밖의 변수 a와는 전혀 상관이 없다. 그래서 예상되는 11이 아니라 함수 밖에서 선언한 a인 10이 출력된다.

2) 두번째 케이스

함수 안에서 선언한 매개변수는 함수 안에서만 사용될 뿐, 함수 밖에서는 사용되지 않는다. 그래서 print(a)에서 사용한 a 변수는 어디에서도 선언되지 않았기 때문에 오류가 발생한다.

3) 세번째 케이스

global 명령어를 사용하게 되면 함수 밖에서 선언한 변수를 함수 내부에서도 사용할 수 있게된다. 그래서 예상한대로 11이 계산되어 출력된다. 하지만 함수는 독립적으로 존재하는 것이 좋기 때문에 특정 변수에 의존하지 않도록 해야하므로 이 방법은 피하는 게 좋다. 

 

11) lambda 예약어

# 함수_이름 = lambda 매개변수1, 매개변수2 ... : 매개변수를 이용한 표현식
add = lambda x,b : a+b
result = add(3,4)
print(result)

# 결과 : 7

 

주요 내장 함수

1) all (시퀀스 데이터를 입력받아 x의 요소가 모두 참이면 True, 하나라도 거짓이면 False 리턴)

all([1,2,3])
# True

all([1,2,3,0])
# False (0이 False)

all([])
#True -> 아예 검사할 대상이 없으므로 여기선 False라고 보지 않음

 

2) any (시퀀스 데이터를 입력받아 x의 요소 중 하나라도 참이면 True,  모두 거짓일 땐 False 리턴)

any([1,2,3,0])
# True

any([0,''])
# False

any([])
# False -> 하나라도 참이 있는지 물어볼 때 사용하는 게 any인데 리스트가 비어있다면 검사할 항목이 없어 False로 봄

 

all, any 보충 설명 :

1) all : 전부 True여야 True

2) any : 하나라도 True가 있으면 True

3) 빈값이면 보통 False라고 판단하는데 any는 True가 존재하는지 기준, all은 False가 존재하는지 기준으로 보자

 

3) dir(x) (객체가 지닌 변수나 함수를 보여주는 함수)

dir([1,2,3])
# ['append', 'count', 'extend', 'index', ...]

 

4) divmod(a,b) (a를 b로 나눈 몫과 나머지를 튜플로 리턴)

divmod(7,3)
# (2,1)

 

5) filter (시퀀스 데이터의 요소 값을 순서대로 함수에 전달하며 함수를 호출했을 때 리턴값이 참인 것만 묶어서(걸러서) 리턴)

# 기본 형식
filter(함수, 반복 가능한 데이터)

def positive(x):
	return x > 0
print(list(filter(positive, [1,-3,2,0])
# [-3]

'보안 & IT 지식 🌺' 카테고리의 다른 글

파이썬 기본 문법  (0) 2026.01.05
2025년 보안 사고 정리 - SKT, 롯데카드, YES24, 쿠팡  (0) 2026.01.01
파이썬 기본 문법  (0) 2025.12.30
파이썬 기본 문법  (0) 2025.12.29
깃허브 & 노션 사용법  (0) 2025.12.24