List
- 파이썬의 자료형
- 숫자형
- 문자열 자료형
- 리스트 자료형
- 튜플 자료형
- 딕셔너리 자료형
- 집합 자료형
- 불 자료형
- 자료형의 값을 저장하는 공간
- 변수
문자열(String)이란 문자, 단어 등으로 구성된 문자들의 집합이며, 작은 따옴표(' ')
나 큰 따옴표(" ")
로 둘러 쌓여있는 것은 전부 문자열이다. *숫자또한 따옴표에 둘러 쌓여있으면 문자열이 된다.
"Life is too short, You need Python"
"a"
"123"
"Hello World"
'Python is fun'
"""Life is too short, You need python"""
'''Life is too short, You need python'''
" "
& 작은 따옴표 ' '
사용>>>>food = "Python's favorite food is perl" **가능
>>>>food = 'Python's favorite food is perl' **오류
>>>> say = '"Python is very easy." he says.' **가능
>>>> say = ""Python is very easy." he says." **오류
\
사용>>>> food = 'Python\'s favorite food is perl' **가능
>>>> say = "\"Python is very easy.\" he says." **가능
\n
사용>>> multiline = "Life is too short\nYou need python"
>>> print(multiline) **이렇게 출력 될것
Life is too short
You need python
""" """
& 작은 따옴표 3개''' '''
사용>>> multiline='''
Life is too short
You need python
'''
>>> multiline="""
Life is too short
You need python
"""
위 두개의 문자열은 동일하게 아래와 같이 출력 된다
>>> print(multiline)
Life is too short
You need python
이스케이프 코드?
프로그래밍할 때 사용할 수 있도록 미리 정의해 둔 "문자 조합"
\n
: 문자열 안에서 줄을 바꿀 때 사용(enter)
\t
: 문자열 사이에 탭 간격을 줄 때 사용(tab)
\\
: 문자 ( \ )를 그대로 표현할 때 사용
\'
: 작은따옴표( ' ) 를 그대로 표현할 때 사용
\"
: 큰따옴표( " )를 그대로 표현할 때 사용
덧셈, 곱셈을 사용하여 문자열 연결 시킬 수 있다.
print('=' * 50)
print('shin' + ' is' + ' good')
print('=' * 50)
에디터 모드 사용
>>>
==================================================
shin is good
==================================================
↑ 위의 값이 나옴
len(a)
함수 사용 하여 문자열의 길이 구할 수 있다.
>>> a = "Life is too short"
>>> len(a)
17 **이때 출력값은 공백칸까지 추가된것 (글자 수 는 14개)
※ 인덱싱과 슬라이싱은 리스트나 튜플에서도 사용할 수 있다.
- 파이썬은 0부터 숫자를 센다
Life is too short, You need Python
0 1 2 3
0123456789012345678901234567890123
a[]
을 가지고 값을 출력할 수 있고, 한글자만 가능>>> a = "Life is too short, You need Python"
>>> a[0] ***앞에서부터 세어 첫 번째 문자를 출력
'L'
>>> a[12]
's'
>>> a[-1] ***뒤에서부터 세어 첫 번째 문자를 출력
'n'
+
와 같이도 사용할 수 있다>>> a = "Life is too short, You need Python"
>>> b = a[0] + a[1] + a[2] + a[3]
>>> b
'Life'
a[시작 번호:끝 번호]
>>> a = "20010331Rainy"
>>> year = a[:4]
>>> day = a[4:8]
>>> weather = a[8:]
>>> year
'2001'
>>> day
'0331'
>>> weather
'Rainy'
가변(mutable) : 값 변경 가능. **리스트, 딕셔너리 등이 해당
불변(immutable) : 값 변경 불가능 **문자열, 튜플 등이 해당
문자열의 경우 값 변경 불가함, 하지만 아래와 같이 슬라이싱을 사용하여 변경 할수도 있음
>>> a = "Pithon"
>>> a[:1]
'P'
>>> a[2:]
'thon'
>>> a[:1] + 'y' + a[2:]
'Python'
문자열 포매팅 코드
%s
: 문자열(String)
%c
: 문자 1개(character)
%d
: 정수(Integer)
%f
: 부동소수(floating-point)
%%
: Literal % (문자%
자체)
%d
~.' % 정수
%f
~.' % 실수
>>> "I eat %d apples." % "5"
'I eat 5 apples.'
>>> "I eat %f apples." % "5.5"
'I eat 5.5 apples.'
%s
※ 문자열을 대입할 때는 큰따옴표나 작은따옴표를 문자열에 맞게 반드시 써주어야 된다악
※이 코드는 어떤 형태의 값이든 변환해 넣을 수 있다.
- 이렇기 때문에 정수, 실수 전부
%s
로 받으면 그대로 가져올 수 있다 이때 따옴표는 안써도 됌
%s
~.' % '문자'
>>> "I eat %s apples." % "five"
'I eat five apples.'
※ 변수를 대입할 때 숫자나 문자 전부 따옴표를 쓸 필요 없다
%d
~.' % 변수
>>> number = 3
>>> "I eat %d apples." % number
'I eat 3 apples.'
%s
사용%s
~.' % 변수
>>> f = 'five'
>>> 'I eat %s apples.' % f
'I eat five apples.'
**문자와 숫자가 제대로 입력이 안되어 있음 출력이 안되겠지
%d
~ %s
~.' % (변수,변수)
>>> number = 10
>>> day = "three"
>>> "I ate %d apples. so I was sick for %s days." % (number, day)
'I ate 10 apples. so I was sick for three days.'
%d%%
~.' % 정수
%d
같은 연산자가 없음 그냥 %쓰면 되용>>> "Error is %d%%." % 98
'Error is 98%.'
-
의 존재 유무로 정렬 달라짐(-
면 왼쪽, 없으면 오른쪽)1. 오른쪽 정렬, 앞 공백10칸, 소숫점 4자리까지
>>> "%10.4f" % 3.42134234
' 3.4213'
** "%10.4f" 의 이미
- `-`가 아님 -> 오른쪽 정렬
- `10.4`중 `10` -> 대입되는 숫자의 앞에 공백 10칸 남기기
- `10.4`중 `.4` -> 소숫점 4자리 (실수이기 때문에`%f` 사용)
2. 왼쪽 정렬, 뒷 공백 10칸, 소숫점 없음
>>> "%-10sjane." % 'hi'
'hi jane.'
** "%-10sjane" 의 이미
- `-`가 맞음 -> 왼쪽 정렬
- `10`중 `10` -> 대입되는 숫자의 뒤쪽에 공백 10칸 남기기
- `10`중 소숫점 없음( 소숫점 없고 문자열이기 때문에 '%s' 사용)
문자열의 format 함수를 사용하여 좀 더 발전된 스타일로 문자열 포멧을 지정할 수 있다.
'~ {0} ~.'.format()
format()
여기서 괄호 안에 따옴표 쓸필요 없어>>> "I eat {0} apples".format(3)
'I eat 3 apples'
"I eat {0} apples" 문자열 중 {0} 부분이 숫자 3으로 바뀌었다.
format()
여기서 괄호 안에 따옴표 맞춰서 잘 써야해>>> "I eat {0} apples".format("five")
'I eat five apples'
문자열의 {0} 항목이 five라는 문자열로 바뀌었다.
format()
여기서 괄호 안에 따옴표 쓸 필요 없다>>> number = 3
>>> "I eat {0} apples".format(number)
'I eat 3 apples'
- 기본구조는
"~{0} ~ {1} ~.".format( , )
- 또한 문자열 안에 계속 대입 가능
1. 2개 이상 값 대입하기
>>> '{0}{1}{2}'.format('shin',' is', ' good')
'shin is good'
2. 변수로 2개 이상 대입하기
>>> s = 'shin'
>>> i = ' is'
>>> g = ' good'
>>> '{0}{1}{2}'.format(s, i, g)
'shin is good'
3. 인덱스가 아닌 이름으로 대입하기
>>> '{s}{i}{g}'.format(s='shin', i=' is', g = ' good')
'shin is good'
4. 인덱스와 이름 혼용
>>> s = 'shin'
>>> i = ' is'
>>> g = ' good'
>>> '{0}{1}{g}'.format(s, i, g = ' good')
'shin is good'
:>
:<
:^
사용1. 오른쪽 정렬
>>> "{0:>10}".format("hi")
' hi'
↑ **{0:>10} 의미
- 0부분 - 인덱싱 넘버
- :>부분 - 오른쪽 정렬
- 10 - 앞쪽으로 공백 10칸
2. 왼쪽 정령
>>> "{0:<10}".format("hi")
'hi '
↑ **{0:<10} 의미
- 0부분 - 인덱싱 넘버
- :<부분 - 왼쪽 정렬
- 10 - 뒷쪽으로 공백 10칸
{:0.1f}'.format()
사용>>> y = 3.42134234
>>> "{0:>10.4f}".format(y)
' 3.4213'
>>> "{0:<10.4f}".format(y)
'3.4213 '
{
}
문자로 표현{{ }}
이렇게 쓰면 됌 >>> "({{shin}}{0})".format('shin')
'({shin}shin)'
변수이름.함수()
~.count()
: 문자 개수 세기>>a = 'shin' >>a.count('s') # 문자열 중 s의 개수 출력 1
~.find()
: 위치 알려주기>> a = 'shin' >> a.find('s') # 문자열 중 문자 s 가 처음으로 나온 위치 출력 0 # 파이썬은 0부터 세기 때문에 h 는 0임
~.index()
: 위치 알려주기
index에서는 find와 달리 문자열 안에 존재하지 않는 문자를 찾으면 오류가 발생한다.>> a = 'shin' >> a.index('s') # 문자열 중 문자 s 가 처음으로 나온 위치 출력 0 # 파이썬은 0부터 세기 때문에 h 는 0임
~.join()
: 문자열 삽입>>",".join('shin') #shin 문자열 각각의 문자 사이에 `,`삽입 's,h,i,n' >> ",".join(['a', 'b', 'c', 'd']) # 리스트와 튜플에서도 사용 가능 'a,b,c,d'
~.upper()
: 대문자 만들기>> a = 'shin' >> a.upper() 'SHIN'
~.lower()
: 소문자 만들기>> a = 'SHIN' >> a.lower() 'shin'
~.lstrup()
: 왼쪽 공백 지우기>> a = ' shin ' >> a.lstrup() 'shin '
~.rstrup()
: 오른쪽 공백 지우기>> a = ' shin ' >> a.rstrup() ' shin'
~.strup()
: 양쪽 공백 지우기>> a = ' shin ' >> a.strup() 'shin'
~.replace()
: 문자열 바꾸기>> a = 'shin is stupid ' >> a.replace('stupid', 'smart') #stupid -> smart 로 바꾸란 말이당 'shin is smart'
~.split()
: 문자열 나누기>> a = 'shin is smart' >> a.split() ['shin', 'is', 'smart']-> 공백으로 문자열 나눔 >> a = 'shin_is_smart' >> a.split('_') #이때 공백이 아닐 때 에는 따옴표 붙혀라.. ['shin', 'is', 'smart'] >> a.split('s') ['', 'hin_i', '_', 'mart']