1. list

# lang = ["python", "c", "java", "golang"]
lang = []

# my_list.append("value")
lang.append("pyhon")
lang.append("java")
lang.append("golang")
print(lang)

# my_list.insert(index, "value")
lang.insert(1, "c")
print(lang)

# my_list.remove("value")
lang.remove("golang")
print(lang)

# my_list.pop(index)
java = lang.pop(2)
print(lang)
print(java)

numbers = [2, 1, 4, 3]
print(numbers)

# my_list.sort()
numbers.sort()
print(numbers)

# my_list.reverse()
numbers = [2, 1, 4, 3]
numbers.reverse()
print(numbers)

# my_list.index("value")
index = numbers.index(2)
print(index)

# my_list.extend([a_list])
numbers.extend([5, 6, 7, 8])
print(numbers)

2. Tuple

더 이상 변경 불가능한 자료형

tuple1 = (1, 2, 3, 4)

# tuple은 삭제나 추가가 불가능
# del tuple1[1]
# tuple1[1] = 'c'

# tuple끼리 더하거나 박복하는 것은 가능
tuple2 = (5, 6)

print(tuple1 + tuple2)
print(tuple1 * 3)

3. Dictionary

순서가 없는 자료형

# dictionary 선언
dict1 = {}
print(dict1)

# dictionary에 key:value 추가
dict1 = {'name': 'foo bar'}
print(dict1)

dict1 = {'korean': 95, 'math': 100, 'science':[80, 70, 90, 60]}
print(dict1)

dict1['english'] = "pass"
print(dict1)

# dictionary의 key:value 삭제
del dict1['math']
print(dict1)

print(dict1['korean'])  # value 출력
print(dict1.keys())  # 모든 key 출력
print(dict1.values())  # 모든 vlaue 출력
print(dict1.items())  # 모든 key, value 출력

4. 반복문

for

반복문에 변수가 필요할 경우 사용하면 좋다.

for i in "strings":
    # 실행문1
    # ...

while

조건의 경우가 True 혹은 False일 경우에 사용하면 좋다.

while condition:
    # 실행문1
    # ...

List Comprehension

result = [i for i in range(1,11)]
print(result)

Fizzbuzz

면접에 많이 사용될 정도로 기본이 되는 예제이다. 어떤 조건이 먼저오는지 설정하는 것이 중요하다.

  • 범위 : 1에서부터 입력받은 수까지
  • 3의 배수일 때, fizz
  • 5의 배수일 때, buzz
  • 15의 배수일 때, fizzbuzz
num = eval(input("Type the number: "))

for i in range(1, num + 1):
    if i % 15 == 0:
        print("fizzbuzz")
    elif i % 3 == 0:
        print("fizz")
    elif i % 5 == 0:
        print("buzz")
    else:
        print(i)

5. Fuction

def my_function_name(parameter):
    # 실행문1
    # 실행문2
    # ...
    return result

6. Class

  • 최근 객체지향(OOP)보다 functional 기반이 프로그래밍이다. 그래도 파이썬은 객체지향으로 작성하는 것이 좋다.
  • Class = Blueprint
class Classname:
    def __init__(self):
        self.x = apple

    # method1

    # method2

    # ...
  • 클래스에서 객체는 인스턴스 vs 나머지는 객체
pineapple_pen = Ppap()  # Ppap 클래스의 인스턴스 생성
print(pineapple_pen.pen_adder(pineapple))  # pen_adder 메서드를 호출

과제

7. Shell Setting

Tree

Homebrew Tree

$ brew install tree
$ tree --version

pathogen.vim

pathogen.vim

" .vimrc file
execute pathogen#infect()
syntax on
filetype plugin indent on
$ cd ~/.vim/bundle && \
$ git clone https://github.com/tpope/vim-sensible.git

NERD tree

VimAwesome NERD tree X How to excute NERD tree

$ git clone https://github.com/scrooloose/nerdtree.git ~/.vim/bundle/nerdtree

# :NERDTreeToggle in VimEditor
# or set below
$ vim ~/.vimrc
" .vimrc file
" shortcut key to NERD Tree
map <F2> :NERDTreeToggle<CR>

vim-airline

vim-airline

$ git clone https://github.com/vim-airline/vim-airline ~/.vim/bundle/vim-airline