파이썬에서 기본으로 사용되는 할당연사자(Assignment Operators)는 등호(=)이다. 등호는 등호 오른쪽의 값을 왼쪽으로 할당한다.

 

파이썬에는 등호를 응용한 다양한 할당연사자가 존재한다. 그 종류는 다음과 같다.

 

 할당연산자

기능 

 =

 왼쪽 변수에 오른쪽 값을 할당한다.

a = b 는

a = b 를 의미함

 +=

 왼쪽 변수에 오른쪽 값을 더하고 그 결과를 왼쪽 변수에 할당한다.

a += b

a = a+b 를 의미함

 -=

 왼쪽 변수에 오른쪽 값을 빼고 그 결과를 왼쪽 변수에 할당한다.

a -= b 는

a = a-b 를 의미함

 *=

 왼쪽 변수에 오른쪽 값을 곱하고 그 결과를 왼쪽 변수에 할당한다.

a *= b 는

a = a*b 를 의미함

 /=

 왼쪽 변수에 오른쪽 값을 나누고 그 결과를 왼쪽 변수에 할당한다.

a /= b는

a = a/b 를 의미함

 %=

 왼쪽 변수에 오른쪽 값을 나눈 후 그 나머지를 왼쪽 변수에 할당한다.

a %= b 는

a = a%b 를 의미함

 //=

 왼쪽 변수에 오른쪽 값을 나눈 후 그 몫을 왼쪽 변수에 할당한다.

a //= b 는

a = a//b 를 의미함

 **=

 왼쪽 변수에 오른쪽 값을 제곱하고 그 결과를 왼쪽 변수에 할당한다.

a **= b 는

a = a**b 를 의미함

 

 

위 할당 연산자들을 실행해보면 다음과 같은 결과를 얻을 수 있다.

 

 

1. =

>>> a = 5

>>> b = 3 

>>> print(a, b)

(5, 3) ## a에 5가, b에 3이 할당됨

 

 

2. +=

>>> a, b = 5, 3 

>>> a += b ## a = a+b

>>> print(a, b) 

(8, 3) ## a(5)에 b(3)을 더한 값을 a에 할당하므로, a가 8로 변경됨

 

3. -=

>>> a, b = 5, 3 

>>> a -= b ## a = a-b

>>> print(a, b) 

(2, 3) ## a(5)에 b(3)을 뺀 값을 a에 할당하므로, a가 2로 변경됨

 

 

4. *=

>>> a, b = 5, 3 

>>> a *= b ## a = a*b

>>> print(a, b) 

(15, 3) ## a(5)에 b(3)을 곱한 값을 a에 할당하므로, a가 15로 변경됨

 

5. /=

>>> a, b = 5, 3 

>>> a /= b ## a = a/b

>>> print(a, b) 

(1, 3) ## a(5)에 b(3)을 나눈 값을 a에 할당하므로, a가 1로 변경됨

       ## a와 b의 자료형(type)이 정수(int)이므로, 나눈 5/3의 결과가 정수인 1로 나타난다.

 

>>> type(a)

int

 

>>> type(b)

int

 

>>> a, b = 5.0, 3.0 ## a와 b의 자료형을 실수(float)로 입력 

>>> a /= b ## a = a/b

>>> print(a, b) 

(1.6666666666666667, 3.0) ## 데이터가 실수로 입력되니 소수점까지 표현됨

 

>>> type(a)

float

 

>>> type(b)

float

 

 

6. %=

>>> a, b = 5.0, 3.0 ## a와 b의 자료형을 실수(float)로 입력 

>>> a %= b ## a = a%b (나머지 구하기)

>>> print(a, b) 

 

(2.0, 3.0)

 

 

7. //=

>>> a, b = 5.0, 3.0 ## a와 b의 자료형을 실수(float)로 입력 

>>> a //= b ## a = a//b (몫 구하기)

>>> print(a, b) 

 

(1.0, 3.0)

 

 

8. **=

>>> a, b = 5, 3  

>>> a **= b ## a = a**b (5의 3제곱)

>>> print(a, b) 

 

(125, 3)

 

 

 

2018.09.11. 코리.

 

 






파이썬에서는 숫자나 문자를 담을 수 있는 자료구조가 4가지가 있다. 바로 리스트(list), 튜플(tuple), 사전(dictionary), 집합(set)이다.



1. 리스트(list)

   - 값을 순서대로 저장하는 구조이다.

   - 생성 후 수정과 삭제가 자유롭다.


2. 튜플(tuple)

   - 리스트와 같이 값을 순서대로 저장하는 자료구조이지만, 수정과 삭제를 할 수 없다.

   - 수정이 필요없거너 수정해서는 안되는 자료를 담기에 적합하다. (예 : 위치정보 좌표 등)


3. 사전(dictionary)

   - Key와 그에 대응하는 Value를 짝지어 놓은 자료 구조이다.

   - 사전에서 "사과"를 찾으면 "apple"이 나오는 방식이다.


4. 집합(set)

   - 수학에서 사용하는 집합과 같은 개념이다.

   - 자료 구조 중에서 유일하게 값들을 모아둘 수 있는 구조이다.

   - 반복값을 허용하지 않으며, 순서 또한 보존하지 않는다.




