0812 TIL

potato·2021년 8월 12일
0

차례
1. 파이썬의 자료형
문자열, 리스트, 튜플



🪴 문자열

🌱 문자열 - 내장함수

내장함수 : 파이썬이 기본적으로 제공하는 함수


🌱 함수

  • count
    특정 문자의 개수를 반환

  • find

    • 특정 문자의 인덱스를 반환 (가장 처음 만난 인덱스만! 반환)
    • 특정 문자 없으면 '-1' 반환
  • index

    • 특정 문자의 인덱스를 반환 (find 와 다르다!)
    • 특정 문자가 없으면 그냥 에러가 남
      ➡️ 에러를 처리할 수 없다.
  • join
    문자 사이에 입력한 문자를 삽입

  • upper
    대문자로 변환한 값 반환

  • lower
    소문자로 변환한 값 반환

  • replace
    문자열을 치환한 결과 반환

    • 문자열.replace('원래문자열', '바꿀문자열')
    • 문자열.replace('원래문자열', '') : 원래 문자열 부분 삭제 가능
  • split
    문자열 나눈 결과 반환

    • 문자열.split(' ') : 해당 문자열을 공백으로 나눠 리스트로 만든다.

주로 strip 쓴다.

다른 곳에서 가져온 데이터의 공백 지울 때 많이 사용

  • lstrip
    왼쪽 공백 제거한 값 반환

  • rstrip
    오른쪽 공백 제거한 값 반환

  • strip
    양쪽 공백 제거한 값 반환



🪴 리스트 [ ]

  • 다양한 종류의 데이터의 모음을 담기 위한 자료형
  • 데이터의 추가, 삭제, 수정 ⭕️
  • 중복된 데이터 ⭕️
  • 인덱싱으로 데이터 다룰 수 ⭕️

🌱 연산

  • 더하기
    더한 리스트 2개를 합친다.
    합칠 때는 앞쪽 리스트 원소가 먼저 배치된다.
a = [1,2,3]
b = [6,7,8]
c = a + b
print(c)
[1,2,3,6,7,8]
  • 곱하기
    n(숫자) 곱한 만큼 리스트 반복된다.
a = [1,2,3]
b = a * 3
print(b)
[1,2,3,1,2,3,1,2,3]

🌱 인덱싱, 슬라이싱

둘 다 문자열과 같은 원리다!

  • 추가 사항 - 인덱싱
a = [0, ['123', 'apple'], [0,6,3]]
print(a[1][0])
# 2번째 원소의 첫번째 원소 값 출력
  • 인덱싱으로 삭제
del(data[0])
# del() 함수 써서 data 리스트의 1번째 원소 삭제

🌱 내장 함수 - 추가

  • append
    요소를 맨 뒤에 추가

  • sort
    요소들을 정렬
    원래 리스트가 정렬 된 후의 리스트로 바뀐다.
    ➡️ 원본 변형

  • reverse
    요소들을 뒤집음(맨 뒤 ▶️ 맨 앞)

  • index
    입력 값의 첫번째로 찾은 인덱스 반환
    입력 값이 리스트 내에 없으면 에러가 난다.

  • insert
    원하는 위치에 요소를 추가

list.insert(index, 원하는요소)
  • remove
    입력 값을 삭제 (첫번째로 찾은 위치의 값 삭제!)

  • pop
    마지막 요소를 꺼내고 삭제 ➡️ 마지막 요소와 해당 요소 삭제한 리스트 둘 다 출력
    ➡️ 원본 변형

  • count
    입력 값의 갯수



🪴 튜플 ( )

리스트와 매우 흡사하지만, 리스트와 달리 수정, 삭제, 추가가 ❌
➡️ only read!!

  • only read임에도 사용하는 이유
    1. 실수 방지 : 변경하면 안 되는 값 보호 ⭕️
    2. 내부적으로 성능이 더 좋다
  • 연산, 인덱싱, 슬라이싱, 내장함수(값 변경/수정/추가/삭제하는 함수 제외) 리스트와 동일!


🪴 딕셔너리 { }

키와 값으로 이루어진 자료형

