본문 바로가기

분류 전체보기50

4-Digit 디스플레이 연결하기 [라즈베리파이(Raspberry Pi)] 오늘 포스팅에선 라즈베리파이에 4-Digit 디스플레이(Display)를 연결을 해보고 파이썬 프로그램으로 시간을 표시해 보도록 할께요. 제가 사용할 4-Digit 디스플레이는 seeedstudio의 Grove 4-Digit Display입니다. 준비물 최신 OS가 설치된 라즈베리파이 (설치 과정은 이 글을 참고 하세요) 브레드 보드(빵판) 점퍼 케이블 4-Digit 디스플레이 준비물이 세팅이 되었다면 라즈베리파이에 아래처럼 점퍼 케이블을 연결해주세요. 아래 핀 번호로 다시 살펴보면 빨간선(전원)은 2번, 검은선(그라운드)는 6번, 흰선은 33번 노란선은 32번 핀에 연결해 주었습니다. 그리고 브레드 보드를 사용해서 연결을 해줍니다. 디스플레이에서 직접 같은 색깔끼리 연결해주어도 무방합니다. 저는 연결의.. 2020. 9. 10.
파이썬(Python) 전역변수 함수에서 접근방법 파이썬 전역변수(global variable)를 함수에서 접근하기 위해서는 함수내에서 명시적으로 global 키워드를 사용해서 선언을 해주어야 합니다. my_name = "J Builder" def change_name(): global my_name my_name += "!!!" change_name() print(my_name) # J Builder!!! 만약 global 키워드를 사용하여 선언하지 않는다면 함수 내에서 해당 변수에 수정하는 사항들은 반영되지 않습니다. 정확히는 함수내에 있는 변수는 함수 안에서만 영향력을 갖는 지역변수로써 전역변수와는 다른 또 다른 변수가 되는것이죠. my_name = "J Builder" def change_name(): my_name += "!!!"# 여기서 my.. 2020. 9. 10.
파이썬(Python) 리스트 for 루프 중(iteration) 특정 아이템 제거하기 리스트(list)를 for나 while로 iteration 하는 도중에 특정 아이템을 제거하고자 할때는 아래와 같이 list comprehension 을 사용하면 됩니다. mylist = [x for x in mylist if check_if_valid(x)] 아래 예제 코드로 확인해 볼께요. 이 예제는, 리스트를 순회하면서 음수들을 제거하는 코드입니다. # 아이템 x가 0 또는 양수면 True, 음수면 False 반환 def check_if_valid(x): if x >=0: return True return False mylist = [-1, 2, 10, -100, 0, 5, 7, -3] mylist = [x for x in mylist if check_if_valid(x)] print(mylist).. 2020. 9. 10.
파이썬(Python) 함수 참조에 의한 호출? C와 같은 언어에선 함수 호출 시 인자로 포인터를 넘겨서 참조(reference)를 가져올 수 있습니다. 이런 개념에 익숙하다면 파이썬에서의 함수 호출 시 인자가 '값에 의한 호출(call by value)'인지 '참조에 의한 호출(call by reference)'인지 헷갈릴 때가 많습니다. 이럴 때는 딱 한가지만 기억하세요. 파이썬은 '할당에 의한 전달(pass by assignment)' 이다. 먼저 함수를 사용하지 않는 아래 예제부터 먼저 볼께요. 변수값이 함수내에서 수정이 가능한지 확인하기 위해서 mutable 타입인 리스트(list)를 사용해 보겠습니다. a = [1, 2, 3] # 리스트(list) [1, 2, 3]을 a에 할당 했습니다. a는 리스트 [1, 2, 3]을 가리키게 되죠 b =.. 2020. 9. 10.
파이썬(Python) 2차원 리스트 합치기 2차원 리스트의 아이템들을 모두 합쳐서 1차원 리스트를 만드는 방법에 대해서 알아볼께요. 만약 아래과 같은 리스트가 있다면 list_2d = [[1,2,3], [4,5,6], [7,8,9], [10,11,12]] # 위의 2차원 리스트를 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] 처럼 다 합치고 싶은거죠. itertools 모듈을 사용하면 쉽게 1차원 리스트로 만들 수 있습니다. import itertools list_2d = [[1,2,3], [4,5,6], [7,8,9], [10,11,12]] merged = list(itertools.chain.from_iterable(list_2d)) print(merged) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10,.. 2020. 9. 9.
파이썬(Python) 리스트 복사하기 파이썬(Python)으로 코딩할 때 가끔씩 리스트를 복사할 일이 생깁니다. 하지만 주의하지 않으면 오류를 만들어 디버깅을 힘들게 할 수 도 있습니다. 즉, 아래와 같이 새로운 리스트에 기존 리스트를 할당해 버리면 실제로 복사가 일어나지 않고 새로운 리스트는 기존 리스트를 참조하게 됩니다. 그래서 기존 리스트의 값을 변경해주면 새로운 리스트의 값 역시 바뀌게 되죠. old_list = [0, 1, 2, 3] new_list = old_list print(new_list) # [0, 1, 2, 3] old_list[0] = 10 print(new_list) # [10, 1, 2, 3] 실제로 독립된 두개의 리스트를 갖기 위해서는 아래와 같은 방법들로 가능합니다. 먼저, 제가 선호하는 방법인 슬라이싱으로 복사.. 2020. 9. 9.