함수의 개념

  • 입력값을 가지고 어떤 일을 수행한 후 출력하는 기능을 하는 것
  • 반복적으로 사용하는 기능이 있을 경우 함수로 작성해 놓으면  유용함

 

파이썬 함수의 구조

일반적인 함수

  • 함수의 생성
def 함수명(매개변수):
    수행할 문장
    ...
    return 반환할 값
  • 함수의 사용
리턴값을 받을 변수 = 함수명(입력 인수1, 입력 인수2, ...)
def multiple(a, b):
	return a+b, a-b, a*b, a/b
		
multiple(3, 2)
>>> (5, 1, 6, 1.5)

 

입력값이 없는 함수

  • 함수의 생성
def 함수명():
    수행할 문장
    ...
    return 반환할 값
  • 함수의 사용
리턴값을 받을 변수 = 함수명()
def smile():
	return '^-^'

a = smile()
print(a)
>>> 
^-^

 

리턴값이 없는 함수

  • 함수의 생성
def 함수명(매개변수):
    수행할 문장
    ...
  • 함수의 사용
함수명(입력 인수1, 입력 인수2, ...)
def introduce(grade, class_no, name):
    print(f'저는 {grade}학년 {class_no}반 {name}입니다.')
    
introduce(3, 1, '짱구')
>>> 
저는 3학년 1반 짱구입니다.


입력값도, 리턴값도 없는 함수

  • 함수의 생성
def 함수명():
    수행할 문장
    ...
  • 함수의 사용
함수명()
def bark():
	print('멍멍')

bark()
>>> 멍멍

 

함수에서 다양한 형태로 입력값 받기 

여러개의 입력값을 받는 함수 

  • 함수의 생성
def 함수명(*매개변수):
    수행할 문장
    ...
  • 함수의 사용
함수명(입력 인수1, 입력 인수2, ...)
def add_num(*arg):
    result = ''
    for a in arg:
        result += str(a)
    return int(result)
    
add_num(1, 2, 3, 4)
>>> 1234
  • 매개변수 이름 앞에 *을 붙이면 여러개의 입력값을 원소로 가지는 튜플을 입력값으로 받음.
  • 함수의 매개변수로 *args 하나만 사용할 수 있는 것은 아님.

 

키워드 매개변수

def test(**kwargs):
    for k, v in kwargs.items():
        print(f'{k}는 {v}')

test(개 = '멍멍', 고양이 = '야옹')
>>> 개는 멍멍
    고양이는 야옹
  • 키워드 매개변수를 사용할 때는 매개변수 앞에 별 2개(**)를 붙임.
  • 매개변수 kwargs는 딕셔너리가 되고 모든 Key=Value 형태의 입력값이 그 딕셔너리에 저장됨. 

lambda 예약어

  • lambda는 함수를 생성할 때 사용하는 예약어로, 함수를 한줄로 간결하게 만들때 사용
  • lambda로 만든 함수는 return 명령어가 없어도 표현식의 결과값을 리턴함.
함수명 = lambda 매개변수1, 매개변수2, ... : 매개변수를 이용한 표현식
test = lambda a, b : a ** 2 + b
test(2, 3)
>>> 7

'Python > 개념' 카테고리의 다른 글

10. [Python] 제어문 - for문  (2) 2024.04.22
08. [Python] 제어문 - if문  (1) 2024.04.18
07. [Python] 자료형 - 불  (0) 2024.04.17
06. [Python] 자료형 - 집합  (0) 2024.04.16
03. [Python] 자료형 - 리스트  (0) 2024.04.15

for문의 기본 구조

for 변수 in 리스트/튜플/문자열:
수행할 문장
...
sample_list = ['a', 'b', 'c', 'd']
for i in sample_list:
	print(i)
>>> a
    b
    c
    d

 

for 문과 continue

for 문 안의 문장을 수행하는 동안 continue 문을 만나면 for 문의 처음으로 돌아가게 됨

a = [3, 4, 5, 6, 7, 8, 9]
for i in a:
	if i % 5 == 0:
    	print(f'{i}은/는 5의 배수입니다.')
    	continue
    print(f'{i}은/는 5의 배수가 아닙니다.')
