2023. 11. 20. 20:51ㆍStudy/AI
이 글은 공부 인증 겸 새롭게 배운 내용을 기록하는게 목적이기도 하고
예전에 공부했던 내용이 겹치기 때문에
내용이 정리되어 보이지는 않을 것이다.
쨋든 두 번째 수업에 대한 내용을 정리해보겠다.
string
컴퓨터는 2진수로 데이터를 저장한다.
1 bit는 0 또는 1이다.
1 byte= 8bit=2^8=256까지 저장 가능
대문자 U는 이진수로 "1000011"변환됨 (UTF-8기준)
사실은 잘 이해가지 않아서 메모리에 대한 내용은 따로 빼서 공부할 예정
메모리에 대한 결론은 데이터 타입이 메모리에 영향을 준다는 사실
인덱싱(indexing)
문자열에서 각 문자들은 개별 주소(offset)을 가지는데
이 주소에 할당된 값들을 가져오는 것
슬라이싱(slicing)
주소값으로 문자열을 나누는 것
문자열 관련된 함수들
처음보는 함수들은 isdigit(), islower(),isupper() 등이 있었다.
필요한 함수들이 있을 때만 구글에서 찾아서 사용하면 돼서
딱히 암기할 필요는 없지만 이번 수업에서 어떻게 사용했지만 간단하게 언급하겠다.
isdigit() -> 숫자인지 아닌지 확인해준다.
islower() -> 소문자인지 여부 확인
isupper() -> 대문자인지 여부 확인
위 함수들을 사용해서 Yesterday와 yesterday의 개수를 각각 구하는 코드를 작성하였다.
여기에서 공부할 수 있었던 부분은 파일을 읽어오는 부분과 count함수의 사용
그리고 if not line 부분이다.
파이썬 w/r/a
count 함수와 find 함수가 비슷하게 느껴질 수 있는데
count 함수는 문자열의 개수를 세어주고
find 함수는 문자열의 위치 즉 인덱스를 반환해준다.
if not line의 추가 설명
우선 not line이 참이어야 if문이 실행이 되는데
not line이 참이되기 위해서는 line이 False가 되어야한다.
line이 빈칸이 되면 Flase가 된다는 사실!!
그렇다면 line에 더이상 문자열이 없으면 if 문이 실행되어 while문이 종료된다.
또 break문의 영향이 while문을 멈추게 한다는 사실
이 코드를 직접 작성하면서 공부할 수 있는 부분이 많았다.
raw string
특수문자 특수 기호인 ₩ escape 글자를 무시하고 그대로 출력
call by object reference
(1) call by value
(2) call by Reference
(3) call by Object Reference
call by object Reference에 대한 내용은 예시로 보았을 때
이해가 되었다.
출력값은 [0,1,5]이다.
2번째 줄에 eggs가 기존 객체로 이 주소에 [1]이 추가된다.
새로운 객체는 3번째 줄에 eggs로 호출자에 영향을 주지 않는다.
위와 같이 ham과 eggs는 같은 주소를 가리키고 있다.
eggs의 새로운 객체가 생겨나자 ham과 같은 주소를 가지고 있던 eggs가 끊기고
[2,3] list의 주소로 옮겨간다.
swap
함수를 통해 변수가 간의 값을 교환하는 함수를 의미한다.
function-scoping rule
지역변수와 전역변수가 있다.
지역 변수는 함수내에서만 사용되는 변수이고
전역변수는 프로그램전체에서 사용되는 변수이다.
함수 내에서 전역변수를 사용하고 싶으면 global을 사용하면 된다.
recursive function
재귀함수 : 자기자신을 호출하는 함수
function type hint/ docstring
function type hint는 위에 (x: int, y:int) -> int를 사용하여 function type을 보여줄 수 있다.
docstirng을 vs code에서 install해서 """ ...."""와 같이 쉽게 함수 내용을 정리할 수 있다.
코딩 컨벤션
코딩 컨벤션을 위해서 black 모듈을 사용하면 된다.
추가 내용
-참고로 명령 프롬프트에서 명령 내용 모두 지우고
싶을 때는 cls를 사용하자
-명령 프롬프트에 cat 파일명.txt를 사용하면 내용을 읽어올 수 있다.
느낀점
파이썬 문법을 잘 익혀서 생각을 코드로 옮기는 건 개발자의 필수 능력이다.
이러한 능력에 매몰되어 좋은 코드에 대한 공부를 놓칠 수 있다.
그렇지 않기 위해서는 좋은 코드를 처음부터 만들 수 있도록 신경쓰는게 필요하다.
'Study > AI' 카테고리의 다른 글
Python data structure (1) | 2023.11.21 |
---|---|
conditional_and_loops (2) | 2023.11.20 |