[AIFFEL] 21.Dec.29 - Strings

Deok Jong Moon·2021년 12월 29일
0
post-thumbnail

*윗 썸네일은 내가 오늘 처음 본 csv 모듈
*학습한 내용을 줄줄이 쓰기 보단, 오답노트 개념으로서 작성합니다.(근데 모르는 게 너무 많아지고 있는.......)

오늘의 학습 리스트

1. LMS

  • 유니코드, UTF-8
  • 사람 언어 <-> 컴퓨터 언어(인코딩 / 디코딩) 용량이 민감하다면 UTF-8, UTF-16중에서 고민해야한다. 예) 영문자들로 가득찬 문서의 경우 UTF-8로 표현하면 대부분 1byte로 표현되고 UTF-16으로 표현하면 2byte로 표현되니 UTF-8이 유리하고, 한글의 경우 UTF-8은 3byte, UTF-16은 2byte로 표현되니 UTF-16이 유리하다.
    출처: https://pickykang.tistory.com/13 [삶, 금융, IT, 잡동사니]
  • 'str'.startswith('str'), 'str'.endswith('str')
    =>True or False value returned
EmployeeID = ['OB94382', 'OW34723', 'OB32308', 'OB83461','OB74830', 'OW37402', 'OW11235', 'OB82345'] 

OB_list = [P for P in EmployeeID if P.startswith('OB')]   # 'OB'로 시작하는 직원 ID를 다 찾아봅니다
OB_list
>>> ['OB94382', 'OB32308', 'OB83461', 'OB74830', 'OB82345']

# 'str'.startswith('str')은 원래 bool 값을 반환함
  • os.listdir()
    => Return a list containing the names of the files in the directory
  • 문자열 내 \r
    => 출력되던 줄 맨 앞으로 커서를 가져가서 \r 뒤부터 덮어씌움
print("여기는 안나옴 사실 중간이었어 \r사실뒤에있었어")
# '사실뒤에있었어'가 7개니까 맨 앞으로 가서 7개를 지우면서 '사실뒤에있었어'를 출력함

>>> 사실뒤에있었어 사실 중간이었어
  • 'str'.istitle()
    => string 내 모든 첫 글자가 대문자여야 True
  • 'str'.join(iterable)
    => 'str'이 구분자(delimiter)이고, 이걸 기준으로 iterable 내 요소들을 결합시켜줘!
    => 그래서 1개의 문자열을 반환시킴
  • mutable vs immutable
    o 정수 객체는 -5 ~ 256까지 다른 변수들이 같은 값을 가리키면 객체 자체도 같다.
    o 정규표현식 Regex 모듈
정규표현식 테스트하는 곳
정규표현식 구현 순서!
  1. import re로 모듈 불러오기
  2. re.compile()로 Regex 객체 만들기
  3. 검색할 문자열을 Regex 객체의 메소드(search(), findall() 등)로 전달하기
  • 파일 열고, 읽고 쓰는 법
    : open(파일명, 모드)
    : with open(파일명, 모드) as 변수:
    *여기서 커서 위치는 bytes단위로 계산된다

2. 풀잎스쿨

  • 리스트(list) 자료형
  • 튜플(tuple) 자료형
  1. tuple의 목적? 왜 있지?
    불변 객체로서 가변 객체(list)보다 용량을 더 적게 차지하니까...?
  2. packing, unpacking이 있음

    *리스트도 할 수 있음

set

  • 할당 연산자(|=, &=, 같은 게 수학 기호와 의미가 비슷해서 직관적이다)

  • 특징이 많지만, 생긴 이유는 수학적 집합을 표현하기 위한 것!

dictionary

  • key, value를 넣는 방법이 여러가지임(여태까지 dic[key] = value로만 알고 있었는데...)
    dic.update(key=value) # 여기서 key가 str일 경우 '' 안해줘도 됨
    dic.setdefault(key, value) # 이건 새로 추가하는 것만 되고, 오류는 안 나지만 수정하려 해도 안 됨
x = {'a': 90, 'b': 20, 'c': 30, 'd': 40} 
x.update(e=50) # e가 없으면 추가함, 있으면 업데이트함
x
>>> {'a': 90, 'b': 20, 'c': 30, 'd': 40, 'e': 50}

더 공부할 것

  • mutable / immutable objects
    : 자료형의 mutable / immutable 차이는 알겠는데, 그게 객체랑 연결되어서 변수가 바뀌고, 참조가 어떻게 되고 했을 때 결국 객체가 바뀌는지 안 바뀌는지는 좀 더 공부가 필요하다.
    ==> (21.Dec.30 업데이트)
2차원 일때mutableimmutable
copy.copy==(같은 id)==(같은 id)
copy.deepcopy!=(다른 id)==(같은 id)
profile
'어떻게든 자야겠어'라는 저 아이를 닮고 싶습니다

0개의 댓글

관련 채용 정보