이제 각 자료구조에 대해 자세히 알아보자



리스트(list)


1. 만드는법

대괄호로 만들기

>>> a = [1,2,3]

>>> print(a)

[1, 2, 3]


list 함수로 만들기

>>> b = list('abc')

>>> print(b)

['a', 'b', 'c']



2. 리스트 인덱싱(indexing)과 슬라이싱(slicing)

   : 인덱싱과 슬라이싱은 앞서 살펴본 포스팅에서 확인할 수 있다("파이썬 - 자료형" 보러가기)

슬라이싱에 간격을 적용할 수 있다 [시작인덱스 : 끝인덱스 : 간격]

>>> c = [1,2,3,4,5,6,7]

>>> c[::2] ##처음부터 끝까지 2간격으로 선택

[1, 3, 5, 7]


>>> c[1:6:3]  ##1번 값부터 6번값 사이에 3간격으로 선택

[2, 5]



3. 리스트 길이 확인

len 함수를 활용하여 리스트 안에 몇 개의 값이 있는지 확인 할 수 있음

>>> c = [1,2,3,4,5,6,7]

>>> len(c)

7



4. 리스트 수정, 정렬, 확인하기

데이터 추가하기


>>> 과일 = ['사과', '배', '포도', '복숭아', '귤']

>>> 과일.append('딸기')

>>> print(과일)

['사과', '배', '포도', '복숭아', '귤', '딸기']  ## 가장 끝에 "딸기"가 추가됨


★원하는 위치에 데이터 추가하기


>>> 과일.insert(1, '참외')

['사과', '참외', '배', '포도', '복숭아', '귤', '딸기']  ## 1번째 위치(사과 다음)에 "참외"가 추가됨


데이터 삭제하기


>>> 과일 = ['사과', '참외', '배', '포도', '복숭아', '귤', '배', '딸기']

>>> 과일.pop(5)  ## pop은 지정된 값을 호출하고 삭제함, 

                        ## 값을 지정하지 않으면 (-1)로 자동 지정되어 가장 마지막 값을 호출하고 삭제함

'귤'

>>> print(과일)

['사과', '참외', '배', '포도', '복숭아', '배', '딸기'] ## '귤'이 삭제 됨


>>> 과일.remove('배') ## remove는 가장 앞에 있는 값을 삭제함

>>> print(과일)

['사과', '참외', '포도', '복숭아', '귤', '배'] ## 2개의 '배' 중 가장 앞에 있는 것이 삭제됨


데이터 삭제하기


>>> 과일 = ['사과', '참외', '배', '포도', '복숭아', '귤', '배', '딸기']

>>> del 과일[1:3]  ## 인덱싱과 슬라이싱으로 원하는 데이터 삭제

>>> print(과일)

['사과', '포도', '복숭아', '귤', '배', '딸기']


데이터 찾아서 바꾸기


>>> 과일 = ['사과', '참외', '배', '포도', '복숭아', '귤', '배', '딸기']

>>> 과일.index('포도')  ## 포도의 위치정보를 인덱싱으로 확인

3


>>> 과일[3] = '수박'  ## 포도의 위치정보에 수박을 입력

>>> print(과일)

['사과', '참외', '배', '수박', '복숭아', '귤', '배', '딸기']


데이터 정렬하기


>>> 과일 = ['사과', '참외', '배', '포도', '복숭아', '귤', '배', '딸기']

>>> 과일.reverse()  ## 리스트의 순서를 뒤집기

['딸기', '배', '귤', '복숭아', '포도', '배', '참외', '사과']


>>> 과일.sort()  ## 리스트를 순서대로 정렬

>>> print(과일)

['귤', '딸기', '배', '배', '복숭아', '사과', '참외', '포도']


데이터 정렬하기


>>> 과일 = ['사과', '참외', '배', '포도', '복숭아', '귤', '배', '딸기']

>>> 과일.count('배')  ## 리스트 내 값의 갯수를 확인

2


데이터 합치기


>>> 과일1 = ['사과', '참외', '배', '포도']

>>> 과일2 = ['복숭아', '귤', '배', '딸기']

>>> 과일  = 과일1 + 과일2

>>> print(과일)

['사과', '참외', '배', '포도', '복숭아', '귤', '배', '딸기']


데이터 반복하기


>>> 과일1 = ['사과', '참외', '배', '포도']

>>> 과일2 = 과일1 * 2

>>> print(과일2)

['사과', '참외', '배', '포도', '사과', '참외', '배', '포도']




튜플(tuple)


1. 만드는법

★괄호 없이 만들면 튜플이 된다.


>>> a = 1, 2, 3

>>> print(a)

(1, 2, 3)



둥근괄호로 감싸서 만든다.


>>> b = (4, 5, 6)

>>> print(b)

(4, 5, 6)



★tuple 함수에 다른 값을 넣어 튜플로 만든다.


>>> c = (7, 8, 9)

>>> c = tuple(c)

>>> print(c)

(7, 8, 9)


>>> c = [7, 8, 9]  ## 리스트를 튜플로 바꿀 수 있다.

