Python

[python] 자료형 정리

큐범 2021. 6. 29. 19:11

Life is too short, You need python

Python 자료형


 

어떤 프로그래밍 언어든 '그 언어의 자료형을 알고 이해한다면 이미 그 언어의 절반을 터득한 것이나 다름없다.'라는 말이 있을 정도로 자료형이란 프로그래밍을 할 때 쓰이는 숫자,

문자열 등 자료 형태로 사용하는 모든 것을 뜻한다.

프로그램의 기본이자 핵심단위가 바로 자료형이다.

걷는 법을 알아야 뛸 수 있기에 자료형은 매우 중요하다.

숫자열 자료형

정수형

a=123

a=-178

a=0

실수형

a=1.2

a=-3.45

a=4.24E10 #a=4.24*10^10

a=4.24e-10 #a=4.24^(-10)

8진수는 0o,0O로 입력 가능

a=0o177

16진수

#16진수 (0x)

a=0x8ff

b=0xABC

복소수

a=1+2j

b=3-4J

복소수.real 실수의 부분을 리턴한다.

a=1+2j

a.real

복소수.imag 허수의 부분을 리턴한다.

a=1+2j

a.imag

복소수.conjugate() 켤레복소수를 리턴

a=1+2j

a.conjugate()

abs(복소수) 복소수의 절댓값을 리턴

a=1+2j

abs(a)

사칙연산

a=3

b=4

a+b #7

a*b #12

a/b #0.75

a의 b제곱

a=3

b=4

a**b #3^4 81

나눗셈 후 나머지를 반환하는 연산자

7%3 #1

3%7 #3

나눗셈 후 아랫자리를 버리는 연산자

7/4 #1.75

7//4 #1


문자열 자료형

"Hello world"

'Hello world'

"""Hello world"""

'''Hello world'''

multiline1="Life is too short \n You need python"

Life is too short (\n 한줄 띄어짐)

You need python

'''

\n 문자열 안에서 줄을 변경

\n 문자열 사이에 탭 간격을 준다

\\ 문자를 \그대로 표현하고 싶을 경우 사용

\' 작은 따옴표(')를 그대로 표현할 경우

\" 큰 따옴표(")를 그대로 표현할 경우

'''

문자열 연산

head="python"

tail="is fun"

head+tail

a="python"

b=a*2

표현하고 싶은 문자를 선택하는 인덱싱

a="Life is too short, You need python"

a[0] #L

a[12] #s

a[-1] #n

a[-0] #L

b= a[0]+a[1]+a[2]+a[3] #Life

a[0:3] #Lif

a[19:] #You need python

a[:17] #Life is too short

a[19:-7] #You need

문자열 포매팅

a = "I eat %d apples." %3

>>> I eat 3 apples

'''

%s 문자열

%c 문자1개

%d 정수

%f 부동소수

'''

 

전체 길이와 공백 설정

f="%10s"%"hi" #전체길이 10개, 공백8개

문자열에서 찾는 문자가 처음나온 위치 (find) - 존재하지 않을 경우 -1을 반환

a.find('b')

문자사이에 ','입력하는 join

a=","

print(a.join('abcd'))

소문자에서 대문자로 변환해주는 upper

a.upper()

대문자에서 소문자로 변환해주는 lower

a.lower()

왼쪽 공백 지우기

a.lstrip()

오른쪽 공백 지우기

a.rstrip()

양쪽 공백 지우기

a.strip()

format함수 문자열에 문자를 불러오기

a="i eat {0} apples".format(3)

>>>i eat 3 apples

a="i eat {0} apples".format("five")

>>>i eat five apples

a="i eat {0} apples".format(number)

>>>변수로도 선언 가능

a="I ate {0} apples. so I was sick for {day} days.".format(10,day=3)

>>>변수선언과 동시에 가능


리스트 자료형

[1,2,3]에서 0=1, 1=2, 2= 3순서를 인지하는 것이 중요하다. 파이썬은 순서를 0부터 시작한다.

a=[1,2,3]

print(a[0]) #첫번째 출력

>>> 1을 출력한다.

중첩괄호에 대해서 불러오는 방법도 존재

a=[1,2,3,['a','b',['c','d']]]

print(a[3][2][0])

>>> a변수의 3번째에서 2번째 중 첫번째 c가 반환

1부터 두번째까지 불러오기 [1:2]

a[1]과 a[1:2]는 다른 것이다. a[1]은 2를 반환하고 a[1:2]는 [2]를 반환한다. 같은 2이지만 다른 것이다. 왜냐하면 a[1]은 a리스트의 1번째를 반환한 것이고 a[1:2]는 1부터 두번째 사이에 존재하는 자료를 반환한 것이다.

리스트 마지막에 4를 추가(append)

a.append(4)

반대로 반환하는 함수 (reverse)

a.reverse()

>>> ex a=['a','b','c'] >>> c b a

