RND(Right! Now! Develop!) Study - Step. 02 자료형01편
개요 |
학습 구성 |
스터디 인원 |
학습 시작 |
참고 사이트 |
# 개 요
이번 포스팅에서는 파이썬의 자료형에 대해서 알아보도록 하겠습니다.
점프 투 파이썬 위키 사이트 링크 : https://wikidocs.net/1
# 학습 구성
자료형과 제어문 파이썬의 자료형(숫자형, 문자열, 리스트, 딕셔너리등)
이번 학습은 숫자형, 문자열에 대해서 알아보도록 하겠습니다.
- 환경 : Python3
아래의 항목을 보도록 하자.
항목 | 사용 예 |
---|---|
정수 | 123, -345, 0 |
실수 | 123.45, -1234.5, 3.4e10 |
복소수 | 1 + 2j, -3j |
8진수 | 0o34, 0o25 |
16진수 | 0x2A, 0xFF |
코드 | 설명 |
---|---|
\n | 개행 (줄바꿈) |
\v | 수직 탭 |
\t | 수평 탭 |
\r | 캐리지 리턴 |
\f | 폼 피드 |
\a | 벨 소리 |
\b | 백 스페이스 |
\000 | 널문자 |
\\ | 문자 " \ " |
\' | 단일 인용부호( ' ) |
\" | 이중 인용부호( " ) |
ㅇ 문자열 연산
파이썬은 문자열을 더하고 곱 할 수있다. 헐~
예를 들어보면!
>>> a = "python"
>>> b = "is"
>>> c = "goood~~"
>>> print(a+b+c)
pythonisgoood~~
>>> print(a * 2)
pythonpython
>>> print("=" * 20)
====================
으으~너무 더워서 포스팅이 어렵네요 ㅠ.ㅠ 자야겠네용! 포스팅은 이어집니다..ㅎㅎㅎ
역시나 오늘도 덥군요 ㅋㅋ;
오늘은 인덱싱과 슬라이싱을 배우도록 하겠습니다.
인덱싱(indexing)이란 무엇인가를 ‘가리킨다’는 의미이고, 슬라이싱(slicing)은 무엇인가를 ‘잘라낸다’라는 의미
위의 아래의 예제를 살펴보도록 합니다. 인덱싱과 슬라이싱이 어떻게 적용이 되는지 알아보겠습니다~
>>> a = "Life is too short, You need Python"
a라는 변수에 문자열을 넣어둡니다. 워워~넣어둬~넣어둬~
그런뒤에 아래처럼 a[]로 가져와보겠습니다.
>>> a[4]
' '
>>> a[5]
'i'
>>> a[1]
'i'
>>> a[0]
'L'
>>> a[11]
' '
>>> a[12]
's'
>>> a[13]
'h'
>>> a[20]
'o'
>>> a[21]
'u'
와우! 문자열이 알고봤더니..배열형태로 들어갑니다. 배열은 0부터 시작하죵~ 그래서 a[0] 일 경우에 L이 나오게 되는거죠! ㅎㅎ
문자열 : Life is too short, You need Python
L |
i |
f |
e |
|
i |
s |
|
t |
o |
o |
|
s |
h |
o |
r |
t |
, |
|
Y |
o |
u |
|
n |
e |
e |
d |
|
P |
y |
t |
h |
o |
n |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
... | -4 | -3 | -2 | -1 |
참고사항으로 마이너스(-) 형태로 사용하면 거꾸로 시작이 되어집니다.
예를들어서 a 변수에 문자열 a = "Life is too short, You need Python" <------- 방향 마이너스 일 경우
>>> a[-1]
'n'
>>> a[-2]
'o'
>>> a[-0] // -0은 그냥 0이군요! ㅎㅎ
'L'
그리고 위에서 배운 문자열은 연산을 한다고 하였습니다. 한번 적용을 해보면
>>> b = a[0] + a[1] + a[2] + a[3]
>>> b
결과는?? 'Life' 가 나오게 됩니다. ㅎㅎㅎ
자~! 여기에서 파이썬은 획기적인 슬라이싱 기법을 제공 합니다!
이런식으로 말이죠! ㅎㅎ
>>> a[0:4]
'Life'
그런데 0~4이면 공백도 가져와야하는데 가져오질 않았습니다.
그렇습니다!
0:4의 의미는 0 <= a < 4 범위에서 가져오는 것입니다.
그리고 아래처럼 다양하게 슬라이싱할 수 있습니다.^-^
>>> a[5:9]
'is t'
>>> a[:10]
'Life is to'
>>> a[10:]
'o short, You need Python'
>>> a[:]
'Life is too short, You need Python'
또 다른 예제! 참고하세요^-^
>>> a = "20010331Rainy" >>> date = a[:8] >>> weather = a[8:] >>> date '20010331' >>> weather 'Rainy'
o 문자열 포맷팅
마치 C언어에서의 %d %s 등의 쓰임새와 비슷하다.
- 숫자는 %d 로~
>>> print("I eat %d apples." %7)
I eat 7 apples.
- 문자열은 %s로~
>>> print("%s is very good man!" % "acet")
acet is very good man!
>>> print("%c %s %d is good!" %('d',"daum",777))
d daum 777 is good!
코드 | 설명 |
---|---|
%s | 문자열 (String) |
%c | 문자 한개(character) |
%d | 정수 (Integer) |
%f | 부동소수 (floating-point) |
%o | 8진수 |
%x | 16진수 |
%% | Literal % (문자 % 자체) |
o 포맷 코드의 또다른 기능!
>>> print("%10s" % "hi")
0 1 2 3 4 5 6 7 8 9
|
|
|
|
|
|
|
|
h |
i |
"%10s"는 길이가 10개인 문자열 공간에서 오른쪽으로 정렬하고 그 앞의 나머지는 공백으로 남겨 두라는 의미이다. 그렇다면 반대쪽인 왼쪽 정렬은 "%-10s"가 될 것이다.
>>> print("%0.4f" % 3.42134234)
3.4213
o 소문자를 대문자로 만들기
- upper()를 사용하면 된다.
>>> a = "hello Python"
>>> a.upper()
'HELLO PYTHON'
대문자를 소문자로 만들기는?? lower()를 사용하면 된다. 역시나..ㅋㅋ
>>> a.lower()
'hello python'
o 대문자와 소문자 서로 바꾸기(swapcase())
>>> a = "Hi Man!"
>>> a.swapcase()
'hI mAN!'
o 문자 갯수 세기(count())
>>> a = "hello Python"
>>> a.count('l')
2
o 위치 알려주기
l이 두개이지만 처음에 것만 알려준다. 배열과 같으므로 hel 즉, 012 2가 리턴된다.
>>> a = "hello Python"
>>> a.find('l')
2
>>> a.index('l')
2
find()와 index()의 차이점은
없는 문자열을 찾을때 오류가 나느냐 안나느냐 이다!
[1] >>> a.find('a')
-1
[2] >>> a.index('a')
Traceback (most recent call last):
File "<pyshell#138>", line 1, in <module>
a.index('a')
ValueError: substring not found
o 문자열 삽입 기능 join()
>>> a=","
>>> a.join('abcd')
'a,b,c,d'
>>> b="abc d aldag dag"
>>> a.join(b)
'a,b,c, ,d, ,a,l,d,a,g, , ,d,a,g'
o 왼쪽 공백 없애기(lstrip())
>>> a=" hi"
>>> a
' hi'
'hi'
o 오른쪽 공백 없애기(rstrip())
>>> a="hi "
>>> a
'hi '
>>> a.rstrip()
'hi'
o 양쪽 공백 없애기(strip())
>>> a =" hi "
>>> a
' hi '
>>> a.strip()
'hi'
o 문자열 바꾸기(replace())
>>> a = "hello python"
>>> a.replace("hello", "nice to meet")
'nice to meet python'
o 문자열 나누기(split())
>>> a = "hello python"
>>> a.split() // 공백으로 분리가 된다.
['hello', 'python']
>>> a ="a:b:c:d" // : 으로 구분되어 분리가 된다.
>>> a.split(':')
['a', 'b', 'c', 'd']
# 참고사이트
anyjava님 : http://blog.anyjava.net/114
2014/08/04 - [Language/Python] - RND(Right! Now! Develop!) Study - Python Step. 01 셋팅 및 기초문법
- END -
'Language > Python' 카테고리의 다른 글
crontab+python3 (0) | 2015.06.30 |
---|---|
python??? (0) | 2015.06.22 |
RND(Right! Now! Develop!) Study - Python Step. 02 자료형_02 (0) | 2014.08.17 |
RND(Right! Now! Develop!) Study - Python Step. 01 셋팅 및 기초문법 (0) | 2014.08.04 |
python 공부해보자! (2) | 2014.07.17 |