I. 숫자형
정수형(Integer): 정수를 뜻하는 자료형으로, 아래 예는 변수 a 에 정수를 대입하는 예이다.
>>> a = 123 >>> a = -456 >>> a = 0 |
실수형(Floating-point): 소숫점이 포함된 숫자로, 아래 예는 변수 a에 실수를 대입하는 예이다.
>>> a = 1.23 >>> a = -4.56 >>> a = 3.15E10 [=3.15*10^10] >>> a = 5.28e-10 [=5.28*10^-10] |
8진수 & 16진수: 8진수를 만들기 위해선 앞에 0o 또는 0O로 시작하고, 16진수를 만들기 위해선 앞에 0x로 시작하면 된다.
>>> a = 0o842 >>> b = 0x6ff >>> c = 0xABC |
복소수(Complex Number): 복소수를 사용하기 위해선, 소문자 j 나 대문자 J를 쓰면 된다.
>>> a = 1+2j >>> b = 3-4J |
- 복소수 내장 관련 함수
함수 |
의미 |
예시 |
복소수.real |
실수 부분 리턴 |
>>> a = 1+2j >>> a.real 1.0 |
복소수.imag |
허수 부분 리턴 |
>>> a = 1+2j >>> a.imag 2.0 |
복소수.conjugate() |
켤레복소수 리턴 |
>>> a = 1+2j >>> a.conjugate() (1-2j) |
abs(복소수) |
절대값 리턴 |
>>> a = 1+2j >>> abs(a) 2.2360679774997898 |
제곱 연산자: x의 y제곱을 나타내는 연산자로, **를 사용하며, 제곱값을 리턴한다.
>>> a = 4 >>> b = 2 >>> a ** b [=4^2] 16 |
나머지 반환 연산자: 나눗셈 후 나머지를 반환하는 연산자로, %를 사용하며, 나눗셈의 나머지 값을 반환한다.
>>> 8 % 3 2 >>> 7 % 3 1 |
소숫점 아랫자리를 버리는 연산자: 나눗셈 후 소숫점 아랫자리를 버리는 연산자로 즉, 나눈후의 몫이 나오고, //를 사용한다.
>>> 9 // 4 2 [2.25 중에 0.25가 버려짐] |
II. 문자열 자료형
파이썬에서 문자열을 만드는 방법들
큰따옴표(")로 양쪽 둘러싸기 |
"Hello, World" |
작은따옴표(')로 양쪽 둘러싸기 |
'Hello, World' |
큰따옴표 3개를 연속(""")으로 써서 양쪽 둘러싸기 |
"""Python is very easy. It is very useful.""" |
작은따옴표 3개를 연속(''')으로 써서 양쪽 둘러싸기 |
'''Python is very easy. It is very useful.''' |
- 파이썬에서 위와같은 여러가지 방법을 사용하는 이유
1. 문자열 안에 작은따옴표나 큰따옴표를 포함시키고 싶을 때
문자열에 작은 따옴표(') 포함시키기 |
>>> cool = "I'll study Python." |
>>> cool = 'I'll study Python.' [구문 오류 발생] |
|
문자열에 큰따옴표(") 포함시키기 | >>> food = 'He says, "I am very hungry"' |
\(백슬래시)를 이용해서 포함시키기 | >>> food = "He says, \"I am very hungry\"" |
2. 여러 줄인 문자열을 변수에 대입할 때
줄을 바꾸기 위해 이스케이프 코드 '\n' 삽입하기 |
>>>multiline = Python is very easy.\nIt is very useful. |
연속된 따옴표 사용하기 |
>>> multiline = ''' . . . Python is very easy. . . . It is very useful. ''' |
>>> multiline = """ . . . Python is very easy. . . . It is very useful. """ |
|
▼결과출력 >>> print(multiline) Python is very easy. It is very useful. |
문자열 더해서 연결하기 |
>>> head = "Python" >>> tail = "is fun!" >>> head + tail 'Python is fun!' |
문자열 곱하기 |
>>> a = "good" >>> a * 2 'goodgood' |
문자열 곱하기 응용 |
#multistring.py print("=" * 50) print("New Program") print("=" * 50) |
▼결과값 C:\Python> python multistring.py ================================================== New Program ================================================== |
문자열 인덱싱: 저장한 문자열에 번호를 매김 |
|
>>> a = "You Only Live Once, You need rest" >>> a[5] 'n' >>> a[-1] /*뒤에서 부터 첫글자*/ 't' >>> a[-0] /*a[0]과 같은 결과*/ 'Y' |
0부터 세며, a[0]: Y, a[1]: o, a[2]: u ... 이런식으로 나아감 |
문자열 슬라이싱: 저장된 문자열에서 문자를 뽑아냄 |
|
>>> a = "You Only Live Once, You need rest" >>> a[4:8] 'Only' >>> a[20:] /*뒤생략시 문자열 끝까지*/ 'You need rest' >>> a[:18] /*앞생략시 문자열 처음부터*/ 'You Only Live Once' >>> a[20:-5] 'You need' |
a[x:y] ▶ 인덱스 x에서 y전까지의 문자를 뽑아냄 [x <= a < y] |
활용 |
|
>>> a = "20180405Rainy" >>> year = a[:4] >>> day = a[4:8] >>> weather = a[8:] >>> year '2018' >>> day '0405' >>> weather 'Raniy' |
숫자 바로 대입 |
>>> "I eat %d apples." %3 'I eat 3 apples.' |
문자열 바로 대입 |
>>> "I eat %s apples." %"five" 'I eat five apples.' |
숫자 값을 나타내는 변수로 대입 |
>>> number = 3 >>> "I eat %d apples." %number 'I eat 3 apples.' |
2개 이상의 값 넣기 |
>>> number = 10 >>> day = "three" >>> "I ate %d apples. so I was sick for %s days." %(number,day) 'I ate 10 apples. so I was sick for three days.' |
- 문자열 포맷 코드
코드 |
설명 |
%s |
문자열(String) |
%c |
문자 1개(Character) |
%d |
정수(Integer) |
%f |
부동 소수(floating-point) |
%o |
8진수 |
%x | 16진수 |
%% | Literal % (문자 '%' 자체) |
- 포맷 코드와 숫자 함께 사용하기
정렬과 공백 |
>>> "%10s" % "hi" ' hi' ←hi가 오른쪽으로 정렬됨 |
전체 길이가 10개인 문자열 공간에서 hi를 오른쪽으로 정렬 [공백 8개] |
>>> "%-10sjane." % 'hi' 'hi jane.' ←hi가 왼쪽으로 정렬됨 |
전체 길이가 10개인 문자열 공간에서 hi를 왼쪽으로 정렬 [공백 8개] |
|
소수점 표현하기 |
>>> "%0.4f % 3.42134234 '3.4213' |
소수점 네번째 자리까지만 나타냄 |
>>> "%10.4f % 3.42134234 ' 3.4213' |
전체 길이가 10개인 문자열 공간에서 소숫점 넷째짜리 까지 나타냄 [공백 4개] |
문자열 관련 함수들
문자 개수 세기(count) |
>>> a="hobby" >>> a.count('b') 2 |
문자열 중 문자 b의 개수 반환 |
위치 알려주기1(find) |
>>> a="Python is best choice" >>> a.find('b') 10 >>> a.find('k') -1 |
문자열 b가 처음 나온 위치를 반환하고, 문자 미존재시 -1 반환 |
위치 알려주기2(index) |
>>> a="Life is too short" >>> a.index('t') 8 >>> a.index('k') ~~오류발생~~ |
문자열 중 문자 t가 맨처음으로 나온 위치 반환, 문자 미존재시 오류발생 |
문자열 삽입(join) |
>>> a="," >>> a.join('abcd') 'a,b,c,d' |
abcd라는 문자열의 각각 사이에 변수 a의 값인 ','를 삽입 |
소→대문자 변환(upper) | >>> a="hi" >>> a.upper() 'HI' | 소문자를 대문자로 변환 |
대→소문자 변환(lower) | >>> a ="HI" >>> a.lower() 'hi' | 대문자를 소문자로 변환 |
왼쪽 공백 지우기(lstrip) | >>> a=" hi " >>> a.lstrip() 'hi ' | 문자열 중 가장 왼쪽에 있는 한칸 이상의 연속된 공백들을 모두 지움 |
오른쪽 공백 지우기(rstrip) | >>> a=" hi " >>> a.rstrip ' hi' | 문자열 중 가장 오른쪽에 있는 한칸 이상의 연속된 공백들을 모두 지움 |
양쪽 공백 지우기(strip) | >>> a= " hi " >>> a.strip 'hi' | 문자열 양쪽에 있는 한칸 이상의 연속된 공백들을 모두 지움 |
문자열 바꾸기(replace) | >>> a="Life is too short" >>> a.replace("Life", "Your leg") 'Your leg is too short' | replace(바뀌게 될 문자열, 바꿀 문자열)으로 문자열 대체 |
문자열 나누기(split) | >>> a="Life is too short" >>> a.split() ← 공백 기준 ['Life', 'is', 'too', 'short'] >>> a="a:b:c:d" >>> a.split(':') ← 기호 기준 ['a', 'b', 'c', 'd'] | 아무런 값을 넣지 않을땐 공백기준, 기호를 넣으면 그 기호를 기준으로 나눔 |
III. 리스트 자료형
리스트의 인덱싱
>>> a=[1, 2, 3] >>> a [1, 2, 3] |
변수 a에 [1, 2, 3] 이라는 값 설정 |
>>> a[0] 1 |
a[0]은 리스트 a의 첫번째 요소값 |
>>> a[0] + a[2] ← 1 + 3 4 |
a[0] 요소값과 a[2] 요소값의 덧셈 결과 |
>>> a[-1] 3 |
리스트a의 마지막 요소값 |
>>> a=[1, 2, 3, ['a', 'b', 'c']] |
숫자 1, 2, 3과 다른 리스트를 포함 |
>>> a[0] 1 >>> a[-1] ['a', 'b', 'c'] >>> a[3] ['a', 'b', 'c'] |
여기서 a[-1]과 a[3]은 리스트 a의 4번째 요소로 동일한 결과값을 나타내는네 이를 아래에서 뽑아 내보자 |
>>> a[-1][0] 'a' |
a[-1]이 ['a', 'b', 'c']리스트인데 그 중 첫번째 요소[0]를 불러옴 |
>>> a=[1, 2, ['a', 'b', ['Life', 'is']]] >>> a[2][2][0] 'Life' |
삼중 리스트 불러오는법 |
리스트의 슬라이싱
>>> a=[1, 2, 3, 4, 5] >>> a[0:2] [1, 2] | 앞에서 배운 슬라이싱 개념과 동일 |
>>> a=[1, 2, 3, 4, 5] >>> b=a[:2] ← 처음부터 a[1]까지 >>> c=a[2:] ← a[2]부터 마지막까지 >>> b [1, 2] >>> c [3, 4, 5] | |
>>> a=[1, 2, 3, ['a', 'b', 'c'], 4, 5] >>> a[2:5] ← a[2]부터 a[4]까지 [3, ['a', 'b', 'c'], 4] >>> a[3][:2] ['a', 'b'] | 중첩된 리스트에서 슬라이싱하기 |
리스트의 연산자
>>> a=[1, 2, 3] >>> b=[4, 5, 6] >>> a + b [1, 2, 3, 4, 5, 6] |
리스트 더하기: '+' 기호를 이용하여 2개의 리스트를 합침 |
>>> a = [1, 2, 3] >>> a * 3 [1, 2, 3, 1, 2, 3, 1, 2, 3] |
리스트 반복하기: '*' 기호를 이용하여 반복되는 리스트 만들기 |
리스트의 수정, 변경과 삭제
>>> a = [1, 2, 3] >>> a[2] = 4 >>> a [1, 2, 4] |
리스트에서 하나의 값 수정하기: a[2]요소값 3에서 4로 변경 |
>>> a[1:2] [2] >>> a[1:2] = ['a', 'b', 'c'] >>> a [1, 'a', 'b', 'c', 4] |
리스트에서 연속된 범위 값 수정하기: a[1:2]값인 2를 ['a', 'b', 'c']로 변경 |
※ a[1:2] = ['a', 'b', 'c'] 와 a[1] = ['a', 'b', 'c'] 는 전혀 다른 결과 값을 가진다. >>> a[1] = ['a', 'b', 'c'] >>> a >>> [1, ['a', 'b', 'c'], 4] | |
>>> a[1:3] = [] >>> a [1, 'c', 4] | 리스트 요소 삭제 "[]": [1, 'a', 'b', 'c', 4] 값에서 a[1:3] 값인 a[1], a[2]의 값을 삭제한 [1, 'c', 4]가 된다. |
>>> a [1, 'c', 4] >>> del a[1] >>> a [1, 4] | 리스트 요소 삭제 "del": a[1]값인 'c'를 삭제 |
리스트 관련 함수들
>>> a = [1, 2, 3] >>> a.append(4) >>> a [1, 2, 3, 4] |
리스트에 요소 추가(append): append(x)는 리스트 맨 마지막에 x를 추가시키는 함수이다. |
>>> a.append([5,6]) >>> a [1, 2, 3, 4, [5, 6]] |
|
>>> a = [1, 4, 3, 2] >>> a.sort() >>> a [1, 2, 3, 4] | 리스트 정렬(sort): 리스트의 요소들을 순서대로 정렬한다. [숫자, 알파벳 정렬] |
>>> a =['a', 'c', 'b'] >>> a.sort() >>> a >>> ['a', 'b', 'c'] | |
>>> a ['a', 'c', 'b'] >>> a.reverse() >>> a >>> ['b', 'c', 'a'] | 리스트 뒤집기(reverse): 리스트를 역순으로 뒤집는다. [역순 정렬 X] |
>>> a = [1, 2, 3] >>> a.index(3) //a[2]의 요소 2 >>> a.index(1) //a[0]의 요소 0 | 위치 반환(index): index(x)함수는 리스트에 x라는 값이 있으면 x값의 위치값을 리턴한다. [a.index(0) 값은 존재하지 않음] |
>>> a = [1, 2, 3] >>> a.insert(0, 4) //a[0]위치에 4삽입 [4, 1, 2, 3] >>> a.insert(3, 5) [4, 1, 2, 5, 3] | 리스트에 요소 삽입(insert): insert(a, b)는 리스트 a번째 위치에 b를 삽입하는 함수이다. |
>>> a= [1, 2, 3, 1, 2, 3] >>> a.remove(3) [1, 2, 1, 2, 3] | 리스트 요소 제거(remove): remove(x)는 리스트에서 첫번째로 나오는 x를 삭제하는 함수이다. |
>>> a = [1, 2, 3] >>> a.pop() 3 >>> a [1, 2] | 리스트 요소 끄집어내기(pop): 리스트의 맨 마지막 요소를 돌려 주고 그 요소는 삭제한다. [a.pop(x)는 리스트의 x 번째 요소를 돌려주고 그 요소를 삭제] |
>>> a = [1, 2, 3] >>> a.pop(1) 2 >>> a [1, 3] | |
>>> a = [1, 2, 3, 1] >>> a.count(1) 2 | 리스트에 포함된 요소 x의 개수 세기(count): count(x)는 리스트 내에 x가 몇개 있는지 개수를 알려준다. |
>>> a = [1, 2, 3] >>> a.extend([4, 5]) >>> a [1, 2, 3, 4, 5] >>> b = [6, 7] >>> a.extend(b) >>> a [1, 2, 3, 4, 5, 6, 7] | 리스트 확장(extend): extend(x)에서 x에는 리스트만 올 수 있으며 원래의 a리스트에 x리스트를 더한다. ["a.extend([4, 5])", "a += [4, 5]", "a = a + [4, 5]" 셋다 같은표현] |
'프로그래밍 > 파이썬' 카테고리의 다른 글
[파이썬] 4-2. 파이썬에서 사용되는 자료형 (0) | 2018.07.02 |
---|---|
[파이썬] 3. 파이썬의 기초 (0) | 2018.01.02 |
[파이썬] 2. 파이썬 설치하기(윈도우, 리눅스) (1) | 2017.12.28 |
[파이썬] 1. 파이썬에 대해서 알아보자 (0) | 2017.12.28 |