>>> 3은/는 5의 배수가 아닙니다.
    4은/는 5의 배수가 아닙니다.
    5은/는 5의 배수입니다.
    6은/는 5의 배수가 아닙니다.
    7은/는 5의 배수가 아닙니다.
    8은/는 5의 배수가 아닙니다.
    9은/는 5의 배수가 아닙니다.

 

for 문과 range 함수

range(시작 숫자, 끝 숫자, 간격)
for i in range(5):
	print(i)
>>> 0
    1
    2
    3
    4

for i in range(2, 6):
	print(i)
>>> 2
    3
    4
    5
    
for i in range(1, 5, 2):
	print(i)
>>> 1
    3
  • range 함수의 끝 숫자는 포함되지 않음.
  • range 함수의 시작 숫자는 생략하면 0부터 반환됨.
  • 간격은 설정하지 않으면 기본값인 1 간격으로 반환됨.

 

리스트 컴프리헨션(list comprehension)

[표현식 for 항목 in 반복가능한 객체 if 조건문]
b = ['홀', '짝', '홀수', '짝수']
[str(i+1) + v for i, v in enumerate(b) if i % 2 == 1]
>>> ['2짝', '4짝수']
  • for문을 이용해 조건에 맞는 값들을 리스트에 모을 경우 리스트 컴프리헨션을 통해 간단하게 나타낼 수 있음.
  • 이중 for 문도 리스트 컴프리핸션으로 구현 가능

'Python > 개념' 카테고리의 다른 글

11. [Python] 함수  (0) 2024.04.24
08. [Python] 제어문 - if문  (1) 2024.04.18
07. [Python] 자료형 - 불  (0) 2024.04.17
06. [Python] 자료형 - 집합  (0) 2024.04.16
03. [Python] 자료형 - 리스트  (0) 2024.04.15

if문의 기본구조

if ~ else

if 조건문:
    조건문이 참인 경우 수행할 내용
else:
    조건문이 거짓인 경우 수행할 내용
if 6/2 == 3:
	print('참')
else:
	pribt('거짓')
>>> 참

 

if ~ elif ~ else

if 조건문:
    조건문이 참인 경우 수행할 내용
elif 조건문:
    if 조건문은 거짓, elif 조건문은 참인 경우 수행할 내용
...
else:
   위의 모든 조건문이 거짓인 경우 수행할 내용
a = -2
if a > 0:
	print(f'{a}은/는 양수')
elif a < 0:
	print(f'{a}은/는 음수')
else:
	print(f'{a}은/는 0')
>>> -2은/는 음수
  • elif는 이전 조건이 모두 거짓일 때 수행되며 elif의 개수에는 제한이 없음.

 

if 조건문 작성시 주의사항

  • 조건문이 끝나면 콜론(:)을 붙임.
  • 수행할 내용은 반드시 들여써야 함
  • else를 생략할 수는 있지만 일단 else를 쓰면 수행할 내용을 반드시 입력해야 함.
  • 특별히 수행할 내용이 없으면 pass를 쓸 수 있음
a = 3
b = 1

if a <= b:
	print(a + b):
>>>

if a >= b:
	print(a + b)
else:
	pass
>>>	4

 

조건문

  • if 조건문에서 ‘조건문’이란 참과 거짓을 판단하는 문장을 말함.
  • 조건문은 각종 연산자를 사용하여 작성할 수 있음.

비교 연산자( ==, !=, >, >=, <, <= )

연산자 참일 조건 입력 예시 출력 예시
a < b a가 b보다 작은 경우 bool(-2 < 1) True
a > b a가 b보다 큰 경우 bool(-2 > 1) False
a == b a와 b가 같은 경우 bool(-2 == 1) False
a != b a와 b가 같지 않은 경우 bool(-2 != 1) True
a >= b a가 b보다 크거나 같은 경우 bool(-2 >= 1) False
a <= b a가 b보다 작거나 같은 경우 bool(-2 <= 1) True

 

and/or/not

연산자 참일 조건 입력 예시 출력 예시
a and b a와 b 모두 참인 경우 bool(0 and 1) False
a or b a와 b 중 하나라도 참인 경우 bool(0 or 1) True
not a a가 아닌 경우 bool(not 0) True

 

in, not in 리스트/튜플/문자열

