샤인의 IT (막 적는) 메모장

[Python] 초보자도 간단히 단숨에 배우는 파이썬(책) 내용 정리 본문

Programming/Python

[Python] 초보자도 간단히 단숨에 배우는 파이썬(책) 내용 정리

신샤인 2022. 11. 9. 15:34
반응형

오랫만에 파이썬 보다보니 기본을 다질 필요가 있어 책을 보고 정리하였는데,

 

조인석님의 초간단 파이썬은 하루면 뚝-딱 할 수 있을 정도로 쉽게 정리가 잘 되어 있는 책인 것 같다.

 

또한, 처음 보는 사람도 몇일만 봐도 처음 시작해도 이해하기 좋을 정도로 심플하면서 딥하지 않게 그냥 보기 좋게 구성되어 있다.

 

뒷부분에 분석 관련해서 기본적인 사용하는 툴 Jupyter와 파이썬 라이브러리 설명이 나오는데 생략하였다.. (pandas, numpy, matplotlib)

 

파이썬 설치

brew info python

brew install python3

pyenv install 3.10.1

입력과 출력

# 입력은 input 출력은 print 함수를 사용한다.
x = 'Hello World'
print(x)

name = input('what is your name?')

print(name)
name = input('what is your name? ')
account_id = input('what is your account id? ')
email = input('what is your email address? ')

print('Name : ', name)
print('account id : ', account_id)
print('email : ', email)

문자열

# 작은 따옴표 혹은 큰 따옴표 기호로 감싸야 함
# 기본적으로 작은 따옴표를 많이 사용한다고 함.

# 특수 기호를 넣을 때는 백슬래시를 사용
print('Hello \\'World\\'')

# 문자열을 여러줄 표시할 경우
# """ ''' 로 표현한다
# 중요한 점은 """ 부터 첫째줄로 시작해서 다음줄로 넘어갈 경우 첫줄은 공백

text = """첫번째 줄
두번째 줄
세번째 줄"""
print(text)

# 문자열 수 출력할 경우 len() 함수 사용

# 문자열을 더하거나 반복할 경우 +,*로 가능함
텍스트 = '훈민정음'
print(텍스트 + '입니다.')
print(텍스트 * 5)

# f스트링 사용하기
name = input('what is your name?')
message = f'my name is {name}'
print(message)

숫자

# 정수 + 정수 = 정수
# 정수 + 실수 = 실수

# + - * / //(몫) %(나머지) 
# =는 대입연산자로 수학적 기호 같다와는 의미가 다름, 대입이라 생각하면 될 듯

# 변수명을 지정할 때 소문자와 _(언더 스코어)로 대부분 지정

# 주의해야할 경우! 문자열을 연산할 경우
x = input('input your number : ')
print(float(x) + 100)

# 문자형을 바꿀 경우 int(), float(), str() 등등을 이용하자!

논리연산

# < > <= >= == != 논리연산자

# if문 사용법
if 조건:
  조건이 맞을 경우 실행할 코드

# if 예제
# if문을 사용할 때는 보통 else를 사용하는 것이 좋다
x = True
if x == True:
    print('This is True!')
else:
    print('This is not True!')

# 조건을 정교하게 사용할 경우 if elif else 사용하기
x = input('input Y/N')
if x == 'Y':
  print('This is Y')
elif x == 'N':
  print('This is N')
else:
  print('not valid character!')

반복

# while 반복문
# 중요한점은 while 반복 조건인데 어떠한 조건이 만족할 때까지로 정의해야 함.

while 반복 조건:
  if:
	  조건 코드
  else:

# continue 반복문의 처음으로 다시 돌려보냄

# break 문은 while 반복문을 빠져 나올 때 사용한다.

# for문은 특정 원하는 횟수나 범위만큼 실행할 경우 사용함
# range()를 통해서 특정 범위 설정, 사용 범위 주의! 1보다 작음 0부터 시작임
# break, continue 구문도 조건에 넣어서 반복시킬 수 있음.
for word in '안녕하세요.':
    print(word)

