본문 바로가기

TIL

(18)
[TIL] #10. Function Parameters Parameter Parameter 정의할 때 발생하는 문제들 1. 함수를 정의할 때 default value parameter를 non-default value parameter 앞에 정의하면 안되는 이유 def multiply(a=2,b): print(a*b) >> multiply(2) 메소드를 위와 같이 정의하면 SyntaxError: non-default argument follows default argument 가 발생한다. 그 이유는 만약에 메소드를 호출할 때 인자값을 1개만 전달하면 생략된 인자가 a 인지 b 인지 알 수가 없다. 따라서 b 에도 기본값을 지정해주거나 기본값을 지정해준 인자를 맨 뒤로 이동시켜 메소드를 정의하면 문제를 해결할 수 있다. def multiply(a,b=2): ..
[TIL] #9. Python 기초 문법 Print 화면에 출력할 때 사용 >> print("wecode") wecode Data Type 데이터 타입은 자료형을 의미. 문자인지 숫자인지 등. String 문자열 자료. '' 또는 "" 으로 감싸면 문자열을 나타냄. Integer 정수형 자료. Float 실수형 자료. 부동소수점으로 표기. Complex Number 복소수 자료. Boolean 논리 자료. True 또는 False. Variable 어떤 값을 저장하고 있는 '명사' = 연산자로 변수에 값을 할당한다. 변수 이름 규칙 알파벳, 숫자, _(underscore)로만 구성(공백 불가) 첫글자에는 숫자X 알파벳 대소문자 구분 Math Expression 숫자 연산에 사용 연산자 종류 + : 더하기 - : 빼기 * : 곱하기 / : 나누기..
[TIL] #8. HTML&CSS - 레이아웃 레이아웃 레이아웃(layout)을 만든다는 것은 웹 페이지를 어떻게 구성할 지를 정하고 컨텐츠를 배치할 공간을 나누는 작업이라고 할 수 있다. 즉, 웹 페이지의 밑그림을 그리는 작업이라고 할 수 있다. 내 경험상(적은 경험이지만 자기소개 페이지 만들때;) 레이아웃을 만드는 일이 가장 중요하고 생각보다 어려운 일인것 같다. 물론 웹 페이지에서 사용하는 레이아웃은 어느 정도 일반화된 레이아웃이 몇 가지 있겠지만 새롭고 효과적인 레이아웃을 만드는 것은 어려운 작업일 것 같다. 레이아웃은 CSS의 여러 속성들을 사용하여 구성할 수 있는데 대표적으로 position, display , float 이 있다. 계속 헷갈리는 개념이기 때문에 확실히 정리하고 반복적으로 사용해봐야 제대로 사용할 수 있을것 같다. posi..
[TIL] #7. Semantic Web, Semantic Tag Semantic Web, Semantic Tag 정의 시맨틱 웹(Semantic Web)을 직역하면 '의미론적인 웹'이다. 웹이 의미론적으로 구성되어 있는 것을 말하는데 위키백과의 정의를 보면 다음과 같이 나와있다. 시맨틱 웹은 '의미론적인 웹' 이라는 뜻으로, 현재의 인터넷과 같은 분산환경에서 리소스(웹 문서, 각종 파일, 서비스 등)에 대한 정보와 자원 사이의 관계-의미 정보(Semanteme)를 컴퓨터가 처리할 수 있는 온톨로지 형태로 표현하고 이를 자동화된 컴퓨터가 처리하도록 하는 프레임워크이자 기술. 컴퓨터는 어떤 정보가 있을때 그 정보의 의미를 해석할 수 없다. 예를 들어, "바나나", "노란색"이라는 문자열 데이터가 있을때 컴퓨터는 문자열 그대로 "바나나", "노..
[TIL] #6. HTTP HTTP란? HyperText Transfer Protocol의 약자. 웹에서 서버와 클라이언트 간 통신을 하기 위한 규약(메세지 형태). 웹에서 일어나는 모든 데이터 교환의 기초. 전통적인 클라이언트-서버 모델. request와 response로 동작. 클라이언트가 서버에 요청하면 서버에서 요청에 대한 응답을 하는 방식. TCP/IP 기반 응용 계층 프로토콜(TCP/IP란??) HTTP 특징 비연결성(Connectionless) 클라이언트와 서버가 한 번 연결을 맺고 요청에 대한 응답을 마치면 연결을 끊어버리는 특성 무상태(Stateless) 수신자(일반적으로 서버)가 세션 정보를 보유하지 않는 통신 프로토콜을 무상태 프로토콜이라고함. Connectionless로 인한 것. 세션 정보 보존으로 인하여 ..
[TIL] #5. sys.stdin.readline() 입력을 받는 방법 알고리즘 문제를 풀다 보면 문제에서 주어진 입력을 받아 처리해야 하는 경우가 많다. Python의 경우 입력을 받을 수 있는 방법이 대표적으로 2가지가 있는데 input() 과 sys.stdin.readline() 이 그것이다. 보통 처음에 Python을 배울 때는 아마 대부분 input() 을 사용했을 것이다. 나도 이 글을 쓰기 전 까지는 그랬다. 그런데, input() 을 통해 입력받는 것이 속도가 느리다는 사실을 알게 되었고 알고리즘 문제를 풀 때 어떤 문제에서는 시간초과 이슈를 발생시키기도 한다는 사실을 알았다. 따라서, 이글에서는 input() 대신에 사용할 수 있는 sys.stdin.readline() 에 대해서 알아보고 둘 사이에 어떤 차이점이 있는지, 언제 어떤걸 쓰면 ..
[TIL] #4. sorted()와 sort() sorted()와 sort() Python에서 데이터를 정렬할 때 무엇을 써야할까? sort() sorted() 먼저 sort() 는 list() 의 메서드 중 하나이고 sorted() 는 Python의 Built-in Function이다. 위 두가지를 사용하여 데이터를 정렬했을 때 어떤 차이가 있는지 알아보자. 정렬하기 1. sort() >>> a = [5, 2, 7, 4, 1] >>> print(a.sort()) None >>> print(a) [1, 2, 4, 5, 7] sort() 로 리스트를 정렬하여 출력하면 리턴값은 None이다. 즉, sort() 는 정렬한 결과를 새로운 값으로 리턴하지 않고 in-place로 작동하여 원래 리스트의 값을 정렬한 상태로 바꿔놓기만 하는 것이다. 2. sorte..
[TIL] #3. List Comprehension List Comprehesion 이란 ? List Comprehension은 '리스트 내포'(?)로 번역(점프 투 파이썬에서 저렇게 번역함)할 수 있으며 리스트 객체를 생성하는 방법 중 하나이다. 리스트 안에 반복문과 조건문을 넣음으로써 코드를 직관적으로 보이게 하는 기법이다. 사실 Python에서 List라는 자료구조는 굉장히 사기적인(?) 자료형이라고 생각하는데 이런 자료형을 잘 다루는 것처럼 보이게 하는 좋은 방법인것 같다.🥴 2개 이상의 반복문을 사용하는 것도 가능하지만, 코드가 복잡해지고 직관적이지 못하기 때문에 최대 2개까지만 쓰는 것이 좋다고 한다. 문법은 다음과 같다. [표현식 for 항목 in 반복 가능 객체 if 조건]if는 조건이 필요한 경우에만 사용하면 된다. 사용하기..