본문 바로가기
파이썬 스터디 과제/점프투 파이썬

점투파-2(자료형과 제어문)

by laoching 2015. 1. 11.
728x90
반응형

파이썬의 자료형

기초적인 자료형으로는 숫자, 문자열, 리스트, 터플, 딕셔너리 등이 있다.


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>

....


씨언어랑 비슷하다...




728x90
반응형

댓글