for i in range(10):
  print(i)
has_owner = ''

while has_owner != '예':
    is_space = input('우주 정거장에 도착했나요? (예/아니오)')

    if is_space == '예':
        print('처음으로 돌아갑니다.')
        continue

    has_owner = input('땅 주인이 있나요? (예/아니오)')

    if has_owner == '예':
        print('통행료를 지불하세요.')
    else:
        print('야호 그냥 통과!')
        print('주사위를 던져서 다음 땅으로 이동하세요')

print('프로그램을 종료합니다.')

for x in range(1, 10):
  for y in range(1,10):
    print(x, 'X', y, '=', x*y)

데이터 나열

# 튜플과 리스트를 통해 데이터를 나열할 수 있음

# 튜플은 ()에 데이터를 나열한 값, 변경이 불가능 함. 인덱스 표기할 경우 0,1,2,3 / -4,-3,-2,-1로 표기함

# len() 함수를 통해 배열의 수를 확인할 수 있음

# 튜플을 언패킹 하는 방법
number = (1,2,3,4)
one, two, three, four = number

# 리스트도 튜플과 비슷하지만 데이터를 변경할 수 있음 []를 사용
# 리스트에 데이터를 추가할 경우 append()를 통하여 데이터 추가
mydata.append(5)

# 리스트에 데이터를 삭제할 경우
mydata.remove(5)

# 리스트 특정 위치에 데이터를 추가할 경우 insert() 사용
# 인덱스 4번에 5 정수를 추가하는 예제
mydata,insert(4, 5)

# 리스트에서 특정 데이터를 빼낼 경우 pop() 사용
# 인덱스 4번 데이터를 뺴내는 예제
mydata.pop(4)

# 리스트 내 데이터를 정렬할 경우 sort()를 사용하며 기본적으로 오름차순, sort(reverse=True)는 내림차순으로 정렬
# 리스트에 모든 데이터를 제거할 경우 clear() 함수 사용

# 기본적으로 튜플은 서로 다른 타입의 데이터를 저장할 때 사용하며, 리스트는 동일한 자료형을 표현할 때 사용한다.

리스트 가지고 놀기

# 리스트를 자를 경우 변수에 [:]를 통하여 데이터를 자름
# 리스트의 1번 인덱스부터 시작하여 3번 인덱스보다 작은 데이터를 출력
data[1:3]

# 리스트의 1번부터 끝까지 출력
data[1:]

# 리스트의 1번까지 출력
data[:1]

# 새 변수에 리스트를 저장할 경우
mydata = data
mydata = data[:]

#리스트를 합칠 경우 + 연산자를 통하여 두 리스트를 합친다 또는 extend() 함수를 사용한다.
# 새로운 변수로 저장할 경우 연산 기호를 사용하지만 기존 변수의 데이터만 사용할 경우 extend() 사용
list = a + b
list = a.extend(b)

# 중첩 리스트는 리스트 안에 리스트가 들어간 방식
# 중첩 리스트 표현은 c[0][1] c[1][1] 이런식으로 표현 함.
# c의 출력값은 [[1,2],[3,4]]
a = [1,2]
b = [3,4]
c = a + b

#중첩 리스트는 for문과 아주 잘 사용한다..
for day_work in total_work:
  for each_work in day_work:
     print(each_work)

#변수에 저장된 리스트 데이터를 삭제할 경우 del을 사용함
del score[2]

#빈 리스트를 만들 경우
data = []
data = list()

세트와 딕셔너리

# 세트는 데이터 중복을 허용하지 않고 순서가 없는 데이터 타입으로 {}로 감싸서 사용
a = {1,2,3,4}
# 세트에 동일하게 값을 넣을 경우에 중복은 제거되고 표시됨.

# 빈세트를 만들 경우 set() 함수를 이용

# 세트에 데이터를 추가할 경우 add() 함수를 이용

# 세트에 항목 존제 유무를 확인할 경우 in 을 사용함

