170226_TIL

|

오늘 한 일

  • tryhelloworld 파이썬 강의 를 들었다. 드디어 클래스와 인스턴스 메소드에 대해서 배웠다. 자바스크립트의 객체와 비슷한 것 같으면서도 더 편리한 것 같다. 이게 말로만 들었던 클래스구나. 내일 까지 들으면 파이썬 문법을 한번 쭉 훑어 볼 수 있을 것 같다. 이제 장고를 배워서 재밌게 뭔가를 만들어 보고싶다!

내일 할 일

파이썬 파트10. 딕셔너리와 튜플 - 튜플

|

파이썬 파트10. 딕셔너리와 튜플 - 튜플

try hello world 파이썬 입문 강의

튜플 만들기

튜플 (tuple)

  • 리스트와 유사하나 한번 정해진 순서를 바꿀 수 없다.
  • 튜플은 값의 변경과 삭제가 불가능하다.
# 튜플선언

tuple1 = (1, 2, 3, 4)
tuple2 = 1, 2, 3, 4
mylist = [1,2,3,4]
tuple3 = tuple(mylist)

packing, unpacking

packing

  • 하나의 변수에 여러개의 값을 넣는 것

unpacking

  • 패킹된 변수에서 여러개의 값을 꺼내오는 것
>>> a, b = 1, 2
>>> a
1
>>> b
2

# unpacking
>>> c = (3, 4)
>>> d, e = c  # c의 값을 언패킹하여 d, e에 값을 넣었다
>>> d
3
>>> e
4

# packing
>>> f = d, e  # 변수 d와 e를 f에 패킹
>>> f
(3, 4)

tuple의 활용

  • 두 변수의 값을 바꿀 때 임시 변수가 필요 없다.
>>> x = 5
>>> y = 3
>>> x, y = y, x
>>> x
3
>>> y
5
  • 함수의 리턴 값으로 여러 값을 전달할 수 있다.
>>> def tuple_func():
...     return 1, 2
...
>>> tuple_func()
(1, 2)
>>> q, w = tuple_func()
>>> q
1
>>> w
2

tuple을 이용한 함수의 리턴 값

튜플 리스트 활용

# 리스트 반복문
list = [1, 2, 3, 4, 5]
for i, v in enumerate(list):
    print('index : {} value: {}'.format(i, v))

# 튜플로 복수 값을 받기 - 리스트 반복문
list = [1, 2, 3, 4, 5]
for t in enumerate(list):
    print('index : {} value: {}'.format(t[0], t[1]))

# 튜플을 쪼개기 - 리스트 반복문
list = [1, 2, 3, 4, 5]
for t in enumerate(list):
    print('index : {} value: {}'.format(*t))

튜플 딕셔너리 활용

# 딕셔너리 반복문
ages = {'siwa' : 22, 'sunshine' : 25, 'tom' : 30}
for key, val in ages.items():
    print('{}의 나이는: {}'.format(key, val))


# 튜플로 복수 값을 받기 - 딕셔너리 반복문
ages = {'siwa' : 22, 'sunshine' : 25, 'tom' : 30}
for t in ages.items():
    print('{}의 나이는: {}'.format(t[0], t[1]))



# 튜플을 쪼개기 - 딕셔너리 반복문
ages = {'siwa' : 22, 'sunshine' : 25, 'tom' : 30}
for t in ages.items():
    print('{}의 나이는: {}'.format(*t))

파이썬 파트10. 딕셔너리와 튜플 - 딕셔너리

|

파이썬 파트10. 딕셔너리와 듀플

try hello world 파이썬 입문 강의

딕셔너리 만들기

딕셔너리

  • 자바스크립트 객체(object)와 유사
  • 여러 값을 저장해 두고 필요한 값을 꺼내 쓰는 기능
  • 이름표를 이용하여 값을 꺼내 사용
  • 사용할 때는 리스트와 비슷한 방식
wintable = {
    '가위' : '보',
    '바위' : '가위',
    '보' : '바위',
}

print(wintable['가위'])

딕셔너리 사용 예시

# 딕셔너리 (dictionary) 선언
wintable = {
    '가위' : '보',
    '바위' : '가위',
    '보' : '바위'
}

def rsp(mine, yours) :
    if mine == yours :
        return 'draw'
    elif wintable[mine] == yours :
        return 'win'
    else :
        return 'lose'

result = rsp('가위', '바위')

message = {
    'draw' : '비겼다',
    'win' : '이겼다!',
    'lose' : '졌어..'
}

print(message[result]) # 졌어..

딕셔너리 수정하기

리스트 수정

# 수정
>>> list = [1, 3, 5, 7, 9, 11]
>>> list[0] = 7
>>> list
[7, 3, 5, 7, 9, 11]

# 추가
>>> list.append(17)
>>> list
[7, 3, 5, 7, 9, 11, 17]