{'key' : 'value', 'key2' : 'value2'}
  • 연산, 슬라이싱 지원하지 않는다.
    슬라이싱 : 인덱스 없기 때문

  • 인덱싱 지원!

dict['key']
  • 인덱싱으로 삭제 ⭕️
del(dict['key'])

🌱 내장 함수

  • keys
    딕셔너리의 key들을 리스트 형태로 반환
dict.keys() 
  • values
    딕셔너리의 value들을 리스트 형태로 반환
dict.values() 
  • items
    key, value 쌍을 리스트 안에 튜플의 형태로 반환
dict.items() 

# 결과 값
[('a', 123)]
  • get
    key에 대한 값을 반환 (값 X 경우, 기본값 지정 가능)
dict = {'a' : 123, 'b' : 'apple'}

# 'c' key가 없기 때문에 'c' 키의 값을 지정할 수 있다.
dict.get('c', 500) 

# 결과 값
500

# 이미 있는 키에 기본값 지정해도 원래 있던 값이 출력된다.
dict.get('a', 800) 

# 결과 값
123
  • 값 추가 / 수정
# 값 추가
dict = {'a' : 123, 'b' : 'apple'}
dict['c'] = 300
# dict 
dict = {'a' : 123, 'b' : 'apple', 'c' : 300}

# 수정
dict['a'] = 150
#dict 
dict = {'a' : 150, 'b' : 'apple', 'c' : 300}



🪴 조건문

조건문, 반복문은 제어문이다.
➡️ 제어문이란? "무엇을 어떻게 해줘!" 에서 어떻게에 해당하는 부분

🌱 if문

  • if문 필요한 경우
    조건에 해당하는 부분만 얻고 싶을 때
    ex) 엑셀 필드 중 결제 상태가 '결제완료'인 사람만 뽑을 때

  • if / elif / else

if 조건문:
	실행할 문장
elif 조건문:
	실행할 문장
else:
	실행할 문장

들여쓰기 매우 중요함! ➡️ 영역구분
탭/space든 한 번 썼던 걸로 계속 써야한다!


🌱 자료형 별 참 거짓

문자열, 리스트, 튜플, 딕셔너리의 경우 빈 자료형만 아니면 참!!

거짓
숫자형0이 아닌 수0
문자열빈 문자열이 아닌 문자열""
리스트빈 리스트가 아닌 리스트[]
튜플빈 튜플이 아닌 튜플()
딕셔너리빈 딕셔너리가 아닌 딕셔너리{}

🌱 비교 연산자

JS와 동일하다
다만, 같다 == (= 2개) / 다르다 != (= 1개)

🌱 그 외 연산자

  • and

  • or

  • not

  • x in 리스트, 튜플, 문자열, 딕셔너리
    x가 자료형 안에 존재하면 참

  • x not in 리스트, 튜플, 문자열, 딕셔너리
    x가 자료형 안에 존재하지 X면 참




🪴 반복문

🌱 for문

  • 이럴 때 필요함!
  1. 원하는 횟수만큼 반복할 때
  2. 반복해야할 데이터가 이미 있을 때
  • 문법
for 변수명 in 리스트, 튜플, 문자열:
	실행할 문장

문자열 또한 데이터 set이기 때문에 for in 사용 가능
for in : 데이터 set에서 데이터 하나 하나씩 데이터 갯수만큼 반복


  • range 함수
    n번 반복을 위해 range 함수 사용!
    range(n) : [0,1,2, ... , n-1] => 0 ~ n-1까지 생성해줌!
// looper가 100번 돈다.
for looper in range(100):
	print(looper)

🌱 딕셔너리 반복문

내장함수를 사용!

  • keys
  • values
  • items

🌱 while문

특정 조건을 만족하는 동안 계속 반복

while 조건문:
	실행할 문장
  • input 함수
    사용자가 입력한 내용을 받는 함수
# input() : ()안의 내용이 화면에 뜬다
# 사용자가 입력한 내용은 input 함수에 의해 user_input 변수에 저장된다.
user_input = input('Input : ')
print(user_input)

🌱 반복문에서 쓰이는 break, continue

