파이썬에서 다룰 수 있는 자료형(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. 코리. 



+ Recent posts