내용정리

점프 투 파이썬

suuuullloc 2023. 10. 13. 16:50

# 교재 : 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


파이썬으로 할 수 있는 일

  1. 웹 프로그래밍
  2. 인공지능과 머신러닝
  3. 수치 연산 프로그래밍
  4. 데이터 분석
  5. 데이터베이스 프로그래밍
  6. 시스템 유틸리티 제작하기
  7. GUI 프로그래밍
  8. C/C++와 결합하기
  9. 사물 인터넷

 

파이썬 둘러보기

파이썬 대화형 인터프리터

 

변수에 문자 대입하고 출력하기

 

조건문 if

* 들여쓰기를 한 후 print문을 작성해야 한다.

 

함수

* def는 파이썬에서 함수를 정의할 때 사용하는 예약어이다.

 

파이썬과 에디터

* #는 주석을 작성할 때 사용한다.

 

* 주석을 여러줄 작성하고 싶을 땐 """ """ 사이에 작성하면 된다.

 

cmd 창에서 실행하기


숫자형

사칙 연산

 

x의 y제곱을 나타내는 ** 연산자

 

나눗셈 후 나머지를 리턴하는 % 연산자

 

나눗셈 후 몫을 리턴하는 // 연산자

* // 연산자를 사용하면 정숫값만 리턴된다.

 

문자열 자료형

# 문자열(string)이란 문자, 단어 등으로 구성된 문자들의 집합을 말한다.

 

문자열 만드는 방법

  1. 큰따옴표로 양쪽 둘러싸기
  2. 작은따옴표로 양쪽 둘러싸기
  3. 큰따옴표 3개를 연속으로 써서 양쪽 둘러싸기
  4. 작은따옴표 3개를 연속으로 써서 양쪽 둘러싸기

 

문자열 안에 작은따옴표나 큰따옴표를 포함시키고 싶을 때

 

여러 줄인 문자열을 변수에 대입하고 싶을 때

  1. 줄을 바꾸기 위한 이스케이프 코드 \n 삽입하기
  2. 연속된 작은따옴표 3개 또는 큰따옴표 3개 사용하기

 

# 이스케이프 코드

\n 문자열 안에서 줄을 바꿀 때 사용
\t 문자열 사이에 탭 간격을 줄 때 사용
\\ \를 그대로 표현할 때 사용
\' 작은따옴표(')를 그대로 표현할 때 사용
\" 큰따옴표(")를 그대로 표현할 때 사용

 

문자열 연산하기

문자열 더해서 연결하기

 

문자열 곱하기

 

문자열 곱하기를 응용하기

 

문자열 길이 구하기

# 문자열의 길이는 len 함수를 이용하면 구할 수 있다.

* 문자열의 길이에는 공백 문자도 포함된다.

 

문자열 인덱싱과 슬라이싱

인덱싱

* 파이썬은 0부터 숫자를 센다.

* a[-n]은 뒤에서부터 세어 n번째가 되는 문자를 말한다.

 

슬라이싱

* a[시작_번호:끝_번호]를 지정할 때 끝 번호에 해당하는 문자는 포함하지 않는다.

 

문자열 포매팅

  1. 숫자 바로 대입
  2. 문자열 바로 대입
  3. 숫자 값을 나타내는 변수로 대입
  4. 2개 이상의 값 넣기

 

문자열 포맷 코드

%s 문자열(String)
%c 문자 1개(character)
%d 정수(Integer)
%f 부동소수(floating-point)
%o 8진수
%x 16진수
%% Literal % (문자 % 자체)

* %% 사용법 숙지

 

포맷 코드와 숫자 함께 사용하기

정렬과 공백

 

소수점 표현하기

* 소수점 포인트 뒤의 숫자는 소수점 뒤에 나올 숫자의 개수를 말하고 앞의 숫자는 문자열의 전체 길이를 의미한다.

 

format 함수를 사용한 포매팅

  1. 숫자 바로 대입
  2. 문자열 바로 대입
  3. 숫자 값을 가 변수로 대입
  4. 2개 이상의 값 넣기
  5. 이름으로 넣기
  6. 인덱스와 이름을 혼용해서 넣기
  7. 왼쪽 정렬
  8. 오른쪽 정렬
  9. 가운데 정렬
  10. 공백 채우기
  11. 소수점 표현하기
  12. { 또는 } 문자 표현하기

 

문자열 관련 함수들

문자 개수 세기 - 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)를 입력할 때 들여쓰기 주의

dict_keys 객체를 리스트로 변환

 

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와는 다른 주소를 가리키도록 만드는 방법은?

  1. [:] 이용하기
  2. copy 모듈 이용하기

[:] 이용하기
copy 모듈 이용하기

 

변수를 만드는 여러 가지 방법

튜플로 a, b에 값 대입하기
리스트로 변수 만들기
여러 개의 변수에 같은 값 대입하기


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 함수

 

 

리스트 컴프리헨션 사용하기