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[:]과 동일