세리프 따라잡기
파이썬 프로그래밍 기초: 자료형(1) 본문
※ 코드블럭에 프롬프트(>>>)로 시작하는 코드들은 파이썬 셸에서 입력한 것이고, 없다면 에디터 형식으로 입력한 것.
# 둘러보기 [맛보기]
>>> 1+1 #사칙연산
2
>>> 3/2.4
1.25
>>> 3*9
27
>>> a=1 #변수에 숫자 대입하고 계산
>>> b=2
>>> a+b
3
>>> c="pie" #변수에 문자 대입하고 출력
>>> c
'pie'
>>> if b>1: #조건문if
print("b is greater than 1") # → b가 1보다 크면 " "안의 문구를 출력하라
b is greater than 1
>>> for a in [1, 2, 3]: #반복문for
print(a) # → [ ] 리스트의 앞에서부터 하나씩 꺼내 a 변수에 대입하고 출력하라
1
2
3
>>> i=0 #반복문while
>>> while i<3: # → i값이 3보다 작은 동안 i=i+1을 반복해 출력하라
i=i+1
print(i)
1
2
3
>>> def add(a,b): #함수 → def는 함수를 만들 때 사용하는 예약어 → add 함수 생성, a,b는 입력값
return a+b # → a+b는 결과값
>>> add(3,4) # 3,4를 입력했으니 3+4를 수행하고 출력
7
* 파이썬은 대소문자를 구별한다
* 예약어란 프로그래밍 언어에서 이미 문법적인 용도로 사용하고 있는 단어
1. 자료형
1 + 1 = ?
1이 숫자형이라면 위의 값은 2가 되지만,
'1' + '1' = ?
1이 문자형이라면 위의 값은 문자 그대로 1과 1을 더했으니 합친 11이 출력될 것이다.
즉, 자료형이란 값의 타입을 말하는데: 문자의 값을 숫자로 인식할 지, 문자로 인식할 지를 구분할 수 있게 해준다.
컴퓨터가 인간과 같이 문자/숫자를 바로 알 수 없기 때문에, 프로그램 형식에 따라 알려줘야 한다.
자료형에는
자료에 대한 타입 | 어떤 값을 담는 자료구조 |
숫자, 문자열, 불(bool, 참/거짓) | 변수, 리스트, 튜플, 딕셔너리, 집합 |
-1. 숫자형
- 정수형(int): 1, 2, -2 …
a=1
print(type(a)) # 다음과 같이 코드를 치면 셸에서 <class 'int'> 라고 표기 된다.
- 실수(float): 1.23, -34.56 …
[+컴퓨터식 지수 표현 방식: 4.23e10, 4.23e-10 … → 이때 e10은 10의 10승 / e-10은 10의 -10승을 뜻한다.]
a=4.123
print(type(a)) # <class 'float'>
- 8진수: 0o37 …
- 16진수: 0x7A …
- 숫자형 활용 연산자
- 사칙연산(+, -, *, /)
- x의 y제곱(**)
>>> x=2
>>> y=4
>>> x**y #제곱은 *을 두 번 사용 → **
16
- 나눗셈 후 나머지 반환(%)
>>> 10%3 # 10을 3으로 나누면 나머지가 1
1
>>> 3%10
3
- 나눗셈 후 몫 반환(//)
>>> 10/3 #기본 사칙연산 나눗셈
3.3333333333333335
>>> 10//3 #몫을 반환 = 몫에 해당되는 정수값만 반환
3
-2. 문자열 자료형
- 문자열 자료형(str) 만드는 4가지 방법
"hello, python" = " 큰따옴표
'python is fun' = ' 작은따옴표
"""life is too short""" = """ 큰따옴표*3
'''you need python''' = ''' 작은따옴표*3
- 4가지가 된 이유
1) python's의 '(작은따옴표)를 넣어주기 위해 = 큰 따옴표로 문장을 감싸기 위해
>>> a="python's favorite food is perl"
>>> a
"python's favorite food is perl"
2) "(큰따옴표)를 넣어주기 위해서
>>> a='"python is very EZ." he says'
>>> a
'"python is very EZ." he says'
+) \를 넣는 방법
#작은따옴표
>>> a='python\'s favorite food is perl'
>>> a
"python's favorite food is perl"
#큰따옴표
>>> a="\"python is very EZ.\" he says"
>>> a
'"python is very EZ." he says'
3) 여러 줄인 문자열을 변수에 대입하고 싶을 때 (\n)
ex.
Life is too short
You need python
#이스케이프 코드 사용 \n
a='Life is too short\nYou need python'
print(a)
#출력 결과
#Life is too short
#You need python
→ 단점은 줄 구분이 힘들다.
#이스케이프 코드: 프로그래밍을 할 때 사용할 수 있도록 미리 정의해 둔 '문자 조합'. 주로 출력물을 보기 좋게 정렬하는 용도로 사용
코드 | 설명 |
\n | 문자열 안에서 줄을 바꿀 때 사용 |
\t | 문자열 사이에 탭 간격을 줄 때 사용 |
\\ | 문자 \를 그대로 표현할 때 사용 |
\' | 작은따옴표(')를 그대로 표현할 때 사용 |
\" | 큰따옴표(")를 그대로 표현할 때 사용 |
4) 큰따옴표*3 or 작은따옴표*3개를 이용해 여러 줄 문자열 변수 대입
#작은따옴표*3
a='''Life is too short
You need python
이렇게~'''
print(a)
#출력 결과
#Life is too short
#You need python
# 이렇게~
#큰따옴표*3
b="""
Life is too short
You need python
호 롤 롤 롤 롤
"""
print(b)
#출력 결과
#Life is too short
#You need python
# 호 롤 롤 롤 롤
→ 3)의 줄 구분이 힘들다는 단점을 극복. 입력 그대로 출력이 나온다.
- 문자열 연산
파이썬에서는 문자열을 더하거나 곱할 수 있다.
#더하기
a='python is'
b=' fun!!!'
print(a+b) #python is fun!!!
#곱하기
a='python is'
b=' fun!!!'
print(b*5) # b를 5번 출력하라
#fun!!! fun!!! fun!!! fun!!! fun!!!
- 문자열 길이 구하기 (len 함수)
>>> a = 'you need python'
>>> len(a)
15 #공백 포함
- 인덱싱(indexing): 무엇인가를 '가리킨다'는 의미.
다른 언어에서는 string에서 인덱싱이 없고 하려면 함수들을 써야하는데, 파이썬은 굉장히 쉽게 접근할 수 있다.
a='way back home'
print(a[4]) #b 출력
긴 문자열이 있으면 각각 숫자로 번호가 매겨진다.
w | a | y | b | a | c | k | h | o | m | e | ||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
-13 | -12 | -11 | -10 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
위의 코드에서 4번째를 출력시켰기 때문에, b가 출력된 것.
a='way back home'
print(a[-4]) #h 출력
인덱싱에서 -는 역방향을 뜻하기에 역방향의 4번째인 h가 출력
- 슬라이싱(slicing): 무엇인가를 '잘라낸다'는 의미.
ex. 인덱싱에서 home이라는 문자만 뽑아내려면
a='way back home'
print(a[9]+a[10]+a[11]+a[12]) #home
이렇게 해야하는데, 슬라이싱을 이용하면 더 쉽고 간편하고 빠르게 할 수 있다.
a[이상:미만:간격]
ex.
a='12345678' 일때
a[:4] → 0≤a<4 범위 #1234
a[5:] → 5≤a<끝 범위 #678
a[::2] → 처음부터 끝까지 2칸씩 간격으로 #1357
a[::-2] → 처음부터 끝까지 뒤로 2칸 간격으로 #8642
따라서 슬라이싱을 활용해 home을 뽑으면
a='way back home'
print(a[9:]) #home
이렇게 간단하게 뽑을 수 있다.
# 중간 문자열 바꾸기
>>> a='pithon'
>>> a[1]
'i'
>>> a[1]='y' #오류가 뜨는 이유는 문자열의 요솟값은 바꿀 수 있는 값이 아니기 때문이다(=immutable)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
>>> a[:1]+'y'+a[2:] #슬라이싱 기법을 이용해 문자열을 두 부분으로 나누고 중간에 'y' 문자를 추가
'python'
'Python' 카테고리의 다른 글
파이썬 프로그램의 구조 쌓기: 제어문(1) (0) | 2021.05.15 |
---|---|
파이썬 프로그래밍 기초: 자료형(3) (0) | 2021.05.14 |
파이썬 프로그래밍 기초: 자료형(2) (0) | 2021.05.13 |
파이썬에 대해 (0) | 2021.05.10 |