# 세트 내 데이터를 삭제할 경우 remove() 함수를 사용
# discard() 함수는 remove()와 비슷하지만 에러를 출력하지 않음

# 임의 항목 추출 시 pop() 함수 사용
# 세트 내 모든 데이터 제거 시 clear() 함수 사용

# 집합 연산 시 -, | , & , ^(여집합) 사용

# 딕셔너리는 정렬되지 않은 키:값 쌍으로 구성된 데이터 모음
programmer = {'Python':14, 'Java':9, 'C++':2}

# 항목 수 확인 시 len() 함수 사용
# 값 변경 시 혹은 데이터 추가 시
programmer['Python'] = 15
programmer['C'] = 5

# 딕셔너리의 키와 값 확인 시 keys(), values() 함수 사용
# 예로 키를 리스트로 변경 시
key_programmer = list(programmers.keys())

# 딕셔너리 항목 존재 확인 in
'Python' in programmer
# 딕셔너리 데이터 삭제 del
del programmer['C']

# 튜플을 딕셔너리로 바꿀 경우 dict()
dict([('Python', 10), ('Java', 9), ('C++', 2)])

# 리스트, 튜플, 딕셔너리 정렬 시 sorted() 함수를 사용한다.
sorted(progammer)
sorted(progammer, reverse=True)

# sort() 와 sorted()의 차이점은 sort는 기존 데이터를 변경하지만 sorted는 변경된 데이터를 새로 만들어줌
# 

코드 재사용

# 함수 사용법
def func():
  코드 입력

def add():
  return a+b

# 인수를 추가하거나 반환 return을 사용하여 지정할 수 있음

# 클래스와 객체
# 클래스는 여러 개의 변수와 함수들을 모아 재사용 할 수 있는 기능을 제공
# 객체는 클래스의 유일한 식별자를 가지고 생성됨
# 클래스 안의 변수는 속성, 함수는 메소드라고 부름

# 클래스 사용법
class myClass():
  코드 입력

# 클래스를 표기할 때는 단일이름으로 사용하며 언더스코어 기호를 이용하지 않음

# 클래스 초기화
class myClass():
  def __init__(self, name):
    self.name = name

# 클래스 변수는 클래스 안에 전부 동일한 변수 값을 가지며, 인스턴스 변수는 입력값에 따라 바뀜

# 모듈을 import를 사용하여 불러옴
# 모듈을 만들어 사용하고 싶다면 파이썬 설치경로에해당 py파일을 이동하여 import
# 모듈 경로가 변경되었을 때 재시작 없이 바로 업데이트 하는 방법
import imp
imp.reload(mymodule)

데이터 분석 맛보기

# 기존 데이터를 생성할 때 제어문을 사용하여 리스트를 만들 경우
squares = []
for x in range(10):
  squares.append(x**2)

#바로 만드는 방법
squares = [ x**2 for x in range(10)]

# 중첩으로 만들 경우
# 튜플로 저장 됨
items = '가위', '바위', '보'
result = []
for a in items:
  for b in items:
    if a != b:
      result.append((a,b))

# 결과 (a,b)를 소괄호로 묶어야 함
result = [(a,b) for a in items for b in items if a!=b]

#세트도 동일 함
a = {x for x in 'abracadabra' if x not in 'abc'}

#딕셔너리
squares = {}
for x in (2,4,6):
  squares[x] = x**2

squares = {x: x**2 for x in (2,4,6)}

#random() 함수 사용
import random as rd
rd.ramdomrange(10)

#나머지는 데이터 분석 numpy, pandas, matploglib 등등..
반응형

'Programming > Python' 카테고리의 다른 글

[Python] 함수  (0) 2021.04.06
[Python] 제어문  (0) 2021.03.26
[Python] 조건문  (0) 2021.03.26
[Python] 문자열 관련 인덱싱 및 슬라이싱  (0) 2021.03.26
[Python] 연산자  (0) 2021.03.26
Comments