6. 파이썬으로 코딩 시작하기_LMS Node 브레이커

허남철·2021년 12월 31일
0

LMS Node 브레이커

목록 보기
1/4

<첫 LMS : 6. 파이썬으로 코딩 시작하기>

  1. 새롭거나 중요한 내용
    a. 6-6에서 '입력값으로 주어진 인자(argument)를 받는 변수를 매개변수(parametet)라고 합니다.' 이전까지 인자는 함수 외부에서, 매개변수는 함수 내부라고 이해하고 있었으나, 상기표현이 더 간단명료하다.

    b. 고정소수점과 부동소수점
    참고링크 : https://jiminish.tistory.com/81
    Q1. 1.0을 32bit의 고정소수점 부동소수점 수로 표현해보자
    1.0
    +1.0 (10진법)
    +1.0 (2진법)
    +1.0 (고정소수점)
    +1.0 * 2^0 (부동소수점 표현 : R=±m×2^n, 여기서 m =1.0, n= 0 )

    • 고정소수점 32비트 표현
      +1.0 (고정소수점)를 32비트로 표현해보자
      부호비트 : 0 (+)
      정수부(15비트) : 1 (정수부분) >000000000000001
      소수부(16비트) : 0 (소수부분) >0000000000000000
      부호비트, 정수부, 소수부를 차례로 붙이면 된다.
      00000000000000010000000000000000 (차례로 0=15개, 1=1개, 0=16개)

    • 부동소수점 32비트 표현
      +1.0 * 2^0 (부동소수점 표현 : R=±m×2^n, 여기서 m =1.0, n= 0 )
      를 32비트로 표현해보자
      부호비트 : 0 (+)
      지수부(8비트) : n+bias (n=0 , 32비트의 bias = 127. 0+127 = 127을 2진수 변환 > 01111111 이다.
      가수부(23비트) :0 (m=1.0 의 소수점 아래부분이다. 따라서 0이다.)
      '0'0000000000000000000000 (23비트 맞춰준다, 가수부는 앞에서 넣는다.)
      종합하여 부호비트, 지수부, 가수부를 차례로 붙이면
      0+01111111+00000000000000000000000
      = 00111111100000000000000000000000 이다.

    • 부동소수점의 의의 : 고정소수점의 경우 정수부와 소수부 비트수가 고정이기때문에 일정자릿수 밖의 수는 다룰 수 없다. 반면, 부동소수점의 경우 가수부와 지수부로 표현하기때문에 더 크거나 작은 수도 다룰수 있다.

    c.None 과 NoneType

    • 아무것도 없음을 표시(휴지심조차 없는 상태)
    • 인터프리터 언어인 파이썬은 프로그램 실행 타이밍에 정의되지 않은 어떤 것이 발생하면, NoneType 을 필요.
      cf. 컴파일 언어(C)의 경우, 모든 유형이 다 정의되어야 하여 필요 않다.

    d. 메모이제이션(memoization)
    피보나치수열과 같은 재귀함수의 경우 수가 커질수록 같은 피보나치수를 중복해서 연산하기 때문에 계산시간이 길어진다. 이때 중간계산 값을 기억하는 방식으로 계산시간을 단축한다.

    memory = {1: 1, 2: 1}
    
    def fibonacci(n):
        if n in memory:
            number = memory[n]
        else:
           number = fibonacci(n-1) + fibonacci(n-2)
           memory[n] = number
        return number
  1. 요약
  • 함수(function): 특정 작업, 입출력을 가짐
    • 인자(argument, 함수호출시 전달값)
    • 매개변수(parameter, 함수실행시 입력값이 들어올 변수)
    • 반환값(return value, 함수종료시 호출지점의 전달값)
  • 변수(variable) : global 과 local
  • 연산자(operator) : 수리, 비교, 논리, 소속
  • 제어문(control statements) : if-elif-else, while, for
  • 자료형(data type) : int, float, bool, str, tuple, list, dict
profile
AI꿈나무

0개의 댓글