break, continue는 주로 조건문, 반복문과 함께 쓰인다.

  • break
    반복문에서 빠져 나오는 구문
    break 만난 부분에서 프로그램이 종료된다.

  • continue
    반복문에서 뒤 문장을 건너 뛰는 구문
    ➡️ continue 뒤의 코드를 실행하지 X, 다음 조건 실행한다.




🪴 함수

  • 함수란?
    입력 값을 받아 특정 작업 수행한 후 결과 값 준다!
    (입력 값, 결과 값 없을 수도 있다!)

  • 함수 없다면?
    같은 내용/동작 반복될 경우 일일히 다 작성 ➡️ 효율 떨어짐

  • 문법

    • 함수 호출 되기 전까지 함수 안의 코드들은 실행이 X
    • 함수 호출 되기 전에 함수를 먼저 만들어야 한다!!
      ➡️ 함수 호출 방법 : 함수() ◀️ 괄호 꼭 붙여야 함!
    • 입력 값은 함수 안에서 변수로 사용된다.
def 함수이름 (입력값변수, 입력값변수2 ... ):
	실행할 코드

공백 중요!!


🌱 return 반환하는 함수

함수에서 값을 반환하려면 return 사용
함수 내에서 return 만나면 함수는 그 즉시 종료된다!
➡️ return은 함수의 끝이라 볼 수 있다.

🌱 반환하지 X 함수 (return 뒤에 아무것도 안 쓰는 함수 ➡️ return만 씀)

반환 값 필요 없이 함수 내 코드만 수행 원할 때
➡️ 함수 종료하는 의미로만 사용

  • return 사용 가능
  1. 아무 값 없이 return만 사용 가능
  2. 함수 빠져나갈 때 사용 가능
def print_filter(string):
    if 'skip' in string:
        print('Skip')
    return
    
    print(string)

user_input = ''
while user_input != 'quit':
    user_input = input('Input: ')
    print_filter(user_input)

🌱 내장 함수

파이썬 기본 내장 함수

  • int
    문자열 변수를 숫자형으로 변환해 반환

  • str
    숫자형 변수를 문자열로 변환해 반환

  • list
    문자열, 튜플 변수를 리스트로 변환해 반환

  • tuple
    문자열, 리스트 변수를 tuple로 변환해 반환

int()
str()
list()
tuple()

# tuple(), list()
str_var = 'alghost'
list_var = [1, 2, 3]
tup_var = (1, 2, 3)
tup1_var = (1, 2, 3, 'apple')

print(tuple(str_var))
print(tuple(list_var))
print(list(tup_var))
print(list(tup1_var))


# 결과 값

#튜플로 변환시 문자열은 문자 하나 하나가 원소가 된다.
('a', 'l', 'g', 'h', 'o', 's', 't')  

(1, 2, 3)
[1, 2, 3]
[1, 2, 3, 'apple'] 

자주 쓰이는 내장 함수

  • len
    변수의 길이를 반환(숫자형 변수 X)

  • input
    사용자로부터 문자열을 입력 받음

  • range
    리스트를 만들어주는 함수
    range는 range(시작숫자, 종료숫자, step)의 형태로 리스트 슬라이싱과 유사.
    range의 결과는 시작숫자부터 종료숫자 바로 앞 숫자까지 리스트를 만든다.
    시작숫자와 step은 생략가능하다!

최댓, 최솟값 구할 땐 데이터 set의 원소가 다 같은 종류의 자료형으로 이루어져 있어야 한다.

  • max
    리스트, 튜플, 문자열에서 최댓값 반환
    => 데이터 set에서 최댓값 반환

  • min
    리스트, 튜플, 문자열에서 최솟값 반환
    => 데이터 set에서 최솟값 반환

len()
input()
range()

# 최댓, 최솟값 구할 땐 데이터 set이 다 같은 종류의 자료형으로 이루어져 있어야 한다.
max()
min()

# print(max(list_var3)) -> X : 리스트의 원소의 자료형이 통일되어 있지 않기 때문
list_var3 = ['a', 100, 'b']

# a에 가까울 수록 작은 것이라고 생각한다. a에서 멀 수록 큰 것
list_var4 = ['abc', 'abcd', 'aaa']

0개의 댓글