homebody's blog

[Python] Python 기초 - 1(식별자, 인코딩 선언, 주석, 코드 라인, 변수 및 자료형) 본문

Python

[Python] Python 기초 - 1(식별자, 인코딩 선언, 주석, 코드 라인, 변수 및 자료형)

homebody 2019. 6. 28. 13:44

Python 기초

  1. 식별자

    • 변수명
    • 내장함수 : 사용자의 편의를 위해 미리 선언해놓은 함수
      • 내장함수의 이름을 변수로 사용할 수 있지만, 해당 내장함수의 기능을 상실하게 된다.
      • 변수와 내장함수의 이름이 같으면 변수의 우선순위가 더 높다. 그러므로 변수의 값을 먼저 불러온다.
  2. 인코딩 선언

    • # -- coding: encoding --
  3. 주석

    • 자신이 작성한 코드에 대한 설명을 잘 달아 놓아야 나중에 읽기 편하고 다른 사람들도 알아보기 쉽다.
    • 주석을 한줄을 쓸 때는 #, 여러 줄은 """,''' 을 사용한다.
  4. 코드 라인

    • 기본적으로 파이썬은 ;을 사용하지 않지만, ;을 사용하면 한 줄에 여러 코드를 작성할 수 있다.

    • 한줄을 여러줄로 나누어 작성할 때는 역슬래시 \를 사용하여 작성할 수 있다.

    • [], {}, ()는 시퀀스 자료형으로 리스트, 딕셔너리, 집합이며, 이 자료형 내에서는 역슬래시 없이도 줄을 바꿔줄수있다.

      a = 0
      if a \
      == 0:
         print(a)
  5. 변수 및 자료형

    • 변수

      • 변수는 =을 통해 할당하고 =를 할당 연산자라고 한다.

        a = 100
        # 변수를 저장하면 실제 값이 메모리에 저장되는 것이 아니라, Namespace라는 곳에 이름이 맵핑되고, 메모리는 데이터가 저장된 곳의 주소값을 가지고 있다. 자주 사용되는 것은 미리 선언이 되어 있고, 자주 사용되지 않는 값들은 그때그때마다 할당이 된다.
        
        x = 100
        print(x)
        print(id(x))
        
        y = 100
        print(y)
        print(id(y))
      • 변수를 선언할 때 같은 값을 동시에 할당할 수도 있고 다른 값을 동시에 할당할 수도 있다. 값을 스왑할 수도 있다.

        x = y = 100  
        x, y = 100  
        x, y = y, x
    • 수치형(Numbers)

      • int(정수)

        • 모든 정수는 int로 표현된다.

        • 파이썬 3.x 버전에서는 long 타입은 없고 모두 int 형으로 표기 된다.

          a = 3  
          type(a)
      • n진수

        • 10진수가 아닌 8진수 : 0o/2진수 : 0b /16진수: 0x로도 표현 가능하다.

          binary\_number = 0b10  
          octal\_number = 0o10  
          decimal\_number = 10  
          hexadecimal\_number = 0x10
      • float(부동소수점, 실수)

        • 실수는 float로 표현된다.

        • 다만, 실수를 컴퓨터가 표현하는 과정에서 부동소수점을 사용하며, 항상 같은 값으로 일치되지 않는다. (floating point rounding error) 이는 컴퓨터가 2진수(비트)를 통해 숫자를 표현하는 과정에서 생기는 오류이며, 대부분의 경우는 중요하지 않으나 값을 같은지 비교하는 과정에서 문제가 발생할 수 있다.

        • 실수의 경우 실제로 값을 처리하기 위해서는 조심할 필요가 있다.

          3.5 - 3.12  
          #0.3799999999999999  
          round(3.5 - 3.12, 2)  
          #0.38  
          a = 3.5  
          b = 314e-2  
          type(b)  
          print(b)
      • 절대값

        a = 3.5 -3.12  
        b = 0.38  
        print(a-b)  
        abs(a-b) # 절대값을 반환해주는 함수
        • complex(복소수)

          • 복소수는 허수부를 j로 표현한다.
            ``` a = 3 - 4j
            print(type(a))

          • 복소수 관련 함수

            a = 3 - 4j  
            print(a.imag) # 복소수 허수부분  
            print(a.real) # 복소수 실수부분  
            print(a.conjugate) # 켤레복소수
      • Bool

        • 파이썬에는 True와 False로 이뤄진 bool 타입이 있다.

        • 비교/논리 연산을 수행 등에서 활용된다.

        • 다음은 False로 변환된다.

        • 0, 0.0, (), [], {}, '', None
          -> (),[],{},'' 비어있으면 False, 값이 하나라도 들어있으면 True, 0은 False, 0이외의 값들은 True

        bool(4) # True  
        bool(0) # False  
        bool(None) # False  
        bool(()) # False  
        bool(\[\]) # False  
        bool({}) # False  
        bool({0:0}) # True
    • 문자열

      • 문자열은 Single quotes(')나 Double quotes(")을 활용하여 표현 가능하다.

      • 단, 문자열을 묶을 때 동일한 문장부호를 활용해야하며, PEP-8에서는 하나의 문장부호를 선택하여 유지하도록 한다. (Pick a rule and Stick to it)

        greeting = 'hello'  
        name = 'name'  
        print(greeting, name)
      • 다만 문자열 안에 문장부호(', ")가 활용될 경우 이스케이프 문자()를 사용하는 것 대신 활용 가능

          print("hello "name"")  
        print('hello "name"')  
        print("hello 'name'")
      • 여러 줄에 걸쳐있는 문장은 다음과 같이 표현 가능하다.

        print("""  
        개행문자 없이  
        여러줄을 그대로 출력 가능합니다.""")
        
        a = True  
        print(f"""  
        물론,  
        string interpolation도 가능합니다.  
        {a}!""")
      • 이스케이프 문자열

        • 문자열을 활용하는 경우 특수문자 혹은 조작을 하기 위하여 사용되는 것으로 \를 활용하여 이를 구분한다.

            print('이 다음엔 엔터.\n그리고 탭\t탭')
            print('내용을 띄워서 출력하고 싶다면?', end = " ")
            print('옆으로 띄워서~~')
      • 이스케이프 문자열 예제

        • 다음의 문장을 출력

        • """ 사용 금지

        • print 여러번 사용 금지

          "파일은 C:\\Windows\\Users\\내문서\\Python에 저장이 되어있습니다."  
          나는 생각했다. 'cd를 써서 git bash로 들어가봐야지'
          # 여기에 코드를 작성
          
          print(""파일은 C:\\Windows\\Users\\내문서\\Python에 저장이 되어있습니다."\\n'나는 생각했다. cd를 써서 git bash로 들어가봐야지'")
      • String interpolation
        1) %-formatting
        2) str.format()
        3) f-strings : 파이썬 3.6 버전 이후에 지원 되는 사항이다.
        4) f-strings에서는 형식을 지정할 수 있고, 연산도 가능하다.

        name = "lim"  
        print("hello, %s" % name) # %s : 문자열  
        print("hello, %d" % 3) # %d : 정수형  
        print("hello, {}".format(name))  
        print(f'hello, {name}')
        
        import datetime  
        today = datetime.datetime.now()  
        print(f'오늘은 {today:20%y}{today:%m}{today:%d}{today:%A}입니다.')  
        #오늘은 2019년 01월 07일 Monday입니다.
        
        pi = 3.141592  
        print(f'원주율은 {pi: .4}. 반지름이 2일 때 원의 넓이는 {pi\_2\_2: .4}')  
        #원주율은 3.142. 반지름이 2일 때 원의 넓이는 12.57
Comments