시퀀스 자료형
- 시퀀스 자료형이란 값이 연속적으로 이어진 자료형을 말한다.
- 리스트, 튜플, 문자열이 시퀀스 자료형에 속한다.
- 시퀀스 자료형의 요소들은 고유의 인덱스 번호를 가지고 있다.
- 인덱스 번호의 시작 번호는 앞에서부터 0
마이너스 인덱스 번호의 시작 번호는 -1
ex)
li = ['a', True, 1, 2, 3, "안녕"]
idx | [0] | [1] | [2] | [3] | [4] | [5] |
li = | 'a' | True | 1 | 2 | 3 | "안녕" |
idx | [-6] | [-5] | [-4] | [-3] | [-2] | [-1] |
tu = (False, 4, 5, 6, 'b')
idx | [0] | [1] | [2] | [3] | [4] |
tu = | False | 4 | 5 | 6 | 'b' |
idx | [-5] | [-4] | [-3] | [-2] | [-1] |
st = "Hello World"
idx | [0] | [1] | [2] | [3] | [4] | [5] | [6] | [7] | [8] | [9] | [10] |
st = | 'H' | 'e' | 'l' | 'l' | 'o' | ' ' | 'W' | 'o' | 'r' | 'l' | 'd' |
idx | [-11] | [-10] | [-9] | [-8] | [-7] | [-6] | [-5] | [-4] | [-3] | [-2] | [-1] |
1) 인덱싱
- 특정문자를 추출할 때 사용, 인덱스 번호를 사용
- 변수명[인덱스번호]
ex)
위 예시에서
st[4] = 'o' , tu[3] = 6
2) 슬라이싱
- 인덱스 번호를 사용하여 한 문자 이상 구성된 단어나 문자를 추출할 때 사용
- 변수명[start : stop : step]
이상 미만 간격
ex)
li = [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
idx 0 1 2 3 4 5 6 7 8
li[ 3 : 7 ] -> 인덱스번호 3이상 7미만 (간격 1) -> [ 4, 5, 6, 7 ]
li[ 5 : ] -> 인덱스번호 5이상 (끝까지) -> [ 6, 7, 8, 9 ]
li[ 1 : 7 : 2] -> 인덱스번호 1이상 7미만 2간격 -> [ 2, 4, 6 ]
li[ : 4 ] -> (처음부터) 인덱스 번호 4미만 -> [ 1, 2, 3, 4 ]
1. 입력함수 : input()
- 사용자로부터(키보드로부터) 입력받기 위한 함수
- input("입력 메시지")
- 입력받은 값은 무조건 str 자료형으로 저장된다.
- 다른 자료형을 입력하고 싶을 때에는 반드시 형변환을 사용해야 한다.
ex)
a = int(input("정수 입력 : "))
print(a + 1)
이렇게 입력받은 값을 변수에 저장하고 그 변수를 다른 자료형으로 변환한 뒤
자료형을 연산하거나 출력하고, 사용할 수 있다.
2. 이스케이프 문자
- 문자열 안에서 특수한 기능을 하는 문자
\" : 문자열에서 "를 표현한다.
\' : 문자열에서 '를 표현한다.
\\ : 문자열에서 \를 표현한다.
\n : 줄바꿈을 표현한다.
\t : tab키(들여쓰기, 일정간격 띄우기)를 표현한다.
3. 형식을 갖춘 문자열
: 하나의 문자열 안에서 여러 개의 자료형의 형식을 지정하여 작성하는 것
1) %연산자
- 자료형마다 문자열에서 표현하는 서식문자(형식 지정자)를 사용
기본 자료형 | 형식 지정자 | 출력 예시 |
정수형 (int) | %d | print("%d" %10) |
실수형(float) | %f | print("%f" %3.14) |
문자형(str) | %s | print("%s" %True) |
논리형(bool) | %s | print("%s" %'안녕') |
c언어의 표현방식과 유사하다.
2) str.format()
- "{} {}".format(값1, 값2)
- 순서를 지정할 수도 있고, 형식을 지정할 수도 있음
(1) 다양한 대입 방법
# 직접 대입하기
s1 = 'name : {0}'.format('BlockDMask')
print(s1)
=> name : BlockDMask
# 변수로 대입 하기
age = 55
s2 = 'age : {0}'.format(age)
print(s2)
=> age : 55
# 이름으로 대입하기
s3 = 'number : {num}, gender : {gen}'.format(num=1234, gen='남')
print(s3)
=> number : 1234, gender : 남
출처: https://blockdmask.tistory.com/424 [가면 뒤의 기록:티스토리]
(2) 인덱스 번호 사용
# 인덱스를 입력하지 않으면?
s4 = 'name : {}, city : {}'.format('BlockDMask', 'seoul')
print(s4)
=> name : BlockDMask, city : seoul
# 인덱스를 입력하지 않으면 뒤에 입력한 순서대로 대입됨
# 인덱스 순서가 바뀌면?
s5 = 'song1 : {1}, song2 : {0}'.format('nunu nana', 'ice cream')
print(s5)
=> song1 : ice cream, song2 : nunu nana
# 인덱스 순서가 바뀌면 번호에 맞춰 바뀌어서 대입됨
# 인덱스를 중복해서 입력하면?
s6 = 'test1 : {0}, test2 : {1}, test3 : {0}'.format('인덱스0','인덱스1')
print(s6)
=> test1 : 인덱스0, test2 : 인덱스1, test3 : 인덱스0
# 인덱스를 중복해서 입력하면 변수를 사용한 것처럼 중복해서 대입됨
출처: https://blockdmask.tistory.com/424 [가면 뒤의 기록:티스토리]
(3) 문자열 정렬 형식
# 왼쪽 정렬
s9 = 'this is {0:<10} | done {1:<5} |'.format('left', 'a')
print(s9)
# 오른쪽 정렬
s10 = 'this is {0:>10} | done {1:>5} |'.format('right', 'b')
print(s10)
# 가운데 정렬
s11 = 'this is {0:^10} | done {1:^5} |'.format('center', 'c')
print(s11)
<출력 결과>
this is left | done a |
this is right | done b |
this is center | done c |
출처: https://blockdmask.tistory.com/424 [가면 뒤의 기록:티스토리]
:(콜론) < or > or ^ (정렬방향) 정수(확보할 전체 칸 수)
# 왼쪽 정렬
s12 = 'this is {0:-<10} | done {1:o<5} |'.format('left', 'a')
print(s12)
# 오른쪽 정렬
s13 = 'this is {0:+>10} | done {1:0>5} |'.format('right', 'b')
print(s13)
# 가운데 정렬
s14 = 'this is {0:.^10} | done {1:@^5} |'.format('center', 'c')
print(s14)
<출력 결과>
this is left------ | done aoooo |
this is +++++right | done 0000b |
this is ..center.. | done @@c@@ |
출처: https://blockdmask.tistory.com/424 [가면 뒤의 기록:티스토리]
{ :(콜론) (공백을 대신할 문자) < or > or ^ (정렬방향) 정수(확보할 전체 칸 수)}
(4) 자리수와 소수점 표현
# 정수 N자리
s15 = '정수 3자리 : {0:03d}, {1:03d}'.format(12345, 12)
print(s15)
=> 정수 3자리 : 12345, 012
# 소수점 N자리
s16 = '아래 2자리 : {0:0.2f}, 아래 5자리 : {1:0.5f}'.format(123.1234567, 3.14)
print(s16)
=> 아래 2자리 : 123.12, 아래 5자리 : 3.14000
출처: https://blockdmask.tistory.com/424 [가면 뒤의 기록:티스토리]
정수를 N자리로 맞추기 -> 01, 02 이런 표현
{ : 0Nd} -> N자리가 안되면 부족한 자리수는 0으로 채움
소수점 아래 N자리까지 표현 -> 3.1400 이런 표현
{ : .Nf} -> 위에 예제에서는 0.Nf로 표현되어있지만 여기에서 0은 생략되어도 된다.
3) f-string
- f"{값, 변수명}" -> 따옴표 앞에 f를 쓰고 따옴표 내부에서 불러오고 싶은 변수의 이름을 중괄호{}로 감싸서 작성
- .format에서 뒤에 작성한 내용을 중괄호 안에 작성한다고 보면 된다.
- 따로 값을 넘겨줄 필요 없이 알아서 변수에 저장된 값을 중괄호 안으로 가져옴
ex)
num = 3
st = "Hello!"
pi = 3.14
print(f"{st} int({pi:.2f} = {num})")
출력 결과 => Hello! int(3.14) = 3
[참고 사이트]
- https://blockdmask.tistory.com/424
'프로그래밍 공부 > Python' 카테고리의 다른 글
[파이썬] 복습 노트 - 4 | 다양한 연산자와 우선순위 (0) | 2025.01.24 |
---|---|
[파이썬] 쉬프트 연산자 (비트 연산자) (0) | 2025.01.24 |
[파이썬] 복습 노트 - 2 | 변수와 기본 자료형 (3) | 2025.01.23 |
[파이썬] 복습 노트 - 1 | 파이썬의 특징 (0) | 2025.01.23 |
[파이썬] 실행파일 만들기(컴파일/.exe) (1) | 2025.01.12 |