본문 바로가기

Language/Python

python

반응형

Interactive Shell 예제


http://pythontutor.com/




1. 자료형

리스트 (List)

  • 값을 변경 가능, 순서 O
>>> list = []
>>> list.append(123)
>>> list.append('abc')
>>> list.append(True)
>>> list
[123, 'abc', True]
  • list.sort(): 리스트 안의 값을 정렬합니다.
>>> animals =['코알라', '하이에나', '바다소', '땅다람쥐', '바다코끼리', '스컹크', '아나콘다']
>>> animals.sort()
>>> print(animals)
['땅다람쥐', '바다소', '바다코끼리', '스컹크', '아나콘다', '코알라', '하이에나']
  • list.count(): 해당 값의 개수를 셉니다.
>>> animals =['코알라', '하이에나', '바다소', '땅다람쥐', '바다코끼리', '스컹크', '아나콘다']
>>> print(animals.count('바다소'))
1


튜플 (Tuple)

  • 여러 값을 함께 모아서 저장합니다.
  • 값을 변경할 수 없으며 순서가 있습니다.
>>> my_tuple1 = ()
>>> my_tuple2 = (1,)
>>> my_tuple3 = ('a', 'b', 'c')
>>> my_tuple4 = 3.14, 'Python', True

  • 튜플은 리스트와 거의 유사합니다.
  • 여러 값을 한꺼번에 모을 수 있습니다.
  • 값을 변경할 수 없다는 점이 리스트와 다릅니다.
  • 튜플은 괄호를 쓰지 않아도 됩니다.
>>> my_tuple = (1, 2, 3)
>>> type(my_tuple)
<class 'tuple'>
>>> my_tuple = 1, 2, 3
>>> type(my_tuple)
<class 'tuple'>


  • 패킹(packing) : 여러 개의 값을 한꺼번에 묶는 것을 말합니다.
  • 언패킹(unpacking) : 묶여 있는 값을 풀어놓는 것을 말합니다.
>>> my_tuple = (1, 2, 3)
>>> num1, num2, num3 = my_tuple
>>> print(num1)
1
>>> print(num2)
2
  • 두 변수의 값을 서로 바꿀 때도 사용할 수 있습니다.
>>> num1 = 1
>>> num2 = 2
>>> num1, num2 = num2, num1
>>> print(num1)
2
>>> print(num2)
1

딕셔너리(Dictionary)

  • 관련된 정보를 서로 연관시켜 놓은 것입니다.
  • 키와 값의 쌍으로 이루어져 있습니다
>>> my_dict = {}  # {}
>>> my_dict[1] = 'a'  # {1: 'a'}
>>> my_dict['b'] = 2  # {1: 'a', 'b': 2}
>>> my_dict['c'] = 'd'  # {1: 'a', 'b': 2, 'c': 'd'}

  • 딕셔너리를 말 그대로 해석하면 사전입니다.
  • 키(key)와 값(value)을 쌍으로 갖는 자료형입니다.
  • 리스트와의 차이점은 관련된 정보를 연관시킨다는 것입니다.
  • 리스트는 값을 다루기 위해 인덱스를 사용하지만 딕셔너리는 키를 사용합니다.

  • 메서드는 특정 객체만 사용할 수 있는 함수를 말합니다.
  • 아래는 딕셔너리가 사용할 수 있는 메서드들입니다.
  • dict.values(): 딕셔너리에서 값만 뽑아 돌려줍니다.
students = {'학생1': 'Tom', '학생2': 'Sally', '학생3': 'Betty'}
for student in students.values():
    print(student)

Tom
Sally
Betty
  • dict.keys(): 딕셔너리에서 키만 뽑아 돌려줍니다.
students = {'학생1': 'Tom', '학생2': 'Sally', '학생3': 'Betty'}
for key in students.keys():
    print(key)

학생1
학생2
학생3
  • dict.items(): 딕셔너리에서 키와 값 쌍을 뽑아 돌려줍니다.
students = {'학생1': 'Tom', '학생2': 'Sally', '학생3': 'Betty'}
for key in students.keys():
    print(key)

학생1
학생2
학생3

자료형 변환

  • 자료형끼리 변환할 수 있는 함수도 있습니다.
  • 내장함수란 파이썬에서 기본으로 제공하는 함수를 말합니다.
  • int(): 정수형으로 변환합니다.
>>> print(int(3.14))
3
  • float(): 실수형으로 변환합니다.
>>> print(float(3))
3.0
  • str(): 문자열로 변환합니다.
>>> print(str(3.0))
3.0
>>> print(type(str(3.0)))
<class 'str'>
  • list(): 리스트로 변환합니다.
>>> print(list('3.0'))
['3', '.', '0']


3. Formatting

  • % 연산자를 이용해 문자열에 숫자, 문자열 등을 대입합니다.
  • 문자열을 자유롭게 표현하는 방법입니다.