# 삭제 - del()
>>> del(list[0])
>>> list
[3, 5, 7, 9, 11, 17]

# 삭제 - .pop()
>>> list.pop(0)
3 # 삭제되는 값이 반환
>>> list
[5, 7, 9, 11, 17]

딕셔너리 수정

# 수정
>>> dic = { 'one':1, 'two':2 }
>>> dic['one'] = '하나'
>>> dic
{'one': '하나', 'two': 2}

# 추가
>>> dic['three'] = 3
>>> dic
{'one': '하나', 'two': 2, 'three': 3}
>>>

# 삭제 - del()
>>> del(dic['one'])
>>> dic
{'two': 2, 'three': 3}

# 삭제 - .pop()
>>> dic.pop('two')
2 # 작제되는 값이 반환
>>> dic
{'three': 3}

딕셔너리 반복문 활용 - for in

  • 경우에 따라 가져올 값을 정할 수 있다.
# key 를 가져온다.
>>> ages = {'siwa': 33, 'sunshine': 29, 'tom': 27}
>>> for key in ages.keys():  # keys() 생략 가능
...     print(key)
...
siwa
sunshine
tom

# value를 가져온다.
>>> for value in ages.values():
...     print(value)
...
33
29
27
  • key와 value 둘 다 가져올 수 있다.
>>> for key, value in ages.items():
...     print('{}의 나이는 {}입니다'.format(key, value))
...
siwa 나이는 33입니다
sunshine 나이는 29입니다
tom 나이는 27입니다
  • 딕셔너리는 값의 순서를 지키지 않는다.

딕셔너리와 리스트의 비교

공통점

구분 List Dictionary
생성 list=[1,2,3] dict={‘one’:1, ‘two’:2}
호출 list[0] dict[‘one’]
삭제 del(list[0]) del(dic[‘one’])
개수확인 len(list) len(dic)
값 확인 2 in list ‘one’ in dict.keys()
전부 삭제 list.clear() dict.clear()

차이점

구분 List Dictionary
순서 삭제 시 순서가 바뀌기 때문에 인덱스에 대한 값이 바뀐다 key로 값을 가져오기 때문에 삭제 여부와 상관 없다
결합 list1 + list2 dict1.update(dict2) - 덮어쓰기

170225_TIL

|

오늘 한 일

  • tryhelloworld 파이썬 강의 를 들었다. dictionary, tuple, packing, unpacking의 개념을 배웠다. 자바스크립트 에서는 겪어보지 못해던 부분들도 있어서 신기했다. 자바스크립트가 파이썬 보다 더 어려운 언어인 것 같다는 인상도 받았다.
  • 브런치를 통해서 글을 구독하고 있는 마르코님의 파이썬 강의를 신청했다. 개인 프로젝트를 진행하는 시간이 있고, 피드백을 받을 수 있다는 점이 마음에 들었다. 이번 기회를 활용해서 괜찮은 첫 파이썬-장고 미니 포트폴리오를 만들어 보고 싶다.

오늘 느낀 것

  • 큰이모가 오셔서 가족들과 시간을 같이 보냈다. 1시간 기다리는 맛집에서 맛있는 등갈비도 먹고 이야기도 많이 나누고 기분이 좋다. 날이 좋아서 엄마랑 이모랑 지하철 1정거장을 걸어서 왔다. 햇살이 따뜻해서 봄이 오는구나 싶었다. 이런 계절에는 제주도에 가서 유채꽃을 보고 싶다.

내일 할 일

파이썬 파트9. 활용하기 - 검색요령, datetime, random

|

파이썬 파트9. 활용하기 - datetime, random

try hello world 파이썬 입문 강의

필요한 정보를 검색하는 요령

  • 검색은 구글 (검색어를 알때는 공식문서보다 stackoverflow 등이 좋다)
  • 키워드에 파이썬3 또는 python3을 포함하라
  • 코드를 포함한 글을 찾도록 하라
  • 간단한 예제는 REPL을 사용하여 예제를 테스트 해보라
  • 영어를 못해도 영어로 검색하라 (tip. 프로그래밍에서 값 생성은 거의 generate)
# 검색어 : python3 today date
>>> import datetime
>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2017, 2, 24, 17, 32, 55, 65323)
>>> now.year
2017
>>> print(datetime.date.today())
2017-02-24

공식문서에서 필요한 정보를 찾는 법

공식문서

  • 필요한 내용을 둘러보고 싶을때
  • 파이썬 내장 모듈과 함수의 정보가 필요할 때

구글 또는 stackoverflow.com

  • 문제의 구체적인 해결 방법이 알고 싶을 때
  • 구글 검색시 사이트 제한 기능 활용
    • site:stackoverflow.com
    • site:docs.python.org

예시 - random.randint()

  • 공식 가이드 문서
    #  2보다 크거나 같고, 5보다 작거나 같은 임의의 정수 추출
    import random
    random_number = random.randint(2, 5)