연산자 참일 조건 입력 예시 출력 예시
a in b a가 b 안에 존재하는 경우 bool( 'a' in ['a', 'b', 'c']) True
a not in b a가 b 안에 존재하지 않는 경우 bool( 'a' not in ['a', 'b', 'c']) False

 

 

'Python > 개념' 카테고리의 다른 글

11. [Python] 함수  (0) 2024.04.24
10. [Python] 제어문 - for문  (2) 2024.04.22
07. [Python] 자료형 - 불  (0) 2024.04.17
06. [Python] 자료형 - 집합  (0) 2024.04.16
03. [Python] 자료형 - 리스트  (0) 2024.04.15

불(bool) 자료형의 개념과 활용

  • 참(True)과 거짓(False)을 나타내는 자료형
  • 조건문의 리턴값
    • 조건식이 참이면 True, 거짓이면 False를 반환함
1 == 1
>>> True

1 > 2
>>> False

 

자료형의 참과 거짓

  • 문자열, 리스트, 튜플, 딕셔너리의 값이 비어있으면 거짓, 비어 있지 않으면 참
  • 숫자에서 값이 0이면 거짓
  • None은 거짓
자료형 입력 예시 출력 예시
숫자 bool(1) True
bool(0) False
문자열 bool('string') True
bool('') False
리스트 bool([1, 2, 3]) True
bool([]) False
튜플 bool(('a', 'b')) True
bool(()) False
딕셔너리 bool({'a': 1, 'b': 2, 'c': 3}) True
bool({}) False

 

'Python > 개념' 카테고리의 다른 글

10. [Python] 제어문 - for문  (2) 2024.04.22
08. [Python] 제어문 - if문  (1) 2024.04.18
06. [Python] 자료형 - 집합  (0) 2024.04.16
03. [Python] 자료형 - 리스트  (0) 2024.04.15
02. [Python] 자료형 - 문자열  (0) 2024.04.14

집합의 생성

  • set()안에 리스트 또는 문자열 입력
  • 중복을 허용하지 않음.
  • 순서가 없음.
set1 = set([1, 2, 3])
set1
>>> {1, 3, 2}

set2 = set('Hello')
set2
>>> {'H', 'e', 'l', 'o'}
set은 중복을 허용하지 않는 특징 때문에 데이터의 중복을 제거하기 위한 필터로 종종 사용됨.

 

교집합, 합집합, 차집합

기능연산자/함수입력 예시
a = set([1, 2, 3, 4, 5, 6])
b = set([4, 5, 6, 7, 8, 9])
출력 예시
교집합 구하기&a & b{4, 5, 6}
intersection b.intersection(a) {4, 5, 6}
합집합 구하기|a | b{1, 2, 3, 4, 5, 6, 7, 8, 9}
unionb.union(a) {1, 2, 3, 4, 5, 6, 7, 8, 9}
차집합 구하기-a - b{1, 2, 3}
differenceb.difference(a){7, 8, 9}

 
 

집합 관련 함수

함수기능입력 예시
set3 = set('abcd')
출력 예시
add값 1개 추가set3.append('e')
print(set3)
{'a', 'b', 'c', 'd', 'e'}
update값 여러개 추가set3.update([1, 2])
print(set3)
{1, 2, 'a', 'b', 'c', 'd'}
remove특정 값 제거set3.remove('c')
print(set3)
{'a', 'b', 'd'}

 

'Python > 개념' 카테고리의 다른 글

08. [Python] 제어문 - if문  (1) 2024.04.18
07. [Python] 자료형 - 불  (0) 2024.04.17
03. [Python] 자료형 - 리스트  (0) 2024.04.15
02. [Python] 자료형 - 문자열  (0) 2024.04.14
01. [Python] 자료형 -숫자형  (0) 2024.04.12

리스트 생성

  • 요소 목록을 대괄호([])로 감싸고 각 요소값은 쉼표(,)로 구분
  • 리스트 요소값으로 숫자, 문자열, 리스트, 튜플 등 어떤 자료형 가질 수 있음.
리스트명 = [값1, 값2, 값3, ...]

 

리스트와 문자열의 유사 기능

인덱싱

  • 파이썬에서는 0부터 인덱스 번호를 부여
  • 음수를 사용하여 역순으로 인덱스를 부여