>>> c = tuple(c)

>>> print(c)

(7, 8, 9)




2. 튜플의 인덱싱(indexing), 슬라이싱(slicing), 합치기, 반복 등은 리스트와 동일



3. 수정하기

★튜플은 수정이 불가능하다는 특징이 있음


>>> b = (4, 5, 6)

>>> b[1] = 100

TypeError                                 Traceback (most recent call last)

<ipython-input-119-c3babf5fb9d5> in <module>()

      1 b = (4, 5, 6)

----> 2 b[1] = 100

TypeError: 'tuple' object does not support item assignment ## 튜플을 수정하려고 하자 오류가 발생했다.



★튜플을 리스트로 변환하면 데이터 수정이 가능함


>>> b = (4, 5, 6)

>>> b = list(b)  ## 튜플을 리스트로 변경

>>> print(b)

[4, 5, 6]


>>> b[1] = 100  ## 값 수정

>>> print(b)

[4, 100, 6]


>>> b = tuple(b)  ## 리스트를 다시 튜플로 수정

>>> print(b)

(4, 100, 6)  ## 5가 100으로 수정된 튜플




사전(dictionary)


1. 만드는법

★중괄호를 활용하여 키(key)와 값(value)를 콜론(:)으로 짝지어서 만든다.


>>> 과일 = {'사과' : 'apple', '배' : 'pear', '포도' : 'grape'}

>>> print(과일)

{'사과' : 'apple', '배' : 'pear', '포도' : 'grape'}



★dict 함수로 만든다.


>>> 과일 = dict(사과 = 'apple', 배 = 'pear', 포도 = 'grape')  ## 키(key) 값에는 따옴표가 없다.

>>> print(과일)

{'사과' : 'apple', '배' : 'pear', '포도' : 'grape'}



2. 기본 개념

★사전 자료를 키(key)로 인덱싱하면 값(value)을 받을 수 있다.


>>> 과일['포도']

'grape'



★키(key)가 중복되면, 나중에 나온 값(value)이 저장된다.  ## 키(key)는 중복 없이 유니크 해야 한다.


>>> 과일 = {'사과' : 'apple', '배' : 'pear', '포도' : 'grape', '사과' : 'green apple'}  ## '사과' 키(key)가 중복됨

>>> print(과일)

{'사과': 'green apple', '배': 'pear', '포도': 'grape'}



★키(key)에는 숫자, 문자, 튜플 등 불변(immutable)인 값들만 넣을 수 있다. 리스트와 같이 가변적인(mutable) 값은 키(key)로 사용할 수 없다.



3. 자료 확인

★키(key) 확인하기


>>> 과일.keys()

dict_keys(['사과', '배', '포도'])



★값(value) 확인하기


>>> 과일.values()

dict_values(['apple', 'pear', 'grape'])



★키(key)와 값(value) 짝지어 확인하기


>>> 과일.items()

dict_items([('사과', 'apple'), ('배', 'pear'), ('포도', 'grape')])  ## 리스트로 관리되고 있다.



★키(key)의 존재 확인


>>> 과일.get('복숭아', '없는 key 입니다.')  ## 있는 key를 찾으면 해당 value를 출력한다.

                                                       ## 없는 key를 찾으면 지정된 값을 출력한다. 

                                                       ## 지정된 값이 없으면 아무것도 출력하지 않는다.

'없는 key 입니다.'



★키(key)의 존재 확인


>>> '복숭아' in 과일

False



4. 자료 수정

★키(key)를 삭제할 수 있다.


>>> 과일 = {'사과' : 'apple', '배' : 'pear', '포도' : 'grape'}

>>> del 과일['배']  

>>> print(과일)

{'사과' : 'apple', '포도' : 'grape'}  ## 키(key)를 지우면 값(value)도 함께 삭제됨



★사전을 전부 지울 수 있다.


>>> 과일.clear()

>>> print(과일)

{ }



★키(key)와 값(value)을 추가할 수 있다.


>>> 과일 = {'사과' : 'apple', '배' : 'pear', '포도' : 'grape'}

>>> 과일['복숭아'] = 'peach'

>>> print(과일)

{'사과': 'apple', '배': 'pear', '포도': 'grape', '복숭아': 'peach'}



★"+"를 이용한 결합은 안되지만, update를 할 수 있다.


>>> 과일1 = {'사과': 'apple', '배': 'pear'}

>>> 과일2 = {'딸기' : 'strawberry', '바나나' : 'banana'}

>>> 과일1.update(과일2)

>>> print(과일)

{'사과': 'apple', '배': 'pear', '딸기': 'strawberry', '바나나': 'banana'}



★값(value)을 수정할 수 있다.


>>> 과일['포도'] = 'fresh grapes'  ## 리스트에서 인덱싱으로 값을 수정하는 것과 동일한 방법이다.

>>> 과일['포도']

'fresh grapes'




집합(set)


1. 만드는법

★중괄호로 감싸서 만든다. ## 사전과 동일하게 중괄호를 사용하지만, 키(key)와 값(value)의 짝이 없는 차이가 있다.


>>> a = { 1, 3, 2, 3, 1 }

