[Python Note] 자료형(1)
Note 주석은
#
으로 표시할 수 있다. 단축키는Ctrl + /
이다.
※ 가끔 단축키가 잘 안될 때가 있는데
‘한국어 한컴 입력기’를 ‘한국어 Microsoft 입력기’로 바꾸면 해결된다.
보통 화면의 맨 오른쪽 아래 시계 왼쪽에 아이콘이 있다.
1. 입출력
1) 입력(Input)
a = input('실행할 때 나타나는 문자')
- 실행하면 그 때 입력받은 값을
a
에 저장한다. - 여러 값 입력 받기(※ 리스트로 저장된다.)
- STEP 1. 어떻게 구분해서 입력받을지를 생각한다.
- STEP 2.
.split('구분값')
을 이용하여 저장한다. - STEP 3.
list(map('함수', '입력값'))
를 통해 문자형을 자른 자료형으로 바꾼다.
*map
함수는 각 요소마다 함수를 적용해주는 기능을 한다.
a = input('문자를 입력해주세요')
print(a)
안녕하세요
a = input('문자를 여러 개 입력해주세요(쉼표(\',\')로 구분해주세요.)').split(',')
print(a)
b = input('숫자를 여러 개 입력해주세요(쉼표(\',\')로 구분해주세요.)').split(',')
print(list(map(int, b)))
['원', '투', '쓰리', '1', '2', '3']
[1, 2, 3]
2) 출력(Print)
print('출력할 값 또는 변수', sep=' ', end='\n')
-
이스케이프 코드
코드 설명 \n
Enter키와 같다 \t
tab과 같다 \\
\
를 문자로 인식한다 -
기본값은 여러 자료를 입력할 때 space로 구분되고,
print
가 끝나면 자동으로 Enter가 된다.print('간절하게','원하면','지금','움직이세요','-노희경') print('간절하게','원하면','지금','움직이세요','-노희경', sep='|') print('간절하게','원하면','지금','움직이세요','-노희경', end='\t') print('간절하게','원하면','지금','움직이세요','-노희경', sep='')
간절하게 원하면 지금 움직이세요 -노희경 간절하게|원하면|지금|움직이세요|-노희경 간절하게 원하면 지금 움직이세요 -노희경 간절하게원하면지금움직이세요-노희경
- 여러 변수들과 문자를 섞어서 출력하기도 하는데 Formatting을 알면 매우 간편하게 적용할 수 있다. 이에 대한 정리는 하나의 포스트로 정리하려고 한다.
Note 어떤 자료형인지 알고 싶을 때 우리는 주로
type()
또는isinstance()
로 확인한다.
type(a)
:a
의 자료형이 무엇인지 알려준다.isinstance(a, str)
:a
의 자료형이str
이 맞는지 True/False로 알려준다.
2. 숫자형
1) 정수(int)
int(a)
: a를 정수형으로 변환한다.
print(12345, '> 양의 정수, type:', type(12345))
print(0, '> 0, type:', type(0))
print(-12345, '> 음의 정수, type:', type(-12345))
12345 > 양의 정수, type: <class 'int'>
0 > 0, type: <class 'int'>
-12345 > 음의 정수, type: <class 'int'>
2) 실수(float)
float(a)
: a를 실수형로 변환한다.
# 실수
print(2.0, '> 실수, type:', type(2.0))
print(3.14, '> 실수, type:', type(3.14))
print(2e3, '> 실수, type:', type(2e3))
print(2e-3, '> 실수, type:', type(2e-3))
2.0 > 실수, type: <class 'float'>
3.14 > 실수, type: <class 'float'>
2000.0 > 실수, type: <class 'float'>
0.002 > 실수, type: <class 'float'>
3) 복소수(complex)
함수 | 설명 |
---|---|
a.real |
복소수의 실수 부분을 출력한다. |
a.imag |
복소수의 허수 부분을 출력한다. |
a.conjugate() |
복소수의 컬레복소수를 출력한다. |
abs(a) |
복소수의 절댓값을 출력한다. |
a = 1+2j
b = 3-4j
print(a,b)
print(a.real,b.real) # 복소수의 실수 부분 출력
print(a.imag,b.imag) # 복소수의 허수 부분 출력
print(a.conjugate(),b.conjugate()) # 켤레 복소수 출력
print(abs(a),abs(b)) # 복소수의 절대값 출력
(1+2j) (3-4j)
1.0 3.0
2.0 -4.0
(1-2j) (3+4j)
2.23606797749979 5.0
4) 수열
range(start, end, step)
함수를 통해 쉽게 수열을 만들 수 있다.- start부터 end-1까지 간격이 step인 수열을 만든다.
- step이 생략되었다면 간격이 1이다.
type
은range
이며 출력했을 때 수열로 나타나지 않는다.
하지만 리스트나 튜플을 씌우면 나타난다.
# 0부터 9까지 출력
print(range(10), '> type: ', type(range(10)))
print(list(range(10)), tuple(range(10)))
# 1부터 20까지 2간격으로 출력
print(list(range(1, 21, 2)), tuple(range(1, 21, 2)))
# 10부터 아래로 1까지 출력
print(list(range(10, 0, -1)), tuple(range(10, 0, -1)))
range(0, 10) > type: <class 'range'>
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19] (1, 3, 5, 7, 9, 11, 13, 15, 17, 19)
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1] (10, 9, 8, 7, 6, 5, 4, 3, 2, 1)
5) 연산
연산자 | 설명 |
---|---|
+ , - , * , / |
사칙연산(덧셈,뺄셈,곱셈,나눗셈) |
** |
거듭제곱 |
// |
나눗셈의 몫 |
% |
나눗셈의 나머지 |
print('덧셈:',1 + 2, end=' | ')
print('뺄셈:',3 - 4, end=' | ')
print('곱셈:',5 * 6, end=' | ')
print('나눗셈:',123 / 10)
print('거듭제곱:', 2 ** 10, end=' | ')
print('몫:',123 // 10, end=' | ')
print('나머지:',123 % 10)
덧셈: 3 | 뺄셈: -1 | 곱셈: 30 | 나눗셈: 12.3
거듭제곱: 1024 | 몫: 12 | 나머지: 3
3. 문자형
str(a)
: a를 문자형로 변환한다.
1) 한 줄 / 여러 줄
- 작은따옴표(‘‘)와 큰따옴표(““)로 표시한다.
- 출력할 때 따옴표를 표시하고 싶을 때에는 앞에
\
를 붙이거나 표현하고 싶은 따옴표와는 다른 따옴표를 사용한다. - 여러 줄은 따옴표 3개로 표시한다. 여러 줄은 Enter를 읽는다.
print("간절하게 원하면 '지금' 움직이세요 - 노희경")
print('간절하게 원하면 "지금" 움직이세요 - 노희경')
print('간절하게 원하면 \'지금\' 움직이세요 - 노희경')
print("간절하게 원하면 \"지금\" 움직이세요 - 노희경")
print("-"*40)
print("""간절하게 원하면
지금 움직이세요
- 노희경""")
print("-"*40)
print("""
간절하게 원하면
지금 움직이세요
- 노희경
""")
print("-"*40)
간절하게 원하면 '지금' 움직이세요 - 노희경
간절하게 원하면 "지금" 움직이세요 - 노희경
간절하게 원하면 '지금' 움직이세요 - 노희경
간절하게 원하면 "지금" 움직이세요 - 노희경
----------------------------------------
간절하게 원하면
지금 움직이세요
- 노희경
----------------------------------------
간절하게 원하면
지금 움직이세요
- 노희경
----------------------------------------
3) 연산
- 문자에서의 연산은 연결 또는 반복을 의미한다.
# 문자 연결
print('커피의','즐거움을','만드는','작은','차이의','미학 - 할리스커피')
print('커피의'+'즐거움을'+'만드는'+'작은'+'차이의'+'미학 - 할리스커피')
# 문자의 반복
print("HA "*10)
print("=" * 50)
커피의 즐거움을 만드는 작은 차이의 미학 - 할리스커피
커피의즐거움을만드는작은차이의미학 - 할리스커피
HA HA HA HA HA HA HA HA HA HA
==================================================
4) 인덱싱(Indexing) / 슬라이싱(Slicing)
- 파이썬에서 위치는 <font color=’red’;>0부터</font> 시작한다.
a[start:end:step]
,
a
에서 start부터 end-1까지 step의 간격인 수열의 위치에 있는 요소만 출력한다.
step이 생략되면 1이라고 생각하자.
간 | 절 | 하 | 게 | 원 | 하 | 면 | 지 | 금 | 움 | 직 | 이 | 세 | 요 | |||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
0 | -16 | -15 | -14 | -13 | -12 | -11 | -10 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
a = "일이삼사오육칠팔구십"
print(a[0]) # 0위치 요소 출력
print(a[-1]) # 마지막 요소 출력
print(a[:5]) # 처음부터 4위치 요소까치 출력
print(a[5:]) # 8위치 요소부터 끝까지 출력
print(a[:-1]) # 마지막 요소 빼고 출력
print(a[::2]) # 홀수번째 요소만 출력
print(a[::-1]) # 반대로 출력
일
십
일이삼사오
육칠팔구십
일이삼사오육칠팔구
일삼오칠구
십구팔칠육오사삼이일
4) 문자 변형
-
문자를 대문자 / 소문자로 변경
함수 설명 a.upper()
a를 모두 대문자로 출력한다 a.lower()
a를 모두 소문자로 출력한다 a.swapcase()
a에서 대문자는 소문자로, 소문자는 대문자로 출력한다 a = "americano" print(a, '>', a.upper()) b = "DELICIOUS" print(b, '>', b.lower()) c = "AmErIcAnO" print(c, '>', c.swapcase())
americano > AMERICANO DELICIOUS > delicious AmErIcAnO > aMeRiCaNo
-
문자 삽입 / 분리 / 제거
코드 설명 a.zfill(int)
“문자”의 길이를 지정하고 왼쪽을 0으로 채운다 a.join('문자')
“문자”의 한 글자마다 a를 삽입한다 a.split('문자')
“문자”를 a를 구분자로 사용하여 분리한다 a.strip('문자')
a의 양쪽에 ‘문자’를 제거한다 a.lstrip('문자')
a의 왼쪽에 ‘문자’를 제거한다 a.rstrip('문자')
a의 오른쪽에 ‘문자’를 제거한다 txt = '135' print(txt.zfill(10)) # 문자 앞에 0으로 채워 길이가 10인 문자 생성 a = " > " print(a.join("가나다라마바사")) # 문자사이에 '>' 삽입 b = a.join("가나다라마바사") # 문자를 '>'를 구분자로 하여 분리 print(b.split(a)) c = " americano " print('|' + c + '|') print('|' + c.lstrip() + '|') # 왼쪽 공백 제거 print('|' + c.rstrip() + '|') # 오른쪽 공백 제거 print('|' + c.strip() + '|') # 양쪽 공백 제거
0000000135 가 > 나 > 다 > 라 > 마 > 바 > 사 ['가', '나', '다', '라', '마', '바', '사'] | americano | |americano | | americano| |americano|
5) 문자 정렬
코드 | 설명 |
---|---|
a.ljust(int) |
입력한 정수 길이에 ‘문자’를 채우고 왼쪽으로 정렬한다. |
a.rjust(int) |
입력한 정수 길이에 ‘문자’를 채우고 오른쪽으로 정렬한다. |
a.center(int) |
입력한 정수 길이에 ‘문자’를 채우고 가운데으로 정렬한다. |
text = 'americano'
print('|',text,'|',sep="")
print('|',text.ljust(15),'|',sep="") # 문자 길이 15에서 왼쪽 정렬
print('|',text.rjust(15),'|',sep="") # 문자 길이 15에서 오른쪽 정렬
print('|',text.center(15),'|',sep="") # 문자 길이 15에서 가운데 정렬
|americano|
|americano |
| americano|
| americano |
6) 문자 찾기
코드 | 설명 |
---|---|
a.find("문자") |
“문자”가 처음 나온 위치를 출력한다 만약 a안에 문자가 없으면 -1을 출력한다 |
a.index("문자") |
“문자”가 처음 나온 위치를 출력한다 만약 a안에 문자가 없으면 Error가 나타난다 |
a.count("문자") |
a안에 “문자”가 몇 번 나타나는지를 출력한다 |
text = 'americano'
print(text.find("a"), end=', ') # 처음 'a'의 위치 출력
print(text.find("b"), end=', ') # 존재하지 않다면 -1로 출력
print(text.index("a"), end=', ') # 처음 'a'의 위치 출력
# print(text.index("b")) # 존재하지 않다면 Error
print(text.count("a")) # 'a'의 개수 출력
0, -1, 0, 2
Reference
- 점프 투 파이썬, link: https://wikidocs.net/book/1
- IT CookBook, 데이터 과학을 위한 파이썬 프로그래밍, link: https://www.hanbit.co.kr/store/books/look.php?p_code=B3659877244
- 메타코드, 파이썬 입문 무료 강의 link: https://youtu.be/H3u2HtYGITQ
댓글남기기