점프 투 파이썬
# 교재 : https://wikidocs.net/book/1
점프 투 파이썬
이 책은 파이썬이란 언어를 처음 접해보는 독자들과 프로그래밍을 한 번도 해 본적이 없는 사람들을 대상으로 한다. 프로그래밍을 할 때 사용되는 전문적인 용어들을 알기 쉽게 풀어서 …
wikidocs.net
# 강의 : https://www.youtube.com/playlist?list=PLU9-uwewPMe05-khW3YcDEaHMk_qA-7lI
파이썬 기초 (2023 점프 투 파이썬)
파이썬 무료 기초 프로그래밍 강의입니다. Do it! 점프 투 파이썬 교재로 수업이 진행됩니다.
www.youtube.com
# 소스코드 : https://github.com/pahkey/jump2python
GitHub - pahkey/jump2python
Contribute to pahkey/jump2python development by creating an account on GitHub.
github.com
파이썬으로 할 수 있는 일
- 웹 프로그래밍
- 인공지능과 머신러닝
- 수치 연산 프로그래밍
- 데이터 분석
- 데이터베이스 프로그래밍
- 시스템 유틸리티 제작하기
- GUI 프로그래밍
- C/C++와 결합하기
- 사물 인터넷
파이썬 둘러보기
변수에 문자 대입하고 출력하기
조건문 if
* 들여쓰기를 한 후 print문을 작성해야 한다.
함수
* def는 파이썬에서 함수를 정의할 때 사용하는 예약어이다.
파이썬과 에디터
* #는 주석을 작성할 때 사용한다.
* 주석을 여러줄 작성하고 싶을 땐 """ """ 사이에 작성하면 된다.
숫자형
사칙 연산
x의 y제곱을 나타내는 ** 연산자
나눗셈 후 나머지를 리턴하는 % 연산자
나눗셈 후 몫을 리턴하는 // 연산자
* // 연산자를 사용하면 정숫값만 리턴된다.
문자열 자료형
# 문자열(string)이란 문자, 단어 등으로 구성된 문자들의 집합을 말한다.
문자열 만드는 방법
- 큰따옴표로 양쪽 둘러싸기
- 작은따옴표로 양쪽 둘러싸기
- 큰따옴표 3개를 연속으로 써서 양쪽 둘러싸기
- 작은따옴표 3개를 연속으로 써서 양쪽 둘러싸기
문자열 안에 작은따옴표나 큰따옴표를 포함시키고 싶을 때
여러 줄인 문자열을 변수에 대입하고 싶을 때
- 줄을 바꾸기 위한 이스케이프 코드 \n 삽입하기
- 연속된 작은따옴표 3개 또는 큰따옴표 3개 사용하기
# 이스케이프 코드
\n | 문자열 안에서 줄을 바꿀 때 사용 |
\t | 문자열 사이에 탭 간격을 줄 때 사용 |
\\ | \를 그대로 표현할 때 사용 |
\' | 작은따옴표(')를 그대로 표현할 때 사용 |
\" | 큰따옴표(")를 그대로 표현할 때 사용 |
문자열 연산하기
문자열 더해서 연결하기
문자열 곱하기
문자열 곱하기를 응용하기
문자열 길이 구하기
# 문자열의 길이는 len 함수를 이용하면 구할 수 있다.
* 문자열의 길이에는 공백 문자도 포함된다.
문자열 인덱싱과 슬라이싱
* 파이썬은 0부터 숫자를 센다.
* a[-n]은 뒤에서부터 세어 n번째가 되는 문자를 말한다.
* a[시작_번호:끝_번호]를 지정할 때 끝 번호에 해당하는 문자는 포함하지 않는다.
문자열 포매팅
- 숫자 바로 대입
- 문자열 바로 대입
- 숫자 값을 나타내는 변수로 대입
- 2개 이상의 값 넣기
문자열 포맷 코드
%s | 문자열(String) |
%c | 문자 1개(character) |
%d | 정수(Integer) |
%f | 부동소수(floating-point) |
%o | 8진수 |
%x | 16진수 |
%% | Literal % (문자 % 자체) |
* %% 사용법 숙지
포맷 코드와 숫자 함께 사용하기
정렬과 공백
소수점 표현하기
* 소수점 포인트 뒤의 숫자는 소수점 뒤에 나올 숫자의 개수를 말하고 앞의 숫자는 문자열의 전체 길이를 의미한다.
format 함수를 사용한 포매팅
- 숫자 바로 대입
- 문자열 바로 대입
- 숫자 값을 가 변수로 대입
- 2개 이상의 값 넣기
- 이름으로 넣기
- 인덱스와 이름을 혼용해서 넣기
- 왼쪽 정렬
- 오른쪽 정렬
- 가운데 정렬
- 공백 채우기
- 소수점 표현하기
- { 또는 } 문자 표현하기
문자열 관련 함수들
문자 개수 세기 - count
위치 알려 주기 1 - find
* 찾는 문자가 존재하지 않으면 -1을 반환한다.
위치 알려 주기 2 - index
* 찾는 문자가 존재하지 않으면 오류가 발생한다.
문자열 삽입 - join
소문자를 대문자로 바꾸기 - upper
대문자를 소문자로 바꾸기 - lower
왼쪽 공백 지우기 - lstrip
오른쪽 공백 지우기 - rstrip
양쪽 공백 지우기 - strip
문자열 바꾸기 - replace
문자열 나누기 - split
* split 함수는 괄호 안에 아무 값도 넣어 주지 않으면 공백([Space]], [Tab], [Enter])을 기준으로 문자열을 나누어 준다.
리스트 자료형
# 리스트명 = [요소1, 요소2, 요소3, ...]
리스트의 인덱싱과 슬라이싱
리스트 연산하기
리스트의 수정과 삭제
* del 함수를 이용한다.
리스트 관련 함수
리스트에 요소 추가하기 - append
리스트 정렬 - sort
# 리스트의 요소를 순서대로 정렬해준다.
리스트 뒤집기 - reverse
인덱스 반환 - index
# index(x) 함수는 리스트에 x 값이 있으면 x의 인덱스 값(위칫값)을 리턴한다.
리스트에 요소 삽입 - insert
# insert(a, b)는 리스트의 a번째 위치에 b를 삽입하는 함수이다.
리스트 요소 제거 - remove
# remove(x)는 리스트에서 첫 번째로 나오는 x를 삭제하는 함수이다.
* 값이 여러개면 첫 번째 값만 제거된다.
리스트 요소 끄집어 내기 - pop
# pop()은 리스트의 맨 마지막 요소를 리턴하고 그 요소를 삭제하고 pop(x)는 리스트의 x번째 요소를 리턴하고 그 요소 삭제한다.
리스트에 포함된 요소 x의 개수 세기 - count
리스트 확장 - extend
# extend(x)에서 x에는 리스트만 올 수 있으며 원래의 a 리스트에 x 리스트를 더하게 된다.
튜플 자료형
# 튜플은 몇 가지 점을 제외하곤 리스트와 거의 유사하다. 다른 점은,
- 리스트는 [], 튜플은 ()으로 둘러싼다.
- 리스트는 요솟값의 생성, 삭제, 수정이 가능하지만, 튜플은 요솟값을 바꿀 수 없다.
* 튜플을 생성할 때 한가지 요소만 가진다면 요소 뒤에 쉼표(,)를 반드시 붙여야 한다.
딕셔너리 자료형
# 딕셔너리는 Key와 Value를 한 쌍으로 가지는 자료형이다. 리스트나 튜플처럼 순차적으로(sequential) 해당 요솟값을 구하지 않고 Key를 통해 Value를 얻는다.
# {Key1: Value1, Key2: Value2, Key3: Value3, ...}
딕셔너리 쌍 추가, 삭제하기
딕셔너리를 사용하는 방법
딕셔너리에서 Key를 사용해 Value 얻기
# 어떤 Key의 Value를 얻기 위해서는 '딕셔너리_변수_이름[Key]'를 사용해야 한다.
딕셔너리 만들 때 주의할 사항
# 중복되는 Key 값을 설정해 놓으면 하나를 제외한 나머지 것들이 모두 무시된다 -> 동일한 Key가 중복으로 존재할 수 없다.
# 리스트는 변할 수 있는 값이기에 Key에 리스트는 쓸 수 없지만 튜플은 쓸 수 있다. (but, Vaule에는 아무값이나 다 가능하다.)
딕셔너리 관련 함수
Key 리스트 만들기 - keys
* print(k)를 입력할 때 들여쓰기 주의
Value 리스트 만들기 - values
Key, Value 쌍 얻기 - items
# items 함수는 Key와 Value의 쌍을 튜플로 묶은 값을 dict_items 객체로 리턴한다.
Key: Value 쌍 모두 지우기 - clear
# clear 함수는 딕셔너리 안의 모든 요소를 삭제한다.
Key로 Value 얻기 - get
# get(x) 함수는 x라는 Key에 대응되는 Value를 리턴한다.
# 딕셔너리 안에 찾으려는 Key가 없을 경우, 미리 정해 둔 디폴트 값을 대신 가져오게 하고 싶을 때는 get(x, '디폴트 값')을 사용하면 편리하다.
해당 Key가 딕셔너리 안에 있는지 조사하기 - in
집합 자료형
# set 키워드
집합 자료형의 특징
- 중복을 허용하지 않는다. -> 데이터의 중복을 제거하기 위한 필터로 사용됨.
- 순서가 없다(Unordered). -> 인덱싱 불가능
교집합, 합집합, 차집합 구하기
집합 자료형 관련 함수
값 1개 추가하기 - add
값 여러 개 추가하기 - update
특정 값 제거하기 - remove
불 자료형
# 불(bool) 자료형이란 참(True)과 거짓(False)을 나타내는 자료형이다.
* True나 False는 파이썬의 예약어로, true, false와 같이 작성하면 안 되고 첫 문자를 항상 대문자로 작성해야 한다.
불 자료형 사용법
-> 두 변수의 자료형이 bool인 것을 확인할 수 있다.
# 조건문의 리턴값으로도 활용된다.
자료형의 참과 거짓
값 | 참 or 거짓 |
"python" | 참 |
"" | 거짓 |
[1, 2, 3] | 참 |
[] | 거짓 |
(1, 2, 3) | 참 |
() | 거짓 |
{'a': 1} | 참 |
{} | 거짓 |
1 | 참 |
0 | 거짓 |
None | 거짓 |
- 문자열, 리스트, 튜플, 딕셔너리 등의 값이 비어 있으면("", [], (), {}) 거짓이 되고 비어 있지 않으면 참이 된다.
- 숫자에서는 그 값이 0일 때 거짓이 된다.
- None은 거짓을 뜻한다.
불 연산
자료형의 값을 저장하는 공간, 변수
# 변수_이름 = 변수에_저장할_값
변수란?
-> 위 코드처럼 a = [1, 2, 3]이라고 하면 [1, 2, 3] 값을 가지는 리스트 데이터(객체)가 자동으로 메모리에 생성되고 변수 a는 [1, 2, 3] 리스트가 저장된 메모리의 주소를 가리키게 된다.
# 메모리 주소 확인
리스트를 복사하고자 할 때
-> [1, 2, 3]이라는 리스트 객체를 참조하는 변수가 a 변수 1개에서 b 변수가 추가되어 2개로 늘어났다. 즉, a가 가리키는 대상과 b가 가리키는 대상이 동일하다는 것이다.
그렇다면 b 변수를 생성할 때 a 변수의 값을 가져오면서 a와는 다른 주소를 가리키도록 만드는 방법은?
- [:] 이용하기
- copy 모듈 이용하기
변수를 만드는 여러 가지 방법
if문
# 조건을 판단하여 해당 조건에 맞는 상황을 수행하는 데 쓰는 것이 바로 if 문이다.
if 문의 기본 구조
if 조건문:
수행할_문장1
수행할_문장2
...
else:
수행할_문장A
수행할_문장B
....
* else 문은 if 문 없이 독립적으로 사용할 수 없다.
들여쓰기 방법 알아보기
# if 문을 만들 때는 if 조건문: 바로 다음 문장부터 if 문에 속하는 모든 문장에 같은 깊이로 들여쓰기(indentation)를 해야 한다.
조건문이란 무엇인가?
# if 조건문에서 ‘조건문’이란 참과 거짓을 판단하는 문장을 말한다.
비교연산자
x < y | x가 y보다 작다. |
x > y | x가 y보다 크다. |
x == y | x와 y가 같다. |
x != y | x와 y가 같지 않다. |
x >= y | x가 y보다 크거나 같다. |
x <= y | x가 y보다 작거나 같다. |
and, or, not
x and y | x와 y 모두 참이어야 참이다. |
not x | x가 거짓이면 참이다. |
x or y | x와 y 둘 중 하나만 참이어도 참이다. |
in, not in
x in 리스트 | x not in 리스트 |
x in 튜플 | x not in 튜플 |
x in 문자열 | x not in 문자열 |
# 조건문에서 아무 일도 하지 않게 설정하고 싶다면 pass를 사용한다.
다양한 조건을 판단하는 elif
# 다중 조건 판단을 가능하게 하는 elif
if 조건문:
수행할_문장1
수행할_문장2
...
elif 조건문:
수행할_문장1
수행할_문장2
...
elif 조건문:
수행할_문장1
수행할_문장2
...
else:
수행할_문장1
수행할_문장2
....
조건부 표현식
# 가독성에 유리하고 한 줄로 작성할 수 있어 활용성이 좋다.
변수 = 조건문이_참인_경우의_값 if 조건문 else 조건문이_거짓인_경우의_값
while문
# 문장을 반복해서 수행해야 할 경우 while 문을 사용한다. 그래서 while 문을 ‘반복문’이라고도 부른다.
while 문의 기본 구조
while 조건문:
수행할_문장1
수행할_문장2
수행할_문장3
...
* 조건문이 참인 동안 while 문에 속한 문장들이 반복해서 수행된다.
while 문 만들기
# 여러 가지 선택지 중 하나를 선택해서 입력받는 예제 만들기
# number가 4가 아닌 동안 prompt를 출력하고 사용자로부터 번호를 입력받는 코드
* 변수가 존재하지 않는다는 오류가 발생하는 걸 방지하기 위해 number 변수에 먼저 0을 대입한다.
# 4를 입력하면 조건문이 거짓이 되어 while 문을 빠져나간다.
while 문 강제로 빠져나가기
# while 문은 조건문이 참인 동안 계속 while 문 안의 내용을 반복적으로 수행한다. 만약 강제로 while 문을 빠져나가고 싶다면 break 문을 사용해야 한다.
# 커피 자판기 예제
* coffee를 10개로 설정하고 한 개를 시킬 때마다 coffee의 개수가 줄어들어 0이 되면 if coffee == 0: 문장이 참이 되어 break 문이 호출되고 while 문을 빠져나가게 된다.
# 실제 자판기 작동 과정 예제
# 결과 확인
while 문의 맨 처음으로 돌아가기
# while 문을 수행할 때 while 문을 빠져나가지 않고 while 문의 맨 처음으로 다시 돌아가게 만들고 싶다면 continue 문을 사용해야 한다.
# 1부터 10까지의 숫자 중에서 홀수만 출력하는 예제
* a가 10보다 작은 동안 a는 1씩 계속 증가하고 a가 짝수이면 continue 문을 수행한다. 즉, 짝수일 때는 print 문은 수행되지 않고 홀수일 때만 print 문이 수행된다.
무한 루프
while True:
수행할_문장1:
수행할_문장2:
...
* while 문의 조건문이 True이므로 항상 참이 된다. 따라서 while 문 안에 있는 문장들은 무한히 수행된다.
for문
for 문의 기본 구조
for 변수 in 리스트(또는 튜플, 문자열):
수행할_문장1
수행할_문장2
...
예제를 통해 for 문 이해하기
전형적인 for 문
다양한 for 문의 사용
for 문의 응용
# 시험 결과 조회 예제
for 문과 continue 문
for 문과 함께 자주 사용하는 range 함수
리스트 컴프리헨션 사용하기