1. 기본(변수, 자료형, 입출력)
2. 조건문
3. 반복문
4. 함수
- 커맨드 모드 기능
- 선택 셀 위에 셀 생성 - a
- 선택 셀 아래에 셀 생성 - b
- 선택 셀 삭제 - dd
- 선택 셀 복사 - c
- 선택 셀 잘라내기 - x
- 선택 셀 붙여넣기 - v
- 선택 셀 병합 -shift+m
- 에디트 편집 - y
- 마크다운 편집 - m
2) 변수 선언
1) 자료형(data type)
2) 숫자형
- 연산자
- 사칙연산(+, -, *, /)
- 나누기 : 나머지 %
- 나머지 : 몫 //
- 제곱 : **
- 관련함수
- int() : 숫자나 문자열을 정수형으로 변환
- float() : 숫자나 문자열을 실수형으로 변환
- abs() : 절대값
- pow() : 제곱
1) 이스케이프 문자
- 출력물을 보기 좋게 만듦
- \n : 줄바꿈
- \t : 탭
- \' 또는 \" : 작은 따옴표 또는 큰따옴표
인덱싱
- 문자열 내부 문자 하나를 선택할 때 사용
- 순방향 인덱스 0부터 시작
- 역방향 인덱스 -1부터 시작
슬라이싱
- 특정 범위를 선택할 때 사용
- 문자열[인덱스1:인덱스2] ⇒ 인덱스 1이상부터 인덱스 2미만으로 적용
- 마지막 숫자를 포함하지 않음
- 문자열 안에 어떤 값을 삽입 (%연산자)
- 숫자(정수)대입 : %d
- 숫자(실수)대입 : %f
- 문자열 대입: %s# 두 개 이상의 %연산자 포맷팅 # 숫자 나타내는 변수와 문자를 나타내는 변수 대입 a=2 b="옷" sen="나는 하루에 %d번 샤워를 하고, %s을 두 번 갈아 입는다." %(2,"옷") print(sen)
1) str.format함수 사용
print("나는 {}호선과 {}호선을 타고 다녀.".format(6,4)
print("나는 {0}호선을 타고 다녀.".format(6)
2) f-string(**)
apple="사과", count=4
print(f"{apple}는{count}개 있다."
관련 함수
len(x)
: 문자열 길이 출력split()
: 문자열 나누기
- e.g. print(sentence1.split())
⇒ ['a','b','c']s="Life is too short." s.split("too") -> ['Life is','short.']
replace('a','b')
: 문자열 바꾸기
- e.g. sentence2=sentence1.replace('a','b')s = "Life is too short." # Life를 This pencil로 바꿔봅시다. s.replace("Life","This pencil") -> 'This pencil is too short.'
join(x)
: 문자열 삽입
- e.g. sentence = ','.join('abc')
⇒ a, b, c"*".join("abdcdd") -> 'a*b*d*c*d*d'
- upper() : 대문자 변환
- lower() : 소문자 변환
- capitalize() : 문장 첫단어 대문자 변환
- startswith() : ~로 시작하는 단어찾기
- endswith() : ~로 끝나는 단어찾기
: 대괄호[]에 자료를 쉼표로 구분하여 입력
L3 = [1, "Hi", 3.14, [1, 2, 3]] # 리스트에는 다양한 타입의 원소를 다 포함할 수 있다. 심지어 리스트도.
L3
-> [1, 'Hi', 3.14, [1, 2, 3]]
관련 함수
- sort() : 리스트 정렬
- reverse()
- append(x) : 리스트 요소 추가
- extend(x) : 리스트 확장
- insert(a,b) : 리스트 요소 삽입, 리스트 a번쨰 위치에 b를 삽입
- remove(x) : 리스트 요소 제거
- pop() : 리스트 요소 끄집어 내기
1) sort() # sort()를 이용해 L을 정렬합니다. L = [4, 3, 16] L.sort(reverse=True) #reverse=True를 쓰면, "내림차순" 정렬이 됩니다. L
1) 튜플 생성
: 괄호()에 자료를 쉼표로 구분하여 입력
2) 인덱싱과 슬라이싱
- 리스트와 동일
3) 연산자 사용 가능
4) 변경 삭제 불가능
1) 딕셔너리 정의
: key와 value를 한 쌍으로 갖는 자료형
2) 딕셔너리 선언
3) 변경과 삭제
myDict['추가 또는 수정하고 싶은 key값'] = [추가 또는 수정하고 싶은 value값]
4) 관련 함수
- keys() : key 리스트 만들기
- values() : value 리스트 만들기
- items() : key, value 쌍 얻기
- get() : key로 value 얻기
- in() : 해당 key가 딕셔너리 안에 있는지 조사
- clear() : key:value 쌍 모두 지우기
1) items()
D = {'name': 'kim', 'phone': '01012345679', 'birth': '1234'}
D.items()
-> dict_items([('name', 'kim'), ('phone', '01012345679'), ('birth', '1234')])
1) 집합 생성
1) 공집합 생성
#s1={}
s1=set() #공집합 생성
s1,type(s1)
-> (set(), set)
2) 교,합,차집합
- 교 : &
- 합 : |
- 차 : -
3) 관련 함수
- add() : 한 개의 값 추가
- update() : 여러 개의 값 추가
- remove() : 특정 값 제거
1) 정의
: 참과 거짓을 나타내는 자료형 ⇒ 조건문의 반환 값으로 사용
# 같다, 다르다, 크다, 작다, 크거나 같다, 작거나 같다
a=5
b=4
a == b
a!= b
a > b
a < b
a>=b
a<=b
# A and B
# A=a>5
# B=b<6
# A or B
A or B
# not A
not A
for 변수 in 리스트(또는 튜플, 문자열) :
반복적으로 수행할 문장
⇒ for 반복자 in 반복할 수 있는 것 :
반복적으로 수행할 문장
# 원소가 1, 2, 3인 리스트의 원소를 하나하나 출력하는 반복문을 만든다.
L = [1, 2, 3]
for i in L:
print(i)
-> 1
2
3
coffees = ['아메리카노', '카페라떼', '카페모카', '바닐라라떼', '핸드드립', '콜드브루']
prices = [4100, 4600, 4600, 5100, 6000, 5000]
for i in range(0,6): #0부터 시작
if prices[i] <=5000:
print(coffees[i])
-> 아메리카노
카페라떼
카페모카
콜드브루
# range 함수를 이용해 1부터 4까지 출력하는 프로그램을 작성해보자. for문을 이용해서!
for i in range(0,8):
print(i)
-> 0
1
2
3
4
5
6
7
e.g.
coffees = ['아메리카노', '카페라떼', '카페모카', '바닐라라떼', '핸드드립', '콜드브루']
prices = [4100, 4600, 4600, 5100, 6000, 5000]
# 1. index를 사용하는 방법
for i in range(len(coffees)):
if prices[i]-500<=5000:
print(coffees[i])
# 2. enumerate를 사용하는 방법
for idx, price in enumerate(prices):
if price -500 <=5000:
print(coffees[idx])
# 3.
for coffee, price in zip(coffees, prices):
if price -500 <=5000:
print(coffee)
- 횟수뿐만 아니라 구간이 정해져 있는 데이터를 순환하면서 작업가능
* 예제1)
test_list = [10, 20, 30, 40, 50, 60, 70, 80, 90]
# test_list 내부를 순환하면서 i를 정의
for item in test_list:
print(item/10*5) #전체데이터에 대해서 연산 등을 작업할 때 많이 사용하는 구조
* 예제2)
test_list = ['서울', '용산구', '해방촌', '르카페', '재즈', '치즈', '요리']
# enumerate() 함수안의 자료구조의 인덱스와 함께 루프
for index, item in enumerate(test_list):
if item == '해방촌':
test_list[index]='경리단길'
print(index, item)
0 서울
1 용산구
2 해방촌
3 르카페
4 재즈
5 치즈
6 요리
수정된 결과값
test_list
['서울', '용산구', '경리단길', '르카페', '재즈', '치즈', '요리']
* 예제3)
# 횟수뿐 아니라 구간이 정해져 있는 데이터를 순환하면서도 작업가능
# 여러 개의 데이터를 동시에 순환
test_list1 = ['이름', '사는곳', '사는동네', '좋아하는 카페', '음악', '취미']
test_list2 = ['Amy', '서울', '당산', '라이커스', '인디', '운동']
for index, (item1, item2) in enumerate(zip(test_list1, test_list2)):
print(index, item1, item2)
* 예제4)
# 폴더구조를 순환하는 for문의 활용
import os # 운영체제의 명령어를 파이썬으로 제어할 수 있는 패키지
for file_nm in os.listdir():
# 시작문자열 혹은 끝나는 문자열 기준으로 True, False
if file_nm.endswith('ipynb'):
# if file_nm[-5:] == 'ipynb':
print(file_nm)
* 예제5)
# 그렇다면 미리 정해진 숫자 혹은 데이터로만 사용이 가능할까?
# 생성할 때도 용이함
test_list=[]
for i in range(21):
test_list.append(i)
test_list
* 예제6)
# 숫자를 5번 입력받고 입력받은 숫자의 합을 계산해주는 코드를 작성해 봅시다.
# 변수, 리스트, 증강연산자
total = 0
for i in range(5):
num=int(input("더할 숫자를 입력하세요 : "))
total += num # 증강연산자
print(f"총 합은 {total}입니다.")
* 예제7)
total = [0]
for i in range(5):
num=int(input("더할 숫자를 입력하세요 : "))
total.append(num) # 리스트
print(f"총 합은 {sum(total)}입니다.")
- controlflow를 활용해 간단히 리스트 생성 가능
- 데이터의 특정 부분만 따로 변수로 사용하고자 할 때 많이 사용함
1) 심플한 리스트 컴프리헨션 구문
# test_list=[]
# for i in range(21):
# test_list.append(i)
[i for i in range(21)]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
2) if문이 추가된 리스트 컴프리헨션 구문
[i for i in range(21) if i % 2 == 0]
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
3) if, else문이 추가된 리스트 컴프리헨션 구문(elif 불가)
[i if i % 2 ==0 else 0 for i in range(21) ]
[0, 0, 2, 0, 4, 0, 6, 0, 8, 0, 10, 0, 12, 0, 14, 0, 16, 0, 18, 0, 20]
# 2단을 while문으로 구현해봅시다.
number = 0
while number < 10 :
print("2 X %d = %d" %(number, 2*number))
number = number+1
-> 2 X 0 = 0
2 X 1 = 2
2 X 2 = 4
2 X 3 = 6
2 X 4 = 8
2 X 5 = 10
2 X 6 = 12
2 X 7 = 14
2 X 8 = 16
2 X 9 = 18
3) continue 키워드
def 함수이름(매개변수1, 매개변수2) :
수행할 문장1
...
return 결과
def add(a, b):
return a + b
# 입력받은 a, b를 더한 값을 돌려주는 함수.
# Function Call
add(3, 5)
- 매개변수 값이 입력되지 않으면 값으로 자동 입력
- 매개변수가 여러 개인 경우 뒤의 매개변수부터 디폴트 값 가질 수 있음
def 함수이름(매개변수=디폴트 값) :
수행할 문장1
return 결과
2) 가변 매개변수
- 원하는 만큼의 인자를 받을 수 있는 함수
- 매개변수 : 가변 매개변수는 매개변수 앞에 *를 붙임
※ 제약 : 뒤에 일반 매개변수 X, 하나만 사용 가능
def 함수이름(*매개변수) :
수행할 문장1
return 결과
def add_many(*args): # *(asterisk)를 앞에 붙이는 것으로 여러개의 parameter를 받아서 tuple로 변환하여 준다.
total =0
for arg in args:
total += arg
return total
print(add_many(1,2,3))
print(add_many(1,2,3,4,5))
print(add_many(1,2,3,4,5,6,7))
def feed)forward(**kwargs): #kwargs -> dict
pass
def 함수(매개변수A, 매개변수B, 매개변수C):
수행할 문장1
return 결과
매개변수 이름 지정해서 입력하여 함수 호출
매개변수 순서와 상관없이 나열 가능
함수를 호출할 때 전달하는 입력 값
함수(인수1, 인수2)
함수를 호출한 곳으로 결과 값 반환