>>> print('My name is %s' % 'Tom')
My name is Tom
>>> print('x = %d, y = %d' % (1, 2))
x = 1, y = 2
>>> print('%d x %d = %d' % (2, 3, 2 * 3))
2 x 3 = 6
  • %d : 정수형 숫자를 대입할 수 있습니다.
>>> print('%d %d' % (1, 2))
1 2
  • %f : 실수형 숫자를 대입할 수 있습니다.
>>> print('%f' % 3.14)
3.14
  • %s : 문자열을 대입할 수 있습니다.
>>> print('%s' % 'coding')
coding

4. Formmat()

    • 포맷팅을 수행하는 문자열의 메소드입니다.
    • 중괄호 { }를 이용해 값을 대입합니다.
    • % 연산자보다 파이썬스러운 방법입니다.
    • 괄호 안에 숫자를 넣어 순서도 지정할 수 있습니다.
    >>> print('My name is %s' % 'Tom')
    My name is Tom
    >>> print('My name is {}'.format('Tom'))
    My name is Tom
    >>> print('{} x {} ={}'.format(2, 3, 2 * 3))
    2 x 3 = 6
    >>> print('{1} x {0} ={2}'.format(2, 3, 2 * 3))  # 괄호 안의 숫자는 순서를 지정
    3 x 2 = 6

    5. Indexing

        • 위치(index)를 이용해 각 문자에 접근할 수 있습니다.
        • 위치는 0부터 시작합니다. 공백도 포함합니다.
        >>> alphabet = 'abcde'
        >>> print(alphabet[0])
        a
        >>> print(alphabet[3])
        d
        >>> print(alphabet[5])
        Traceback (most recent call last):
          File "<pyshell#12>", line 1, in <module>
            print(alphabet[5])
        IndexError: string index out of range


        • 음수를 인덱스로 사용할 수 있습니다.
        • 가장 뒤의 값을 -1부터 해서 거꾸로 세어갑니다


        >>> str = '코딩'
        >>> str[-1]
        딩
        • 리스트 자료형에서도 거의 비슷합니다.
        • 리스트의 메서드 list.append()를 사용해서 값을 추가할 수 있습니다.
        students = ['Tom', 'Alice', 'Sally']


          6. Slicing

            • 문자열에서 여러 값을 한꺼번에 잘라옵니다.
            • 콜론(:)을 이용해 여러 값을 한꺼번에 가져올 수 있습니다.
            • 기존 문자열은 그대로 두고 복사해서 사용합니다.
            >>> my_str = 'Hello Python!'
            >>> print(my_str[0:1])
            H
            >>> print(my_str[0:2])
            He
            >>> print(my_str[3:7])
            lo P


              7. Method

              • 특정한 기능을 수행하기 위한 코드를 모아두고 이름을 붙인 것을 함수라고 합니다.
              • 메서드는 특정 객체만 사용할 수 있는 함수를 말합니다.
              • string.split(): 문자열을 공백 기준으로 분리하는 메서드입니다.
              >>> fruit_str = 'apple banana lemon'
              >>> fruits = fruit_str.split()
              >>> print(fruits[0])
              apple
              >>> print(fruits[1])
              banana
              >>> str = '준스의 코딩'
              >>> print(str.split())
              ['준스의', '코딩']
              • 수학에도 함수가 있고, 엑셀에도 함수가 있습니다.
              • 우리가 사용해왔던 print(), input() 등도 모두 함수입니다.
              • 반복되는 코드에 이름을 붙여서 다시 사용할 수 있게 합니다.
              • 필요할 때 함수의 이름을 불러서 사용할 수 있습니다.
              • 통나무가 마술모자에 들어가면 마술빗자루가 나옵니다.
              • 이와 유사하게 입력 값이 함수에 들어가면 출력 값이 나옵니다.
              • 함수에게 전달하는 값을 인자 혹은 매개변수라고 합니다.
              • 굳이 따지자면 다른 용어이지만 보통 혼용해서 사용합니다.
              • 함수에게 받아오는 값을 리턴 값, 반환 값, 결과 값이라고 합니다.
              • 마치 내가 함수와 함께 캐치볼을 하는 것과 같습니다.
              • 인자와 결과 값은 있을 수도 있고 없을 수도 있습니다.
              • 여러 개를 돌려줄 때는 하나의 튜플로 묶어서 전달합니다.
              def add_mul(num1, num2):
                  return num1 + num2, num1 * num2
              
              my_add, my_mul = add_mul(1, 2)  # 3, 2

                8. Documentation string

                • 문서화 문자열(Documentation string)입니다.
                • 함수가 어떤 일을 수행하는지 설명합니다.
                • 보통 큰따옴표(" ") 세 개를 사용합니다.

                def 함수이름(인자1, ...): """함수에 대한 설명""" 실행할 명령1 실행할 명령2 ... return 결과
                >>> def calc(a, b, c):
                    """calc"""
                    a = a + b + c
                    a = a * 2
                    return a
                
                >>> calc(1, 2, 3)
                12


                반응형