본문 바로가기

전체 글62

#5 리스트(Lists) 리스트(Lists)란? 파이썬(Python)은 여러 복합적인 데이터를 그룹으로 다루기 위한 데이터 타입을 제공합니다. 바로 리스트(Lists)라고 하는 녀석입니다. 리스트는 대괄호(Square brackets)안에 콤마로 구분해서 데이터를 저장합니다. 데이터는 앞에서 배운 숫자(Numbers)나 문자열(Strings) 또는 리스트가 될 수 도 있습니다. 물론 그것뿐만이 아니라 어떤 데이터 타입의 데이터도 모두 저장할 수 있습니다. 하지만 보통은 리스트의 데이터 처리를 쉽게 하기 위해서 같은 타입의 데이터를 저장하곤 하죠. 그럼 예제를 한번 볼까요? my_list = [1, 2, 3]# 숫자들을 가지고 있는 리스트 print(my_list) # [1, 2, 3] my_list = ['a', 'bc', 'd.. 2020. 9. 21.
#4 문자열(Strings) 문자열(Strings)이란? 파이썬(Python)에서는 큰 따옴표(double quotes) 또는 작은 따옴표(single quotes) 안에 있는 문자들을 문자열이라고 합니다. 다시 말하자면, 파이썬은 문자나 문자열을 저장하기 위해서 따옴표(quotes)를 사용합니다. colab 노트북을 열고 같이 확인해 볼께요. 'hello'# 작은 따옴표로 선언된 문자열 # hello "My name is J-Builder"# 큰 따옴표로 선언된 문자열 # My name is J-Builder 만약 따옴표 안의 문자열에 따옴표를 표시하고 싶다면 역슬래시('\')를 같이 사용하면 됩니다. "I\'m awesome" # I'm awesome "\"Yes, that\'s it\"" # "Yes, that's it" 문자.. 2020. 9. 19.
파이썬(Python) 2차원 배열(Multidimensional Array) 생성하기 파이썬에서 배열은 리스트를 사용해서 생성할 수 있습니다. 1차원 배열 생성은 아래 포스팅을 참고하세요. 2020/09/18 - [파이썬/자주하는 질문] - 파이썬(Python) 배열(Array) 생성하기 2차원 배열은 리스트를 중첩해서 만들 수 있습니다. 예를 들어서, 2행 3열의 2차월 배열을 만들기 위해선 아래와 같이 할 수 있죠. row, column = 2, 3 arr_2d = [[None] * column for i in range(row)] print(arr_2d) # [[None, None, None], [None, None, None]] 좀 더 효율적으로 다차원 배열을 다뤄야 한다면 Numpy 패키지를 사용할 수 있습니다. Numpy는 적은메모리를 사용하며 더 빠르게 다차원 배열을 만들 수.. 2020. 9. 18.
파이썬(Python) 배열(Array) 생성하기 파이썬에서 배열 생성을 위해서는 리스트(list)를 사용하면 됩니다. 파이썬의 리스트는 C와 같은 언어의 배열과 동일합니다. (차이점은, 리스트는 여러가지 다른 타입의 객체를 리스트의 아이템으로 가질 수 있고 크기가 고정되어있지 않다는 것이지요.) 따라서 리스트의 random access는 C의 배열과 같이 아주 빠르게 수행됩니다. (평균 O(1) 시간복잡도를 가집니다). 또한 아이템을 추가하기 위한 append 함수 역시 즉각적으로 수행됩니다. (리스트 다른 멤버함수들의 수행시간은 여기서 확인가능합니다.) 파이썬의 리스트는 아래와 같이 사용이 가능합니다. my_list = [1, 2, 'awesome'] print(my_list[1]) # 2 print(my_list[2]) # awesome my_li.. 2020. 9. 18.
#3 숫자(Numbers) 이번 포스팅에선 파이썬(Python)의 숫자(Numbers)에 대해서 알아보겠습니다. 숫자(Numbers) 란? 숫자는 주로 연산(계산)을 할 때 사용됩니다. 덧셈이나 뺄셈, 나눗셈과 곱셈등의 연산을 할 때 사용이 됩니다. colab 노트북에서 아래와 같이 숫자 연산을 해보세요. 마치 계산기를 사용하듯 결과를 볼 수 있죠. 3 + 5 # 8 10 - 2 # 8 2 * 4 # 8 16 / 2 # 8 숫자를 사용한 연산은 우리가 알고 있는 연산 규칙을 그대로 따릅니다. 예를 들어서, 괄호안에 있는 연산이 우선순위를 갖게되죠. 10 - 3 * 2 # 4 (10 - 3) * 2 # 14 숫자는 마이너스 기호를 앞에 붙여서 음수를 가르킬 수 있으며, 나눗셈의 결과로 소수점을 가질 수 도 있습니다. 3 - 10 #.. 2020. 9. 18.
#2 변수(Variables) 이번 시간에는 파이썬(Python)의 변수에 대해서 알아보도록 할께요. 변수(Variables) 란? 변수는 데이터를 저장하기 위해서 쓰입니다. 변수에는 숫자(Numbers)나 문자(Strings) 등의 데이터를 저장할 수 있습니다. 또한 변수는 그 단어가 의미하는 바와 같이 그 값을 변하게 할 수 있습니다. 즉, 변수의 데이터는 다른 값으로 변할 수 있다는 뜻이죠. 변수의 선언 파이썬에서 변수는 데이터가 변수에 할당될 때 자동적으로 생성이 됩니다. 예를 들어서 아래와 같이 a 에 숫자 3을 넣는다면 자동적으로 a 라는 변수가 생성된것이고 그 변수 a 의 값은 3이 되는것입니다. a = 3 a # 3 변수의 이름 그럼 변수는 어떤 이름을 가질 수 있을까요? 파이썬에서 변수의 이름은 아래의 조건들을 만족해.. 2020. 9. 17.
#1 개발환경 설정 안녕하세요. 코딩을 처음 배우는 사람들을 위한 아주 쉬운 파이썬 강의를 사작합니다. 총 10회 강의를 예상하고 있습니다. 코딩을 한번도 해본적 없는 사람을 위한 강의이며, 짧지만 핵심을 배울 수 있게 진행할 예정입니다. 그럼 시작하겠습니다. 파이썬이란? 파이썬은 스크립트 프로그래밍 언어로 아주 다양한 분야에서 사용이 가능합니다. 예를 들어, 최근 많이 사용하는 인공지능이나 웹사이트 구축, 데이터 분석이나 자동화 등의 분야에서 아주 유용하게 사용되고 있습니다. 파이썬 개발환경 자, 일단 코드를 해볼 환경이 필요합니다. 우리는 구글에서 제공하는 colab 이라는 노트북을 사용할꺼에요. 노트북은 파이썬 코드를 작성하고 바로 실행해 볼 수 있는 웹기반의 개발환경입니다. 아래 사이트로 접속해서 로그인 합니다. (.. 2020. 9. 16.
파이썬(Python) if else 구문을 한 줄로 표현하기 상황에 따라서 if else 구문을 한준에 표현하면 코드의 가독성이 올라가는 경우가 있습니다. 방법은 아래와 같습니다. c = a if condition else b 이 구문은 condition이 참(true)가 되면 c는 a가 되고 아니면 b가 되는것이죠. 실제 예제로 확인 해볼께요. x = 10 c = 'hi' if(x % 2 == 0) else 'bye' print(c) # hi 하지만 if else 를 한 줄로 표현하는것을 그렇게 추천드리지는 않습니다. 혹시나 사용이 남발되면 가독성이 떨어질 수 있기 때문입니다. (사실, 아래처럼 간단한 if else 구문을 여러줄에 걸쳐써도 가독성이 떨어지지 않습니다.) x = 10 if x % 2 == 0: print('hi') else: print('bye'.. 2020. 9. 15.
우분투(Ubuntu) 설치 [라즈베리파이(Raspberry Pi)] 이번 포스팅에선 라즈베리파이4에 우분투를 설치하고 ssh로 원격접속 하는 방법을 알아보겠습니다. 모니터와 키보드 및 마우스가 없어도 설치가 가능합니다. 우분투 라즈베리파이의 공식 설치 튜토리얼은 아래 링크에서 확인가능합니다. https://ubuntu.com/tutorials/how-to-install-ubuntu-on-your-raspberry-pi 라즈베리파이에 Raspberry Pi OS(이전에는 Raspbian 이라고 불렸어요)를 설치하고 싶다면 아래 링크를 확인하세요. 2020/08/25 - [라즈베리파이] - 라즈베리파이(Raspberry Pi) 시작하기 준비물 라즈베리파이 3 또는 4 Micro SD 카드(최소 4GB, 8GB 이상 추천) 및 리더기 랜케이블 인터넷이 되는 컴퓨터 Raspbe.. 2020. 9. 13.
파이썬(Python) 두 개의 리스트를 동시에 순회하기 두 개의 리스트를 동시에 순회(iteration)하는 방법은 zip() 을 통해서 가능합니다. 튜플(tuple)이나 딕셔너리(dictionary)등의 iterable이면 무엇이든 zip()으로 사용할 수 있습니다. one = [1, 2, 3] two = [4, 5, 6] for i, j in zip(one, two): print(i, j) # 1 4 # 2 5 # 3 6 만약 리스트의 크기가 다르다면 갯수가 적은 리스트만큼만 순회(iteration)를 하게 됩니다. one = [1, 2] two = [4, 5, 6, 7] for i, j in zip(one, two): print(i, j) # 1 4 # 2 5 zip() 안에 들어가는 인자를 섞어서 사용할 수 도 있습니다. 아래 예제에선 리스트와 튜플을.. 2020. 9. 13.
파이썬(Python) 딕셔너리 값(value)로 정렬하기 딕셔너리(dictionary)를 각각 아이템의 값(value)로 정렬(sort)해야 할 일이 있습니다. 예를 들어서 특정 문서에서 각각의 알파벳이 나온 횟수를 저장할 때, 딕셔너리의 키(key)를 알파벳으로, 값(value)를 나온 횟수로 저장할 수 있습니다. 만약 어떤 알파벳이 제일 많이 쓰였는지를 알고 싶을때는 딕셔너리의 값으로 정렬을 해야겠지요. 아래 예제에서 확인해 보겠습니다. import operator d = {'a': 5, 'x': 2, 'd': 3, 'c': 1, 'e': 0}# 알파벳을 카운팅한 결과가 딕셔너리로 저장 되었습니다. # 딕셔너리를 아이템별 리스트로 가져와서 아이템의 인덱스 첫번째(즉, value) 값을 키로 정렬합니다. sorted_by_value = sorted(d.ite.. 2020. 9. 13.
파이썬(Python) *args **kwargs 는 무엇일까? 파이썬 코드에서 함수의 파라미터로 *args 또는 **kwargs 를 보는 경우가 있습니다. 기본적으로, *(별표, asterisk)는 여러개의 인자들(positional arguments)을 받겠다는 의미를 포함합니다. 먼저, *args를 살펴볼께요. 아래 예제에서는 foo() 함수에서 *args를 사용하여 인자들을 튜플(tuple)로 받을 수 있게 해줍니다. 즉 args의 타입은 튜플이 되겠죠. 그리고 갯수에 상관없이 얼마든지 인자로 값들을 넘겨줄 수 있습니다. def foo(*args): for a in args: print(a) foo(1, 2) # 1 # 2 foo(1, 2, 3) # 1 # 2 # 3 그럼 **kwargs는 어떨까요? *args와 유사하지만 튜플이 아닌 딕셔너리(dict) 타입.. 2020. 9. 12.