들어가며
저는 HW엔지니어로 15년 차 근무 중인 여느 평범한 직장인입니다. 전기전자 및 컴퓨터 공학 학부 졸업인데 프로그래밍이 맞지 않아서 세부 전공을 전자과로 선택했습니다. 이제 세상이 빨리 바뀌어서 HW의 입지는 점점 좁아지고 SW의 위상은 점점 높아지고 있습니다. 그것을 떠나서 데이터 분석이라는 분야에 흥미가 생겨서 공부를 하고 있는데 파이썬이 데이터 분석을 위해서 R과 함께 가장 많이 쓰이고 있습니다. 파이썬은 배우기가 다른 언어에 배우기 쉽다고 하니 도전해보려고 합니다. 그리고 독학한 내용을 기록으로 남겨보려고 합니다. 기록으로 남기지 않으면 제 기억력은 한계가 있어서 다 잊어버리기 때문입니다. 오늘은 파이썬 왕기초 편을 정리해보려고 합니다.
파이썬 주요 용어 및 개념 정리
숫자형
정수형과 소수점이 들어간 실수형이 있습니다. +, -, *, /의 연산자를 사용하여 사칙연산이 가능합니다. **, //, % 연산자도 있습니다. **연산자를 사용하면 제곱을 할 수 있습니다. // 연산자는 몫을 구할 수 있습니다. %는 나머지를 구할 수 있습니다. 예를 들어 print(1 ** 2)를 실행하면 1의 2 제곱을 실행한 2가 나옵니다. print(3 // 4)를 실행하면 3을 4로 나눈 몫인 0이 나옵니다. print(5 % 6)을 실행하면 5를 6으로 나눈 나머지인 5를 구할 수 있습니다.
변수
다음은 변수라는 개념에 대해서 알아보겠습니다. 변수는 값을 저장하는 공간이라고 이해하시면 됩니다. 비유로 설명하면 라벨이 붙어있는 상자라고 이해하시면 쉽겠네요. 숫자형 등이 상자안에 들어가고 붙어있는 라벨을 가지고 의미도 파악하고 다음에 또 쓸 수도 있습니다. 상자 안의 값은 바뀔 수 있고요 값에 이름을 붙여주는 셈입니다. = 연산자를 사용하고 오른쪽에 있는 값을 왼쪽에 있는 변수에 저장합니다. 예를 들면 my_int = 1, my_str = 'Python', my_bool = True, my_list = [1, 2, 3]과 같이 사용됩니다. 변수 이름은 임의로 지정하여 사용할 수 있는데 몇 가지 규칙이 있습니다. 숫자로 시작할 수 없고 빈칸은 사용할 수 없고 _는 사용할 수 있고 대문자와 소문자를 구별합니다.
복합 할당 연산자
연산을 하면서 할당도 할 수 있는 연산자 입니다. +=, -=, *=, /=와 같은 연산자가 있습니다. a = a+b라는 수식을 a+=b라는 식으로 줄일 수 있습니다. i+=1과 같은 형태로 많이 쓰입니다. 풀어쓰면 i = i + 1과 같이 쓸 수 있습니다. 반복문에서 반복이 될 때마다 1씩 증가하는 변수로 활용할 수 있습니다.
문자열
문자나 문자를 나열한 것을 문자열이라고 합니다. 파이썬에서 문자열을 사용하기 위해서는 작은 따옴표나 큰 따옴표로 묶어야 합니다. 예를 들면 my_str1 = 'abc', my_str2 = '3.14'등과 같이 쓸 수 있습니다. type(print(my_str2)를 실행해보면 str로 문자열임을 확인할 수 있습니다. 문자열에서도 연산이 가능합니다. + 연산자는 문자열을 연결하고, * 연산자는 문자열을 반복합니다. 단, 문자열을 곱할 때는 숫자만 됩니다. 예를 들어 my_str1 = 'a' + 'b' + 'c'를 print(my_str1)으로 출력하면 abc가 출력이 됩니다. my_str2 = "=" * 10을 print(my_str2)로 실행하면 =이 10번 반복된 문자열이 출력됩니다.
인덱싱
위치를 이용하여 문자열에 있는 하나의 문자를 가져올 때 사용합니다. 각 문자마다 위치를 의미하는 인덱스가 있고 인덱싱은 그 위치를 가져오는 것입니다. python이라는 문자열은 각 문자마다 012345 또는 -6 -5 -4 -3 -2 -1라는 주소가 지정되어 있습니다. [5]인덱스 또는 [-1] 인덱스는 n 문자의 주소를 의미합니다. 예를 들면 alphabet = 'abcde'라는 변수를 선언했을 때 print(alphabet[0])을 실행하면 a값을 얻을 수 있습니다. 만약 print(alphabet[-1])을 실행하면 t값을 얻을 수 있습니다.
슬라이싱
슬라이싱을 사용하면 여러개의 문자를 한꺼번에 가져올 수 있습니다. 여러 개의 문자를 잘라오는 것을 의미합니다. python이라는 문자열에서 [1:4]는 yth 문자열을 가져올 수 있습니다. 여기서 시작은 [1]부터이지만 끝은 [3]까지만 가져오는 것에 주의해야 합니다. 예를 들어 my_str = 'Hello Python!'라는 문자열에서 print(my_str[0:2])를 실행하면 He의 값을 얻을 수 있습니다. 슬라이싱을 하더라도 변수에 저장된 원본의 값은 그대로 유지됩니다. 슬라이싱에서 콜론 앞뒤로 인덱스를 생략할 수 있는데 이경우는 처음 또는 끝까지 슬라이싱하게 됩니다. python이라는 문자열에서 [:4]은 pyth을 가져오고 [2:]는 thon을 가져옵니다.
메소드
함수는 특정한 기능을 수행하는 코드의 모음을 의미합니다. 메소드는 특정 자료형만을 쓸 수 있는 함수를 의미합니다. 여기서는 split(), format(), print('', end='')를 살펴보겠습니다. 먼저 split()는 문자형만 쓸 수 있는 메소드입니다. fruit_str = 'apple banana lemon'변수를 선언하고 fruits = fruit_str.split() 메소드를 실행하면 공백을 기준으로 문자열을 잘라 ['apple', 'banana', 'lemon'] 리스트로 저장하게 됩니다. print(fruits[0])를 실행하면 apple을 얻고 print(fruits[1])를 실행하면 banana를 얻을 수 있습니다. 다음으로 format()은 문자열 메소드로 문자열을 자유롭게 표현하게 해주는 메소드입니다. 중괄호와 함께 쓰입니다. 예를 들어 print('Life is {}.format('Short!'))에서 문자열 안에 중괄호가 들어갑니다. format의 괄호 안의 값이 입력값이 됩니다. 실행하면 format의 괄호 안의 값이 중괄호로 대입이 됩니다. 실행하면 Life is Short! 값을 얻습니다. 다른 예로 print('{} x {} = {}'.format(2, 3, 2*3))와 같이 대입하는 값이 여러 개가 될 수 있습니다. 2, 3, 2*3의 입력값이 앞의 세 개의 중괄호로 순차적으로 대입됩니다. 실행하면 2 * 3 = 6이라는 문자열을 얻을 수 있습니다. 다음으로 print(' ', end=' ') 메소드에서 print는 end라는 키워드와 함께 쓰여 출력의 끝을 지정할 수 있습니다. 일반적으로 print를 실행하면 자동으로 줄 바꿈으로 설정되어 있는데 이것을 바꿀 수 있습니다. print('coding', end = '')은 출력 후 줄 바꿈을 하지 않고 빈문자열이 뒤에 옵니다. 다음 출력이 바로 붙는것이지요. print('coding', end = '-') 은 출력 후 -가 옵니다. print('coding', end = '\n')는 출력후 줄바꿈을 합니다. print('coding', end = '\t')는 출력 후 탭 공백이 옵니다.
주석
사람을 위해서 코드 설명을 할 때 사용합니다. 컴퓨터는 주석을 무시하고 실행합니다. 한 줄 주석은 보통 #을 사용합니다. print('안녕!') # 문자열을 출력과 같은 형태로 작성이 됩니다. # 뒤의 설명은 실행 시 무시됩니다. 여러 줄 주석은 두가지 방법으로 사용이 가능합니다. 첫 번째는 큰 따옴표 세개를 연속으로 감싸면 됩니다. """ 코드 """ 이런 식입니다. 두 번째는 작은 따옴표 세개를 연속으로 감싸면 됩니다. ''' 코드 ''' 이런 식입니다. 여러줄 주석을 달 때 들여 쓰기를 맞춰줘야 합니다. if문의 끝, 함수의 끝 등의 범위를 들여쓰기로 인식을 하게 되는데, 주석도 마찬가지로 들여쓰기를 맞추어서 어느 함수 주석인지 구분을 해야 합니다.
이상으로 평범한 직장인의 데이터 분석을 위한 파이썬 독학 왕기초 편 정리를 마치겠습니다.
'데이터 분석 및 업무 자동화' 카테고리의 다른 글
비전공 직장인의 파이썬 독학 - 조건문과 반복문 (0) | 2022.02.07 |
---|---|
평범한 직장인의 파이썬 독학 기록 - 리스트, 딕셔너리, 함수 (0) | 2022.02.05 |
MySQL 데이터 그룹화하기 - GROUP BY (0) | 2022.01.27 |
빅데이터 전문가 되는 법 (0) | 2022.01.26 |
MySQL로 데이터분석 해보자 - ORDER BY, RANK (0) | 2022.01.24 |
댓글