파이썬의 자료형
기초적인 자료형으로는 숫자, 문자열, 리스트, 터플, 딕셔너리 등이 있다.
1.숫자
항목으로는 정수, 실수, 복소수, 8진수, 16진수가 있다.
2.문자열
(") <-로 둘러싸인 것은 모두 다 문자열이다.
(")을 사용하는 방법외에도 문자열을 만드는 방법이 있다.
(')을 사용하거나 단일 이중부호를 연속으로 세 개를 쓰는법이다.
예) 'HI' / """HI""" / '''HI'''
왜 이렇게 많을까 하나만 쓰지... 이유가 있었다!!
문자열 내에 (') 이나 (") 을 포함시키고 싶을때가 있다.
예) sang's min!
위의 예와 같이 (') 가 포함되어 있다. 이럴 때는 밑과같이 (" ") 로 둘러 싸야 한다.
"sang's min!" / (") 안에 있는 (') 는 문자열을 나타내기 위한 기호로 인식되지 않는다.
" 를 포함하고 싶을때는 반대로 하면 된다.
예) "sang min!" jeong -> '"sang min!"' jeong
이러면 (")은 문자열을 나타내기 위한 기호로 인식되지 않는다.
'\'로 (') 와 (") 를 문자열에 포함시키기
예)name = 'sang\'s favorite food is pizza'
예)say = "\"sang min\" he says"
"\"가 문자열 내에 삽입되면 그것은 문자열을 둘러싸는 기호의 의미가 아니라 문자 (') 그 자체를 뜻하게 된다. (\") 역시 마찬가지다.
여러 줄 짜리 문자열 처리
줄바꿈문자 '\n' 삽입
연속으로 이중인용부호 세 개(""")사용
파이썬에서는 문자열 연산이 가능하다.
예를 들면
>>>a='hi' >>>b='hello' >>>print a+b -> hi hello
이렇게 된다! 신기하다!
곱하기도 된다.
>>>a='hi' >>>print a*2 -> hihi
신기하다!
인덱싱
파이썬의 문자열은 씨언어의 배열과 같다.
>>>a='abcdefg'
>>>a[2]
'c'
a[2]가 뜻하는건 a라는 문자열의 세번째 문자인 'c'를 말한다.
왜냐면 파이썬은 0부터 숫자를 세니까!! <<이게 중요한것 같다.
>>>a[-1]
'g'
-를 붙히면 뒤에서부터 센다.
'abc'를 뽑고싶으면
>>>a[0]+a[1]+a[2]를 하면된다. 파이썬은 문자열 연산이 되니까!
하지만 위에 방법은 너무 원시인같다. 슬라이싱이라는 기법을 사용하면 아주 쉽다.
>>>a[0:3]
'abc'
얼마나 쉽나?
a[0:3]을 수식으로 나타내면 0<=a<3이다. 그렇다 맨 마지막은 포함을 하지 않는다.
>>>a[:17] 이처럼 시작번호를 생략하면 문자열의 시작부터 숫자까지 뽑는다.
>>>a[:] 이처럼 다 생략하면 모든 처음부터 끝까지 다 뽑는다.
슬라이싱도 -를 사용할 수 있다.
>>>a[1:-1]
'bcdef' 가 나온다. 1자리엔 b가있고 -1은 g인데 끝에쓴 숫자는 포함하지 않으니까
-----------------------------------
문자열 포맷 코드(씨언어랑 똑같다.)
%s 문자열
%c 문자 한개
%d 정수
%f 부동소수
%o 8진수
%x 16진수
%% %문자
-----------------------------------
씨언어는 쓸때마다 바꿔줘야 하지만 파이썬은 %s로 다 통한다.
print "%d apples" %3 = print "%s apples" %3
씨언어는 %s라고 쓰면 에러가 날테지만 파이썬은 나지 않는다. 정말 편하다.
또 씨언어같이 정렬이 가능하다.
"%10s"를 쓰면 오른쪽으로 정렬하고 앞은 공백으로 채운다는 의미다.
-를 붙히면 반대다.
소숫점은 >>>print"%10.2f" %1.23456
1.23 위의 예는 1.23456라는 숫자를 10개의 문자열 공간에 넣고 소수점은 2번째까지 찍으라는 것이다. 쉽다.
문자열 관련 함수
함수 |
설명 |
a.upper() |
문자열 a를 모두 대문자로 바꾼다. |
a.count(x) |
문자열 a를 모두 소문자로 바꾼다. |
a.find(x) |
문자열 a중 문자 x가 처음으로 나온 위치를 반환한다. 없으면 -1을 반환한다. |
a.index(x) |
문자열 a중 문자 x가 처음으로 나온 위치를 반환한다. 없으면 에러를 발생시킨다. |
a.join(s) |
s라는 문자열의 각각의 요소 문자사이에 문자열 a를 삽입한다. |
a.lower() |
문자열 a를 모두 소문자로 바꾸어 준다. |
a.lstrip() |
문자열 a의 왼쪽 공백을 모두 지운다. |
a.rstrip() |
문자열 a의 오른쪽 공백을 모두 지운다. |
a.strip() |
문자열 a의 양쪽 공백을 모두 지운다. |
a.replace(s,r) |
문자열 a의 s라는 문자열을 r이라는 문자열로 치환한다. |
a.split([s]) |
문자열 a를 공백으로 나누어 리스트값을 돌려준다. |
a.swapcase() |
문자열 a의 대문자는 소문자로, 소문자는 대문자로 각각 바꾸어 준다. |
리스트
>>>a=[1,3,4,5,6,7]
대괄호로 감싸주고 쉼표로 구분한다.
리스트 안에는 어떤 자료형이든 들어갈 수 있다. 리스트안에 리스트도 가능!
리스트에도 인덱싱과 슬라이싱이 있다.
>>>a[0]
1
a[0]은 리스트'a'의 첫 번째 요소값을 말한다.
>>>a[0]+a[1]
4
더하기까지 된다. 아주 좋다. -까지 사용 가능하다.
슬라이싱도 똑같다.
>>>a=[0:2]
[1,3]
리스트끼리는 더하기도되고 곱하기도된다. 똑같다. 문자열이랑
>>>a=[1,2,3]
>>>b=[4,5,6]
>>>a+b
[1,2,3,4,5,6]
>>>print a*2
[1,2,3,1,2,3]
아주 쉽고 편하다.
리스트 값 변경과 삭제
>>>a=[1,2,3]
>>>a[2]=4
>>>a
[1,2,4]
변경됬다!
>>>a=[1,2,3]
>>>a[2]=[]
>>>a
[1,2]
없어진다.
리스트관련함수
함수 |
설명 |
a.append(x) |
리스트 a의 마지막에 x추가 |
a.sort() |
리스트 a정렬 |
a.reverse() |
리스트 a의 순서를 거꾸로 만든다. |
a.index(x) |
리스트 a에서 x를 찾아서 그 위치 반환 |
a.insert(i,x) |
리스트 a에서 i 위치에 x 삽입 |
a.remove(x) |
리스트 a에서 처음 나오는 x삭제 |
a.pop |
리스트의 a의 맨 마지막 요소 반환하고 마지막 요소 삭제 |
a.count(x) |
리스트 a안에 x가 몇 개 있는지를 반환 |
a.extend(x) |
리스트 a에 리스트 x를 더함(확장) |
터플
터플은 리스트랑 같다. 몇 가지 다른점을 빼면
-리스트는 '[' 과 ']' 로 감싸지만 터플은 '(' 와 ')'로 감싼다.
-리스트는 그 값을 생성, 삭제, 수정이 가능하지만 터플은 불가능하다.
>>>t1=()
>>>t2=(1,)
>>>t3=1,2,3
괄호를 안써도 되고 한개의 요소만 갖는 터플은 한개의 요소와 그 뒤에 쉼표를 붙혀야 한다.
터플도 리스트와 같이 인덱싱, 슬라이싱, 더하기와 반복이 모두 된다.
딕셔너리
{key1:value1,key2:value2,key3:value3,,,,}
각각 key : value형태로 이루어져 있다.
key |
value |
key1 |
value1 |
key2 |
value2 |
key3 |
value3 |
value값에 리스트도 넣을 수 있다.
딕셔너리 쌍 추가
>>>a={1:'a'}
>>>a[2]='b'
>>>a
{1:'a',2:'b'}
기존에 있던 쌍의 뒤에 추가가 되는 것 같다.
del a[key]하면 그에 해당하는 key:value 쌍이 사라진다.
딕셔너리를 생성할때는 key값이 겹치면 큰일난다는 것이다.
딕셔너리 관련 함수
함수 |
설명 |
a.keys() |
딕셔너리 a의 key들을 모아놓은 리스트들을 돌려준다. |
a.values() |
딕셔너리 a의 value들을 모아놓은 리스트를 돌려준다. |
a.items() |
딕셔너리 a의 (key,value)쌍의 터플을 모아놓은 리스트들을 돌려준다. |
a.clear() |
딕셔너리 a의 모든 key:value 쌍들을 삭제한다. |
a.get(x) |
딕셔너리 a의 key가 x인 것의 value를 돌려준다. |
a.has_key(x) |
딕셔너리 a에 x라는 key가 있는지 조사하여 참, 거짓을 돌려준다. |
제어문
제어문으로는 if,while,for 문이 대표로 쓰인다. 들여쓰기가 중요하다.
if문 기본구조
if<조건문>:
<수행할 문장1>
<수행할 문장2>
....
else
<수행할 문장A>
<수행할 문장B>
...
while문 기본구조
while <조건문>:
<수행할 문장1>
<수행할 문장2>
....
조건문이 참인 동안 while문 아래 문장들을 계속해서 수행한다.
for문 기본구조
for 변수 in 리스트(또는 터플,문자열):
<수행할 문장1>
<수행할 문장2>
....
씨언어랑 비슷하다...
'파이썬 스터디 과제 > 점프투 파이썬' 카테고리의 다른 글
점투파-4_2(파이썬 날개달기) (0) | 2015.01.11 |
---|---|
점투파-4(파이썬 날개달기) (0) | 2015.01.11 |
점투파-3(입출력) (0) | 2015.01.11 |
점투파-1(파이썬이란 무엇인가?) (0) | 2015.01.10 |
댓글