- 리스트에서 0번 인덱스는 첫번째 요소값을 나타내고, -1번 인덱스는 마지막 요소값을 나타냄.
- 문자열에서 0번 인덱스는 첫번째 문자를 나타내고, -1번 인덱스는 마지막 문자를 나타냄
list_a = ['a', 'b', 1, 2, 3]
str_b = 'HELLO'

list_a[0]
>>> 'a'
list_a[-1]
>>> 3

str_b[0]
>>> 'H'
str_b[-1]
>>> 'O'

 

슬라이싱

  • 인덱스 범위를 지정하여 리스트나 문자열의  일부만 가져올 수 있음.
  • 변수명[시작 번호:끝 번호]
  • 끝번호는 포함되지 않음에 주의
list_a[1:3]
>>> ['b', 1]
list_a[:3]
>>> ['a', 'b', 1]
str_b[2:]
>>> 'LLO'
str_b[:]
>>> 'HELLO'

 

연산자를 활용한 합성과 복제

  • + 연산자를 이용한 합성
[1, 2, 3] + ['a', 'b']
>>> [1, 2, 3, 'a', 'b']
'Hi' + 'Hello'
>>> 'HiHello'
  • * 연산자를 이용한 복제
['영', '차'] * 3
>>> ['영', '차', '영', '차', '영', '차']
'Again&' * 0
>>> 'Again&Again&Again&Again&Again&'

 

len 함수의 활용

  • 리스트에 len 함수를 적용하면 리스트에 속한 요소값의 개수를 반환
  • 문자열에 len 함수를 적용하면 문자열의 길이를 반환
len(list_a)
>>> 5
len(str_b)
>>> 5

 

리스트의 수정과 삭제

- 인덱스 활용하여 요소값을 수정하거나 삭제할 수 있음
- 해당 내용은 문자열 자료형에는 적용 불가

list_b = [10, 20, 30, 40]

list_b[1] = 100
list_b
>>> [10, 100, 30, 40]

del list_b[1]
list_b
>>> [10, 30, 40]

 

리스트 관련 함수

함수기능입력(a = [1, 5, 4, 2])출력
append()리스트의 끝에 요소 추가a.append(3)
print(a)
[1, 5, 4, 2, 3]
sort()요소를 순서대로 정렬a.sort()
print(a)
[1, 2, 4, 5]
reverse()역순으로 뒤집기a.reverse()
print(a)
[2, 4, 5, 1]
index()인덱스 반환a.index(5)1
insert(a, b)a번째 위치에 b를 삽입a.insert(2, 3)
print(a)
[1, 5, 3, 4, 2]
remove()요소값 삭제a.remove(4)
print(a)
[1, 5, 2]
pop()리스트의 요소 끄집어 내기a.pop()2
count()리스트에 포함된 요소의 개수 반환a.count(1)1
extend()리스트 확장a.extend([5, 6])
print(a)
[1, 5, 4, 2, 'a', 'b']
remove vs pop
- pop()안을 비워두면 제일 마지막 요소값을 반환하고 리스트에서 해당 값은 제거됨.
- 이와 달리 remove는 함수 적용시 리스트에서 해당 값이 완전히 제거되는 것은 아니며 변경된 내용을 적용하기 위해서는 재할당 과정을 거쳐야 함.
b = ['a', '10', '20', [1, 2, 3]]
b.remove('20')
print(b)
>>> ['a', '10', [1, 2, 3]]

b.pop(0)
>>> 'a'
print(b)
>>> ['10', '20', [1, 2, 3]]
b.pop()
>>> [1, 2, 3]
print(b)
>>> ['10', '20']​

- index, remove를 적용할 대상값이 리스트에 중복되어 있으면 해당하는 값 중 가장 먼저 나오는 값에만 적용됨.
c = [10, 20, 30, 30, 30, 40, 40, 50]
c.index(30)
>>> 2

c.remove(40)
print(c)
>>> [10, 20, 30, 30, 30, 40, 50]​

'Python > 개념' 카테고리의 다른 글

07. [Python] 자료형 - 불  (0) 2024.04.17
06. [Python] 자료형 - 집합  (0) 2024.04.16
02. [Python] 자료형 - 문자열  (0) 2024.04.14
01. [Python] 자료형 -숫자형  (0) 2024.04.12
00. [Python] 개요  (0) 2024.04.12