>>> print(a)

{1, 2, 3}  ## 중복이 사라지고, 순서가 보존되지 않는다.



★set 함수로 만든다.


>>> b = (1, 3, 4, 2, 1, 1, 1)

>>> c = set(b)

>>> print(c)

{1, 2, 3, 4}


>>> 과일 = {'사과' : 'apple', '배' : 'pear', '포도' : 'grape'}

>>> d = set(과일)

>>> print(d)

{'배', '사과', '포도'}  ## 사전을 set하면 키(key)의 집합으로 변환된다.


>>> e =  set('hello')

>>> print(e)

{'e', 'l', 'h', 'o'}



2. 자료 수정 및 활용

★집합에 값 추가하기


>>> 과일 = {'배', '사과', '포도'}

>>> 과일.add('딸기')

>>> print(과일)

{'배', '딸기', '사과', '포도'}



★하나 이상의 값은 update로 추가


>>> 과일 = {'배', '사과', '포도'}

>>> 과일.update(['복숭아', '바나나', '수박']

>>> print(과일)

{'배', '복숭아', '사과', '포도', '수박', '바나나'}



★값 제거는 remove로 할 수 있다.


>>> 과일 = {'배', '사과', '포도'}

>>> 과일.remove('사과')

>>> print(과일)

{'배', '포도'}


★합집합 ( | 또는 union)  ## "|"는 "shift + \"를 누르면 나타난다. 


>>> num_1 = {1, 2, 3}

>>> num_2 = {3, 4, 5}

>>> print(num_1 | num_2)

>>> print(num_1.union(num_2))

{1, 2, 3, 4, 5}

{1, 2, 3, 4, 5}



★교집합 ( & 또는 intersection)


>>> num_1 = {1, 2, 3}

>>> num_2 = {3, 4, 5}

>>> print(num_1 & num_2)

>>> print(num_1.intersection(num_2))

{3}

{3}



★차집합 ( - 또는 difference)


>>> num_1 = {1, 2, 3}

>>> num_2 = {3, 4, 5}

>>> print(num_1 - num_2)

>>> print(num_1.difference(num_2))

{1, 2}

{1, 2}




2018.09.07. 코리.






파이썬에서 다룰 수 있는 자료형(data type)은 크게 숫자, 문자, 그리고 변수가 있다. 



숫자


숫자는 다시 정수(int - integer)와 실수(float)로 구분된다. 

- 정수 : -2, -1, 0, 1, 2 등

- 실수 : 3.14, -3.14, 3.14e5 등


파이썬에서 숫자의 사칙연산은 일반 계산기의 것과 유사하다.


1. 더하기

>>>5 + 2

7


2. 빼기

>>>5 - 2

3


3. 곱하기

>>>5 * 2

10


4. 제곱

>>>5 ** 2

25


5. 나누기

>>>5 / 2

2.5


6. 몫

>>>5 // 2

2


7. 나머지

>>>5 % 2

1




변수


문자에 대한 설명에 앞서 "변수"에 대해 살펴보자. 변수(variable)이란 파이썬을 포함한 프로그래밍에서 특정 값에 이름표를 붙인 것이다.


1. 파이썬에서 변수할당(이름표 붙이기)은 등호(=)를 이용한다.

   - 아래에서 숫자 1에 one 이라는 변수를 할당(이름표를 붙이고)하고, 숫자 2에 two라는 변수를 할당했다.

   - 그리고 one을 입력 및 실행하면 숫자 1이, two를 입력 및 실행하면 숫자 2가 출력된다.

>>>one = 1

>>>two = 2


>>> one

1


>>> two

2



2. 변수와 문자열의 차이

   - "one = 1"이라는 변수를 지정한 후, print를 활용한 출력문에 하나는 one, 다른 하나는 "one"를 입력한다

   - print(one)은 변수 one의 값인 1을 출력한다.

   - print("one")은 문자열 one를 출력한다.

>>>one = 1

>>>print(one)

>>>print("one")


1

one



3. 변수 이름 짓기 규칙

   - 파이썬의 변수는 알파벳 대문자, 알파벳 소문자, 숫자, 언더바( _ ), 한글, 한자 등을 사용할 수 있음

   - 알파벳 대문자와 소문자는 구별함. 즉, 변수 ABC와 abc는 다른 변수임

   - 첫 글자를 숫자로 시작할 수 없다. (예 : 1number, 1_num 등 사용하면 SyntaxErrror 출력됨)

   - 공백, 특수문자, 문장부호를 변수이름으로 사용할 수 없음



4. 변수 덮어쓰기

   - 값이 2번 이상 할당된 변수가 있으면, 가장 마지막에 할당된 값으로 덮어쓰여진다.

   - one 변수는 1 이라는 값이 할당되었지만, one 변수에 10을 다시 할당하면서 값이 덮어쓰여졌다.

>>>one = 1

>>>one = 10

>>>print(one)


10


   - 변수끼리 계산에 의해서도 값이 덮어쓰여진다.

   - 아래 계산을 거치면서 one 변수의 값이 1에서 2로 변경되었다.

>>>one = 1

>>>one = one + 1

>>>print(one)


2




5. 동시에 여러 변수 지정하기

>>>one, two = 1, 2

>>>print(one)

>>>print(two)


1

2



6. 변수 값 교환하기

>>>one, two = 1, 2

>>>one, two = two, one

>>>print(one)

>>>print(two)


2

1



7. Name Error

   - 값이 할당되지 않은(이름표가 붙지 않은) 변수를 실행시키면, NameError가 발생한다.

>>>three


NameError                                 Traceback (most recent call last)

<ipython-input-9-1e7720a3460b> in <module>()

----> 1 three


NameError: name 'three' is not defined



8. 변수 삭제하기

   -  더 이상 쓸모없는 변수는 내장함수 del을 사용해서 지울 수 있다.

   -  변수 two를 삭제한 후 two를 출력하고자 하니, NameError가 발생했다.

>>>del two

>>>print(two)


NameError                                 Traceback (most recent call last)

<ipython-input-10-d32c19b2d22e> in <module>()

      1 del two

----> 2 print(two)


NameError: name 'two' is not defined





문자


1. 문자는 따옴표를 사용해서 만들 수 있다. 

   - 큰 따옴표( " )와 작은 따옴표( ' ) 모두 사용 가능하다.

   - 하나의 문자열은 동일한 따옴표로 시작하고 끝내야 한다. (큰 따옴표와 작은 따옴표를 혼용해서는 안된다)

>>>text_1 = "welcome to python world"

>>>text_2 = ', my friend'



2. 큰 따옴표 안에 또 따옴표 쓰이는 경우

   - 아래 text_3을 실행하면 SyntaxError가 발생한다.

>>>text_3 = "my friend say, "welcome to python world" "


  File "<ipython-input-11-82fa2feae37a>", line 1

    text_3 = "my friend say, "welcome to python world" "

                                    ^

SyntaxError: invalid syntax



3. 따옴표 안에 또 따옴표가 필요한 경우 사용 방법

   - 큰 따옴표 안에 작은 따옴표를 사용한다.

   - 이스케이프 코드( \역슬러쉬(\) )를 사용한다.

   - 연속된 큰 따옴표 3개(""") 사이에 기입된 내용은 모두 문자열로 인식된다. 

>>>text_3 = "my friend say, 'welcome to python world' "

>>>text_3 = "my friend say, \"welcome to python world\"

>>>text_3 = """ 

                 "my friend say, "welcome to python world" "

                 """



4. 문자열 연산

   - 덧셈으로 문자열을 더하고, 곱셈으로 문자열을 반복할 수 있다.

   - 문자열 곱셈은 줄 긋기 등으로 활용할 수 있다.

>>>text_1 = "welcome to python world"

>>>text_2 = ', my friend'

>>>text_1 + text_2


'welcome to python world, my friend'



>>>'go' * 3


'gogogo'



>>>'=' * 30


'=============================='



5. Format

   - 문자열에 원하는 값을 입력하기 위해 Format을 이용할 수 있다.

>>>'Hello { }, welcome to { } world' .format('John', 'python')


'Hello John, welcome to python world'



>>>who = 'John'

>>>what = 'python'

>>>'Hello {name1}, welcome to {name2} world' .format(name1=who, name2=what)


'Hello John, welcome to python world'


   - 파이썬 3.6부터는 .format()을 대신하여 f' '를 사용할 수 있다.

>>>who = 'John'

>>>what = 'python'

>>>f 'Hello {who}, welcome to {what} world'



6. 문자열 인덱싱(indexing)

   - 문자열에서 특정 글자에 접근하는 방식을 인덱싱(indexing)이라 한다.

   - 중괄호( [ ] )를 사용해서 문자열의 특정 글자 순서를 지정함으로써 인덱싱 할 수 있다.

   - 첫 글자의 순서는 0 으로 시작한다.

   - 가장 마지막 글자의 순서는 -1 로 지정할 수 있다.

   - 공백도 글자수에 포함된다.

>>>text_2 = 'my friend'

>>>text_2[0], text_2[1], text_2[2], text_2[3]


('m', 'y', ' ', 'f')



>>>text_2 = 'my friend'

>>>text_2[-1], text_2[-2], text_2[-3], text_2[-4]


('d', 'n', 'e', 'i')



7. 문자열 슬라이싱(slicing)

   - 문자열에서 인덱싱을 활용하여 문자를 범위로 선택하는 것을 슬라이싱(slicing)이라 한다.

   - 중괄호( [ ] )와 콜론( : )을 사용해서 문자열 인덱싱으로 범위를 지정한다.

   - 편이상 0과 마지막 숫자를 생략할 수 있다. (예 : text_2[:2] )

>>>text_2 = 'my friend'

>>>text_2_1 = text_2[0:2]

>>>text_2_2 = text_2[3:9]


>>>print(text_2_1)

>>>print(text_2_2)


my

friend



8. 문자열에서 사용되는 함수

   - join 함수 : 문자열을 원하는 글자로 더한다.

   - split 함수 : 문자열을 원하는 글자로 나눈다.

   - strip 함수 : 문자열 앞뒤의 공백을 지운다. 문자열 내부의 공백은 지우지 않는다.

   - replace 함수 : 문자열의 특정 글자를 다른 글자로 바꾼다.

   - in 함수 : 문자열 안에 해당 글자가 있는지 확인

   - not in 함수 : 문자열 안에 해당 글자가 없는지 확인

   - count 함수 : 특정 글자가 문자열에 몇번 사용되었는지 확인

   - find 함수 : 문자열에서 특정 글자나 단어의 위치를 확인

   - index 함수 : 문자열에서 특정 글자의 위치정보 확인

   - capitalize : 문자열의 첫 글자를 대문자로 변환

   - lower : 모든 글자를 소문자로 변환

   - upper : 모든 글자를 대문자료 변환

   - startswith : 해당 문자열이 특정 글자로 시작되는지 확인

   - endswith : 해당 문자열이 특정 글자로 끝나는지 확인

>>>"-".join('my friend')

'm-y- -f-r-i-e-n-d'


>>>'welcome to python world' .split(' ')

'welcome', 'to', 'python', 'world'


>>>'     my   friend     ' .strip()

'my   friend'


>>>'pithon world' .replace('pi', 'py')

'python world'


>>>text_4 = 'Hello John, welcome to python world'

>>>'python' in text_4

True


>>>'python' not in text_4

False


>>>text_4.count('o')

6


>>>text_4.find('to')

20


>>>text_4.index('p')

23


>>>text_2 = 'my Friend'

>>>print( text_2.capitalize() )

My Friend


>>>print( text_2.lower() )

my friend


>>>print( text_2.upper() )

MY FRIEND


>>>text_4 = 'Hello John, welcome to python world'

>>>text_4.startswith('Hello')

True


>>>text_4 = 'Hello John, welcome to python world'

>>>text_4.endswith('python')

False




자료형 변환


1. 정수로 변환

   - 실수를 정수로 변환

   - 문자형 숫자를 정수로 변환

>>>int(3.14)

3


>>>int('314') * 100

31400


2. 실수로 변환

   - 정수를 실수로 변환

   - 문자열을 실수로 변환

>>>float(3)

3.0


>>>float('3.14') / 10

0.314


3. 문자열로 변환

   - 숫자(정수, 실수)를 포함한 값들을 문자열로 변환

>>>str(3.14)

'3.14'




2018.09.05. 코리. 



 

 

 

파이썬을 사용함에 있어 가장 기본인 모드 변경과 셀 조작하는 방법에 대한 포스팅하고자 한다. 간단하지만 처음 jupyter notebook을 켰을 때 생기는 막막한 마음을 달래줄 수 있다. 

 

 

 

<그림1> 파이썬 모드 변경

 

파이썬(python)에는 모드가 명령모드와 편집모드 2가지 있다. 위 그림에 파란색 테두리가 명령모드이고, 녹색 테두리가 편집모이다.

셀에 어떠한 명령을 내리고 싶을 때 명령모드를 사용하고, 코드를 입력하고 편집할 때 편집모드를 사용한다.

 

명령모드에서 편집모드로 이동하는 단축키는 엔터(enter)키 이고, 반대로 편집모드에서 명령모드로 이동하는 단축키는 ESC키 이다. 

 

 

 

<그림2> 파이썬 셀 조작하기

 

파이썬(python)에서는 하나의 라인을 "셀"이라고 부른다. 셀을 추가하고, 삭제하고, 복사하고, 합치는 방법이 있다. 이런 셀 조작은 <그림1>에서 살펴본 "명령모드"에서 가능하다는 점을 유념해야 한다.

 

1. 셀 추가하기

   - 셀을 추가하기 위해서는 추가할 위치(기준 셀)을 선택해야 한다.

   - <그림2>에서 2번 셀을 기준으로 선택(마우스 클릭)한 경우

   - 키보드에서 a 를 누르면 "기준 셀 위"에 셀(라인)이 추가된다.

   - 키보드에서 b 를 누르면 "기준 셀 아래"에 셀(라인)이 추가된다.

 

2. 셀 제거하기

   - 제거하고자 하는 셀을 선택(마우스 클릭) 한 후

   - 키보드에서 x 를 누르면 해당 셀(라인)이 삭제된다.

   - 제거한 셀을 다시 살리고자 한다면 키보드에서 z 를 누른다.

 

3. 셀 복사하고 붙여넣기

   - 복사할 셀을 선택(마우스 클릭) 한 후

   - 키보드에서 c 를 눌러서 복사한다.

   - 복사한 셀을 붙여넣기 위해서는 붙여 넣을 기준이 되는 셀을 선택한 후

   - 키보드에서 v 를 누르면 기준 셀 아래에 붙여 넣어진다.

   - 키보드에서 shift + v 를 누르면 기준 셀 위에 붙여 넣어진다.

 

4. 셀 이동하기

   - 이동하고 싶은 셀을 선택한 후 방향키(화살표)로 셀을 이동시킬 수 있다.

 

5. 셀 합치기

   - 합치고 싶은 셀을 선택한다. <그림2>에서 3, 4번 셀을 선택한다.

   - 키보드에서 shift + m 을 누르면 선택된 셀을 합칠 수 있다.

   - 합쳐진 결과가 5번째 셀에 나타나 있다.

 

 

 

여기에 추가로 셀에 입력된 내용을 실행하는 "코드 실행"은 키보드에서 shift + enter 를 누르는 것이다. 코드 실행은 명령모드가 아닌 "편집모드"에서 실행해야 한다.

 

그리고 코드를 실행했는데, 무한루프에 빠졌거나, 결과가 너무 많이 나와서 중간에 커널을 강제로 멈추고 싶다면, 키보드에서 ctrl + c 를 눌러야 한다.

 

 

기본적인 파이썬(주피터 노트북) 사용방법을 알아보았다.

 

 

2018.09.04. 코리. 

 

 




국민대 빅데이터 MBA과정에서 첫 학기에 수강하는 과목 중에 python 이라는 과목이 있다. 며칠 전 R에 이어, 오늘은 python 설치에 대해 포스팅하고자 한다.


python, 즉 파이썬은 1991년 네덜란드 프로그래머인 휘도 판 로숨(Guido Van Rossum)이 첫 버전을 발표했으며, 현재 3.6 버전까지 발표되고 있다. 파이썬은 데이터 사이언스, 분석, 머신러닝 측면에서 R과 함께 사용 빈도가 가장 높은 프로그램 언어이다.


파이썬의 장점은 다음과 같다.

   - 오픈소스 (무료)

   - 대화형 환경

   - 많은 사용자와 활발한 커뮤니티

   - 다양한 방면에서 사용(구글, NASA, 유투브 등)


파이썬의 단점은 속도가 느리다는 점과 모바일 앱 개발에 쓰기 어렵다는 점이 있다. 속도가 느리다는 정도는 데이터 처리 자체가 1분이나 10분씩 걸린다는 것이 아니라, 상대적으로 빠른 프로그램이 0.0001초에 끝낼 계산을 파이썬은 0.001초에 끝낸다는 의미이니 일상적인 사용에는 문제가 없겠다.


파이썬으로 할 수 있는 것에는 다음의 것들이 있다.

   : 웹 개발, 게임 개발, 업무 자동화, 데이터 분석, 기계 학습, 과학 계산, 텍스트 처리, 이미지 처리, 멀티미디어, 데이터베이스 등


데이터 분석을 위해 파이썬을 설치하는 방법에는 크게 2가지가 있다.

1. 파이썬을 설치한다.

   : https://www.python.org/

2. 아나콘다(anaconda)를 설치한다.

   : https://www.anaconda.com/


파이썬에서는 필요한 패키지를 직접 설치해줘야 하는데, 이것이 번거롭고 버전 충돌 문제로 인해 불편하다. 이러한 불편함을 덜어주기 위해 아나콘다(anaconda)는 데이터 분석에 자주 쓰이는 모듈과 함께 파이썬을 패키지로 제공한다. 그래서 데이터 분석을 위해 파이썬을 사용하는 경우, 아나콘다를 설치하는 것이 수월하다.




자, 이제 아나콘다 설치 과정에 대해 알아보자



<그림1. 아나콘다 홈페이지>

https://www.anaconda.com

- 본인의 운영체제에 맞는 버전을 설치하면 되겠다.

- 설치 전에 반드시 본인의 컴퓨터 시스템 종류가 32비트인지 64비트인지 확인한 후 설치하여야 한다.

- 내 컴퓨터 시스템 종류(32비트/64비트) 확인 방법

   ① 윈도우버튼+r → 실행창에서 dxdiag 실행 → 운영체제에서 확인

   ② 램이 2기가 이하이면 100% 32비트, 8기가 이상이면 100% 64비트, 4기가면 반반



<그림2. 아나콘다 설치 과정<

- 설치과정에는 별 어려움 없이 다음을 선택하면 된다. 주의할 점 몇 가지가 있다.

- ③번에서 권한 등의 문제로 인해 "Just me"를 선택하는 것이 정신건강에 좋다.

- ⑤번에서 두 가지 옵션을 모두 선택한다. 첫 번째 옵션은 아나콘다를 패쓰에 추가해주는 옵션이다. 두 번째 옵션은 아나콘다를 기본 파이썬으로 인식한다는 옵션이다.


<그림3. 아나콘다 버전확인>

- 아나콘다 설치가 성공적으로 완료되었는지, 그리고 아나콘다의 버전을 확인하는 방법은 다음과 같다.

  : 윈도우+r → "cmd" 입력 후 엔터 → "conda --version" 입력 후 엔터 → 버전 확인 → cmd 창을 닫을 때는 "exit" 입력하고 엔터



이제 파이썬을 사용할 준비가 완료되었다!


2018.04.02. 코리.







국민대 빅데이터 MBA과정에서 첫 학기에 수강하는 과목 중에 R 이라는 과목이 있다. 오늘은 R 이라는 프로그램의 설치 방법에 대해 포스팅하고자 한다.


R 프로그램 설치는 누구나 할 수 있을 정도로 쉽고 간단하기 때문에 아래 설치 사진으로 대체하고, R에 대한 소개와 장단점에 대해 먼저 알아보자. 


R은 통계 계산과 그래픽을 위한 프로그래밍 언어이자 소프트웨어 환경이다. 통계 소프트웨어 개발과 자료 분석에 널리 사용되고 있으며, 패키지 개발이 용이하여 통계학자들 사이에서 통계 소프트웨어 개발에 많이 사용되고 있다. R은 C, Fortran 그리고 R을 이용해서 만들어졌다. 


R은 뉴질랜드 오클랜드 대학의 Ross Ihaka와 Robert Gentleman에 의해 시작되어, 현재는 R 코어 팀이 유지관리는 해오고 있다. 프로그램 이름이 R인 이유에는 다음과 같은 썰이 있다.1)

1. 개발자 2명(Ross, Robert)의 이름에서 유래되었다.

2. R의 기반이 된 또 다른 통계언어인 S를 뛰어 넘기 위해 알파벳에서 S 앞에 오는 R로 이름을 지었다.


R은 open source로 제공되어 무료로 다운로드 및 설치가 가능하다. R의 다운로드는 CRAN(https://cran.r-project.org)에서 가능하다. CRAN은 Comprehensive R Archive Network의 약자로 R과 관련된 다양한 자료들의 창고이다. 


R과 항상 함께 따라다니는 RStudio라는 프로그램이 있다. RStudio는 R의 통합개발환경(IDE, Integrated development environment)으로 R을 보다 손쉽게 사용할 수 있게 해주는 도구이며, R이 설치되어 있어야 이용이 가능하다. RStudio는 www.rstudio.com에서 무료로 설치할 수 있다. 개인용은 무료이지만, 기업용은 비용을 지불하고 사용해야 한다. R을 설치 한 후에 RStudio를 또 설치하는 것에 의문을 가질 수 있다. 둘 간의 관계는 R을 말(horse)에 비유하면 RStudio는 안장인 셈이다. 안장 없이 말을 탈 수 있지만 불편하기 때문에 모든 사람들이 말 등에 안장을 얹진 후 말을 타는 것이다. 그러므로 R을 처음 사용하는 사람이라면, R을 설치하고 바로 RStudio를 설치하도록 하자. 


R의 장점과 단점은 다음과 같다.


장점

1. 오픈소스라서 무료로 이용이 가능하다. 

2. 상대적으로 진입장벽이 낮다.

3. 수많은 추가기능 사용이 가능하다. 전 세계 많은 통계학 관련 교수 및 학생들이 package(추가 기능)을 만들어 올리고 있다.

4. 다양한 데이터를 활용하여 손쉽게 고품질 그래픽 생성이 가능하다.


단점

1. 대부분의 패키지가 해당 분야 전문가들이 만들었기 때문에 초보자들이 사용하기 쉽지 않다.

2. 한글을 감안하고 만들지 않은 패키지의 경우, 한글이 깨지는 등의 오류가 있다. 

3. In-Memory 기술을 이용하므로 대용량 자료 처리에는 불편함이 있다.

4. GUI(Graphic User Interface) 관련 기능이 미흡하지만 RStudio가 많은 부분을 보완하고 있다.



이제 R과 RStudio 설치와 절차와 방법을 소개한다.

R은 위에서 언급한 CRAN(https://cran.r-project.org)에서 다운로드 및 설치가 가능하다.


<그림1. R 설치하기1>

- CRAN 초기 화면

- 본인의 컴퓨터 운영체제(윈도우, 맥, 리눅스)에 맞는 버전을 다운로드 할 수 있다.



<그림2. R 설치하기2>



<그림3. R 설치하기3>

- 시스템 종류(32비트, 64비트)에 상관없이 하나의 파일을 받으면 된다. 설치 중간에 32비트 또는 64비트를 선택해야 한다.



<그림4. R 설치하기4>

- 3번에서 32비트 또는 64비트 중 본인의 컴퓨터에 맞는 것을 선택해야 한다.

- 내 컴퓨터 시스템 종류(32비트/64비트) 확인 방법

  ① 윈도우버튼+r → 실행창에서 dxdiag 실행 → 운영체제에서 확인

  ② 램이 2기가 이하이면 100% 32비트, 8기가 이상이면 100% 64비트, 4기가이면 반반

- 이제 R 설치가 완료되었다!!




RStudio는 위에서 언급한 www.rstudio.com에서 다운로드 및 설치가 가능하다.


<그림5. RStudio 설치하기1>

- www.rstudio.com에서 다운로드 가능하다.



<그림6. RStudio 설치하기2>

- 무료 버전을 다운로드 한다.



<그림7. RStudio 설치하기3>

- 본인 컴퓨터의 OS에 맞는 버전을 설치한다.



<그림8. RStudio 설치하기4>

- 5 단계 만에 설치가 완료된다!!




이렇게 R에 대한 간략 소개와 설치방법에 대한 포스팅을 마무리 한다.



출처 및 참고자료

1) 위키페디아 https://en.wikipedia.org/wiki/R_(programming_language)



2018.03.29. 코리


'Big Data > R 놀이터' 카테고리의 다른 글

R과 RStudio 설치하기  (0) 2018.03.29

+ Recent posts

티스토리 툴바