위치를 반환하는 함수 (index)

a.index(1)

리스트 삭제 관련

a[1:3]=[] 1부터 세번째까지 삭제

del a[1]

>>> [1]인 것을 삭제

a.remove(4)

>>> a안에서 4를 한번 삭제

a.pop()

>>>a안에서 마지막 요소를 반환하며 삭제 (빼온다고 생각)

a.count(2)

>>>a안에서 2가 몇번 들어가는지 카운트

a.extend([4,5])

>>>a안에서 [4,5]를 추가 (+와 동일한 기능)


튜플 자료형

튜플은 1가지 요소만 가질 수 있으며 괄호를 생략해도 무방하다.

t1 =(1,2,'a,','b'

>>>튜플 선언

t1[0]

>>>튜플 인덱싱

t1[1:]

>>>튜플 슬라이싱

t2 = 3,4

t1+t2

>>>튜플 더하기

t2*3

>>>튜플 곱하기


딕셔너리 자료형

'people' = '사람', 'baseball'='야구'

이 개념이 부합되듯이 딕셔너리는 Key와 Value라는 것을 한 쌍으로 갖는 자료형이다.

dic={'name' :'Tom','phone number':'01012345678','birth':'1225'}

key value
name Tom
phone number 01012345678
birth 1225

이와같은 dic의 딕셔너리가 생선된다.

tom부양가족={'부양가족':'아들','부양가족직업':'군인'}

print("부양가족: "+tom부양가족['부양가족'], "부양가족직업: "+tom부양가족['부양가족직업'])

이런식으로 부양가족 관리를 하는 자료로 이용할 수 있다.

주의할점은 Key는 고유한 값이므로 증복되는 값을 가져서는 안된다. 중복 될 경우 하나를 제외한 나머지 자료를 무시하게 됨.

딕셔너리 관련 함수

1. key 리스트 만들기(keys)

a={'name':'pey','phone':'0119993323','birth':'1118'}

a.keys()

>>> dict_keys(['name', 'phone', 'birth'])

a의 key만을 모아서 dict_keys라는 객체를 리턴한다.

-dict_keys의 활용 -

a) for in을 활용

for k in a.keys():

print(k)

key를 하나씩 리턴한다.

b)리스트 만들기

list(a.keys())

2.Value 리스트 만들기(Values)

a.values()

3.Key, Value 쌍 얻기(items)

a.items()

4.Key:Value 쌍 모두 지우기(Clear)

a.clear()

5.Key로 Value얻기(get)

a.get('name')

6.해당 key가 딕셔너리 안에 있는지 조사하기(in)

'name' in a


집합 자료형

set 키워드

s1=set([1,2,3])

>>> {1,2,3}

s2=set("Hello")

>>> {'H','e','o,'l'}

특징: 중복을 허용하지 않는다, 순서가 없다

set 자료형을 리스트로 변환

i1=list(s1) #리스트로 변환

set 자료형을 튜플로 변환

t1=tuple(s1) #튜플로 변환

집합 자료형 활용법

1. 교집합, 차집합, 합집합

s1=set([1,2,3,4,5,6])

s2=set([4,5,6,7,8,9])

s1&s2 #교집합

s1.intersection(s2) #교집합

s1|s2 #합집합

s1.union(s2) #합집합

s1-s2 #차집합

s2-s1 #차집합

s1.difference(s2) #차집합

s2.difference(s2) #차집합

2. 값 1개 추가하기(add)

s1 = set([1,2,3])

s1.add(4)

하면 마지막에 4가 추가됨

3. 값 여러 개 추가하기(update)

s1=set([1,2,3])

s1.update([4,5,6])

4.특정 값 제거하기(remove)

s1.set([1,2,3])

s1.remove(2)


자료형의 참과 거짓

if문

if[]: #만약[]가 참이면

print("true") #true라는 문자열 출력

else: #만약 []가 거짓이면

print("flase") #false라는 문자열 출력


값을 저장하는 공간, 변수

파이썬은 C언어나 JAVA처럼 변수의 자료형을 함께 쓸 필요가 없다.

변수선언의 다양한 방법들

a,b = ('python,','life')

(a,b)='python','life'

[a,b]=['python','life']

a=b='python'

변수의 값을 바꿈

a=3

b=5

a,b = b,a

변수의 값을 복사

a=[1,2,3]

b=a

주의 할 점: b=a의 의미는 a가 갖고있는 문자열을 가르킴 따라서, 문자열이 변하는 것을 수용함

a=[1,2,3]

b=a

a[1]=4

print(a,b)

[1, 4, 3] [1, 4, 3]

따라서, 문자열과 별개로 값을 가져오려면

a=[1,2,3]

b=a[:]

a[1]=4

print(a,b)

from copy import copy

b=copy(a)

이 두가지 방법을 통해 영향을 받지 않을 수 있음

b=copy(a)는 b=a[:]과 동일