코딩 개발일지

TIL 14일차 - 코드카타 시작 및 장고 강의 시작 본문

AI 본 교육/AI 4주차

TIL 14일차 - 코드카타 시작 및 장고 강의 시작

호기호 2023. 8. 29. 17:31

그렇게도 어려웠던 코드카타가 파이썬 기초를 다지니까 보이기 시작한다 !!! (강 추)

5문제 정도를 거의(..?) 혼자 힘으로 풀어냈는데, 막혔던 문제 하나를 소개해봄.


임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.

def solution(n):
    answer = -1

    for i in range(1, n+1):
        if i*i == n:
            answer = (i+1)*(i+1)

    return answer

이렇게 풀었는데, 너무 꼼수써서 푼 느낌이 강했다. (answer를 -1로 바꿔버림ㅋㅋ)

그리고 n값이 5000000000 이런 숫자가 나왔을 때, for 반복문을 그만큼 돌려야 해서 너무 안좋은 코드가 됐음.

def solution(n):
    answer = 0

    for i in range(1, n+1):
        if i*i == n:
            answer = (i+1)*(i+1)
        elif i*i !=n:
            answer = -1

    return answer

이렇게 쓰면, 답은 나오지만, n의 반복이 너무 많은 상황...에서 튜터님께 math를 활용해보거나, 루트를 씌우는 것을 생각해보거나, while을 이용해보라고 힌트를 줬음. 내일 코드타카때 다시 해보는걸로!


장고 기초강의를 시작했다.

이걸 이해하고 넘어가면 된다. 클라이언트는 사용자 정도로 생각하고, api를 통해 서버와 상호작용한다.


장고에서 dictionary에서 key값을 prtint 할때 쓰는 방법

print(data.get('key값'))

python에서처럼

print(data['key값'])

해서 나오지만, get을 많이 쓴다고한다(왜지?)


Web Framework : 개발을 도와주는 하나의 틀.

장고또한 프레임워크 중 하나인 것이다. Django, Flask, Pyramid 등.

장고는 많이 쓰이는 기능들이나 양식이 작성되어 있어서 이용하기 쉽다.

플라스크, 피라미드는 서버를 만들기 위한 최소한의 기능들만 제공한다. (입문이 좀 더 힘들다는 느낌??)

프레임워크와 라이브러리의 차이는, 라이브러리는 import를 해서 사용하는것이고, 프레임워크는 파이썬 자체적으로 가지고있는 도구(?)라고 생각하면 될 것 같다.