homebody's blog

[Python] Python 기초 - 2(연산자, 형변환) 본문

Python

[Python] Python 기초 - 2(연산자, 형변환)

homebody 2019. 6. 29. 21:41
  1. 연산자

    • 산술 연산자

      • Python에서는 기본적인 사칙연산이 가능하다.

        print(5/2) # 정수/정수는 실수형
        print(5//2)
        print(5%2)
        print(2**1000)
        print(divmod(5,3)) # 몫과 나머지를 반환
      • 양수/음수도 표현 가능

        a = 5
        print(-a)
    • 비교 연산자

      • 우리가 수학에서 배운 연산자와 동일하게 값을 비교할 수 있다. 반환값으로 bool변수 True, False를 반환해준다.
    • 논리 연산자

      • 우리가 보통 알고 있는 &, |은 파이썬에서 비트 연산자이다.

        print(True and True)
        print(True and False)
        print(False and True)
        print(False and False)
        
        print(True or True)
        print(True or False)
        print(False or True)
        print(False or False)
        
        print(not True)
        print(not 0)
        print(not [])
    • & 와 and (short circuit)

      • a & b는 두 경우(조건문)를 다 보는 것이고, a and b는 앞만 보고 뒤에꺼는 보지도 않는다.
      • and가 &보다 속도 측면에서 좋다.
      • | 와 or 또한 똑같다.
    • 복합 연산자

      • 복합 연산자는 연산과 대입이 함께 이뤄진다.

      • 가장 많이 활용되는 경우는 반복문을 통해서 갯수를 카운트하거나 할 때 활용된다.

        count = 0
        while count<5:
            print(count)
            count += 1    # count = count + 1
    • 기타 연산자

      • Concatenation
        • 숫자가 아닌 자료형은 + 연산자를 통해 합칠 수 있다.
      • Containment Test
        • in 연산자를 통해 속해있는지 여부를 확인할 수 있다.
      • Identity
        • is 연산자를 통해 동일한 object인지 확인할 수 있다. id(주소값)를 비교
      • Indexing/Slicing
        • []를 통한 값 접근 및 [:]을 통한 슬라이싱
      #Concatenation
      print('hi' + 'hello')
      print([2, 3, 5] + [6, 7])
      
      #Containment Test  
      print('a' in 'apple')  
      print(1 in \[1,2,3,4\])  
      print(5 in range(5))
      
      #Identity  
      a = 100 # 숫자 0~ 256까지는 같은 id(주소값)를 가진다.  
      b = 100  
      print(a is b)  
      print(id(a), id(b))
      
      #Indexing/Slicing  
      s = "apple"  
      print(s\[0\]) #indexing  
      print(s\[:4\]) #slicing  
      print(s\[2:\])  
      print(s\[2:3\])  
    • 연산자 우선순위

      1. ()을 통한 grouping
      2. Slicing
      3. Indexing
      4. 제곱연산자 **
      5. 단항연산자 +, - (음수/양수 부호)
      6. 산술연산자 *, /, %
      7. 산술연산자 +, -
      8. 비교연산자, in, is
      9. not
      10. and
      11. or
    • 형변환

      • 기초 형변환(Type conversion, Typecasting)

        • 파이썬에서 데이터타입은 서로 변환할 수 있다.
      • 암시적 형변환(Implicit Type Conversion)

        • 사용자가 의도하지 않았지만, 파이썬 내부적으로 자동으로 형변환 하는 경우이다. 아래의 상황에서만 가능하다.
          bool
          Numbers (int, float, complex)
        print(True+5)
        
        int = 3  
        float = 5.0  
        complex = 3 + j
        
        print(int + float)  
        print(int + complex)  
        print(type(int + float))  
        print(type(int + complex))  
      • 명시적 형변환(Explicit Type Conversion)

        • 위의 상황을 제외하고는 모두 명시적으로 형 변환을 해주어야한다.
          • string -> intger : 형식에 맞는 숫자만 가능
          • integer -> string : 모두 가능
        • 암시적 형변환이 되는 모든 경우도 명시적으로 형변환이 가능하다.
          • int() : string, float를 int로 변환
          • float() : string, int를 float로 변환
          • str() : int, float, list, tuple, dictionary를 문자열로 변환
            string 3.5를 int로 변환할 수는 없다.
        print(str(1) + '등')
        
        a = '3'  
        print(int(a))  
        print(int(a) + 4)
        
        a = '3.5'  
        print(float(a))
        
        a = 3.5  
        print(int(a)) # 정수부분만 남는다.  
Comments