문자열 생성 방법

  • 큰따옴표(")로 감싸기
  • 작은 따옴표(')로 감싸기
"This is String"
'This is String'

 

따옴표가 포함된 문자열 생성

  • 큰 따옴표가 포함된 문자열은 작은 따옴표로 감싸기
  • 작은 따옴표가 포함된 문자열은 큰 따옴표로 감싸기
  • 따옴표 앞에 역슬래시를 함께 쓰면 문자열을 생성하는 기호와 구분됨
'He said. "I love you"'
"He said. 'I love you'"
"He said. \"I love you\""

 

이스케이프 코드

코드설명입력 예시출력 예시
\n줄바꿈print('처음\n끝')처음
\t탭 간격print('처음\t끝')처음    끝
\\문자 그대로의 \print('처음\\끝')처음\끝
\'문자 그대로의 'print('처음\'끝')처음'끝
\"문자 그대로의 "print('처음\"끝')처음"끝
\r캐리지 리턴(줄 바꿈, 커서를 현재 줄의 가장 앞으로 이동)print('처음\r끝')끝음
\b백 스페이스print('처음\b끝')처끝
\000Null 문자print('처음\000끝')처음끝

 

문자열 포매팅

문자열 포맷 코드

코드설명입력 예시출력 예시
%s문자열(String) '내 이름은 %s'%'캔디''내 이름은 캔디'
%c문자 1개(character)'%c요일에 만나요'%'금''금요일에 만나요'
%d정수(Integer)'%d세 미만 관람불가'%15'15세 미만 관람불가'
%f부동소수(floating-point)'%f'%(1/3)0.333333
%o8진수'%o'%3240
%x16진수'%x'%3220
%%문자 % 자체 '전품목 10%% 할인''전품목 10% 할인'
여러 값의 입력과 소수점 이하 자릿수 표현
- 2개 이상의 값을 넣으려면 마지막%다음 괄호 안에 쉼표(,)로 구분하여 입력
- f 앞에 온점(.) 과 나타내려는 소수점이하 자릿수를 입력하면 소수점 이하 자릿수 설정 가능
'2022년 %s 지역 인구는 %.2f만 명 입니다.'%('서울', 966.7669)
>>> '2022년 서울 지역 인구는 966.77만 명 입니다.'
정렬과 공백
- %와 포맷코드 사이에 양수를 입력하면 숫자만큼의 문자열 공간에서 대입되는 값을 오른쪽으로 정렬하고 나머지는 공백으로 채움.
- %와 포맷코드 사이에 음수를 입력하면 숫자만큼의 문자열 공간에서 대입되는 값을 왼쪽으로 정렬하고 나머지는 공백으로 채움.
'%10s'%'오른쪽정렬'
>>> '     오른쪽정렬'
'%-10s'%'왼쪽정렬'
>>> '왼쪽정렬      '

 
format 함수를 사용한 포매팅

  • {}안에 변수 또는 인덱스를 넣어서 표현
'{school}초등학교 {grade}학년 {class_no}반'.format(school='한국', grade=1, class_no=2)
>>> '한국초등학교 1학년 2반'
'{0}초등학교 {2}학년 {1}반'.format('한국',1, 2)
>>> '한국초등학교 2학년 1반'
정렬과 공백
- 0:<10 : 전체 길이가 10개인 문자열 공간에서 대입되는 값을 왼쪽으로 정렬하고 나머지는 공백으로 채움.
- 0:>10 : 전체 길이가 10개인 문자열 공간에서 대입되는 값을 오른쪽으로 정렬하고 나머지는 공백으로 채움.
- 0:^10 : 전체 길이가 10개인 문자열 공간에서 대입되는 값을 가운데로 정렬하고 나머지는 공백으로 채움.
'{0:<10}'.format('왼쪽정렬')
>>> '왼쪽정렬      '

'{0:>10}'.format('오른쪽정렬')
>>> '     오른쪽정렬'

'{0:^10}'.format('가운데정렬')
>>> '  가운데정렬   '

'{0:@<10}'.format('공백채우기')
>>>'공백채우기@@@@@'

'{0:!<10}'.format('공백채우기')
>>> '공백채우기!!!!!'
소수점 이하 자릿수 표현 : {0:0.xf}
'{0:0.2f}'.format(3.141592)
>>> '3.14'

'{0:10.2f}'.format(3.141592)
>>> '      3.14'

 

f문자열 포매팅(파이썬 3.6 버전 이상)

  • 문자열 앞에 f 기재 후 {}안에 입력할 문자나 변수 입력
name = '철수'
age = 19
f'{name}는 내년에 {age+1}살이 된다.'
>>> '철수는 내년에 21살이 된다.'

x = 0.12345
f'{x:.4}f'
>>> 0.1235

 

문자열 내장 함수

함수기능입력 예시
(a = 'HeLLo'
b = '    hi    ')
출력 예시
count문자열 중 문자의 개수 리턴 a.count('L') 2
find문자열 중 문자가 처음으로 나온 위치를 반환a.find('L')2
index 문자열 중 문자가 처음으로 나온 위치를 반환 a.index('L') 2
join문자열의 각 문자 사이에 해당 문자를 삽입'!'.join('12345') '1!2!3!4!5'
upper소문자를 대문자로 변환a.upper()'HELLO'
lower대문자를 소문자로 변환a.lower()'hello'
lstrip왼쪽 공백 제거b.lstrip() 'hi    '
rstrip오른쪽 공백 제거 b.rstrip() '    hi'
strip양쪽 공백 제거 b.strip()'hi'
replace문자열 바꾸기a.replace('e', 'eeee') 'HeeeeLLo'
split문자열 나누기a.split('L')['He', '', 'o']
find와 index의 차이
찾으려는 값이 리스트 내에 없으면 find는 -1을 반환하지만 index는 오류가 발생
str_1 = 'apple'
str_1.find('b')
>>> -1
str_1.index('b')
>>> ValueError: substring not found​
- 내장함수를 이용하면 변경된 값을 리턴 하지만 문자열 자체의 값이 변경되는 것은 아님.
- 변경된 값을 적용하려면 변수에 값을 할당해야 함
str_1 = 'Today is Sunday'
str_1.replace('Sunday', 'Monday')
print(str_1)
>>> Today is Sunday

str_2 = str_1.replace('Sunday', 'Monday')
print(str_2)
>>> Today is Monday​

'Python > 개념' 카테고리의 다른 글

07. [Python] 자료형 - 불  (0) 2024.04.17
06. [Python] 자료형 - 집합  (0) 2024.04.16
03. [Python] 자료형 - 리스트  (0) 2024.04.15
01. [Python] 자료형 -숫자형  (0) 2024.04.12
00. [Python] 개요  (0) 2024.04.12

정수형(int)

  • 정수형(integer)이란 말 그대로 정수를 뜻하는 자료형을 말함.

실수형(float)

  • 파이썬에서 실수형(floating-point)은 소수점이 포함된 숫자를 말함.

연산자

연산자기능입력 예시출력 예시
+왼쪽 값과 오른쪽 값을 더하기3 + 2 5
-왼쪽에서 오른쪽 값을 빼기3 - 21
*왼쪽 값과 오른쪽 값을 곱하기3 * 26
/왼쪽 값에서 오른쪽 값을 나누기3 / 21.5
//왼쪽 값에서 오른쪽 값을 나눈 몫을 반환3 // 21
% 왼쪽 값에서 오른쪽 값을 나눈 나머지를 반환 3 % 21
**왼쪽 값에서 오른쪽 값만큼 거듭제곱3 ** 29

 

복합 연산자

  • 복합 연산자는 산술 연산자와 대입 연산자(=)를 합쳐 놓은 것
  • 복합 연산자를 사용하면 코드를 더욱 간결하고 가독성 있게 작성할 수 있음
연산자입력 예시(a = 3) 기능 출력 예시
+= a += 1 a = a + 1 4
-= a -= 1 a = a - 1 2
*=a *= 2 a = a * 26
/= a /= 2 a = a / 21.5
//=a //= 2 a = a // 21
%=a %= 2 a = a % 21
**=a ** 2 a = a ** 29

 

'Python > 개념' 카테고리의 다른 글

07. [Python] 자료형 - 불  (0) 2024.04.17
06. [Python] 자료형 - 집합  (0) 2024.04.16
03. [Python] 자료형 - 리스트  (0) 2024.04.15
02. [Python] 자료형 - 문자열  (0) 2024.04.14
00. [Python] 개요  (0) 2024.04.12

+ Recent posts