1. 숫자형
* 정수형
양의 정수, 음의 정수, 숫자 0을 변수 a에 대입하는 예
>>> a = 123
>>> a = -178
>>> a = 0
* 실수형
실수를 변수 a에 대입하는 예
>>> a = 1.2
>>> a = -3.45
* 사칙연산
>>> a = 3
>>> b = 4
>>> a + b
7
>>> a * b
12
>>> a / b
0.75
* x의 y제곱을 나타내는 ** 연산자
>>> a = 3
>>> b = 4
>>> a ** b
81
* 나눗셈 후 나머지를 반환하는 % 연산자
>>> 7 % 3
1
>>> 3 % 7
3
* 나눗셈 후 몫을 반환하는 // 연산자
>>> 7 // 4
1.75
>>> 7 // 4
1
2. 문자열
* 큰따옴표(")로 양쪽 둘러싸기
"Hello World"
* 작은따옴표(')로 양쪽 둘러싸기
'Python is fun'
* 큰따옴표 3개 연속(""")으로 써서 양쪽 둘러싸기
"""Life is too short, You need python"""
* 작은따옴표 3개 연속(''')으로 써서 양쪽 둘러싸기
'''Life is too short, You need python'''
문자열 안에 작은 따옴표나 큰 따옴표를 포함시키고 싶었기 때문에 문자열을 만드는 방법이 4가지나 되었다.
* 문자열에 작은따옴표('), 큰따옴표(") 포함시키기
"Python's favorite food is perl"
'"Python is very easy." he says.'
'Python\'s favorite food is perl'
* 여려 줄인 문자열을 변수에 대입하고 싶을 때 연속된 작은 따옴표 3개(''') 또는 큰 따옴표 3개(""") 사용
>>> multiline = "Life is too short\nYou need python"
위의 방법은 읽기에 불편하고 줄이 길어지는 단점이 있다.
>>> 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
3. 문자열 연산
* 더하기 연산(Concatenation)
>>> head = "Python"
>>> tail = " is fun!"
>>> head + tail
'Python is fun!'
* 곱하기
>>> a = "python"
>>> a * 2
'pythonpython'
print("=" * 50)
print("My Program")
print("=" * 50)
결과:
==================================================
My Program
==================================================
* 문자열 길이 구하기
>>> a = "Life is too short"
>>> len(a)
17
* 문자열 인덱싱
>>> a = "Life is too short, You need Python"
>>> a[3]
'e'
a[번호]는 문자열 안의 특정한 값을 뽑아내는 역할을 한다. 이러한 작업을 인덱싱이라고 한다.
* 인덱싱 활용
>>> a = "Life is too short, You need Python"
>>> a[0]
'L'
>>> a[12]
's'
>>> a[-1]
'n'
>>> a[-0]
'L'
>>> a[-2]
'o'
>>> a[-5]
'y'
a[-1]은 뒤에서 세어 첫 번째가 되는 문자를 말한다.
뒤에서부터 첫 번째 문자를 표시할 때도 0부터 세어 "a[-0]이라고 해야 하지 않을까?"라는 의문이 들 수도 있겠지만 0과 -0은 똑같은 것이기 때문에 a[-0]은 a[0]과 똑같은 값을 보여 준다.
* 문자열 슬라이싱
"Life is too short, You need Python" 문자열에서 단순히 한 문자만을 뽑아내는 것이 아니라 'Life' 또는 'You' 같은 단어를 뽑아내는 방법
>>> a = "Life is too short, You need Python"
>>> a[0:4]
'Life'
a[0:4] : a 문자열, 즉 "Life is too short, You need Python" 문장에서 자리 번호 0부터 4까지의 문자를 뽑아냄
그렇다면 a[0]은 L, a[1]은 i, a[2]는 f, a[3]은 e니까 a[0:3]으로도 Life라는 단어를 뽑아낼 수 있지 않을까? 정답은 아니다.
>>> a = "Life is too short, You need Python"
>>> a[0:3]
'Lif'
이유 : 슬라이싱 기법으로 a[시작 번호:끝 번호]를 지정할 때 끝 번호에 해당하는 것은 포함하지 않기 때문
a[0:3]을 수식으로 나타내면
0 <= a < 3
이 수식을 만족하는 것은 a[0], a[1], a[2]
따라서 a[0:3]은 'Lif'이고 a[0:4]는 'Life'가 되는 것
* 문자열 슬라이싱 활용
>>> a = "Life is too short, You need Python"
>>> a[0:5]
'Life '
>>> a[0:2]
'Li'
>>> a[5:7]
'is'
>>> a[12:17]
'short'
>>> a[19:]
'You need Python'
>>> a[:]
'Life is too short, You need Python'
>>> a[19:-7]
'You need'
a[4]는 공백 문자이기 때문에 'Life'가 아닌 'Life '가 출력
슬라이싱할 때 항상 시작 번호가 0일 필요는 없음
인덱싱 기법과 슬라이싱 기법은 뒤에서 배울 자료형인 리스트나 튜플에서도 사용할 수 있다.
* 슬라이싱으로 문자열 나누기
"20010331Rainy" 문자열을 날짜를 나타내는 부분인 '20010331'과
날씨를 나타내는 부분인 'Rainy'로 나누는 방법
>>> a = "20010331Rainy"
>>> date = a[:8]
>>> weather = a[8:]
>>> date
'20010331'
>>> weather
'Rainy'
* 문자열 a를 두 부분으로 나누는 기법
a[:8]은 a[8]이 포함되지 않고, a[8:]은 a[8]을 포함
"20010331Rainy"를 연도 2001, 월과 일을 나타내는 0331, 날씨를 나타내는 Rainy의 세 부분으로 나누는 방법
>>> a = "20010331Rainy"
>>> year = a[:4]
>>> day = a[4:8]
>>> weather = a[8:]
>>> year
'2001'
>>> day
'0331'
>>> weather
'Rainy'
* 슬라이싱으로 문자열 바꾸기
>>> a = "Pithon"
>>> a[:1]
'P'
>>> a[2:]
'thon'
>>> a[:1] + 'y' + a[2:]
'Python'
4. 문자열 포매팅
문자열 안에 어떤 값을 삽입하는 방법
* 숫자 바로 대입
>>> "I eat %d apples." % 3
'I eat 3 apples.'
* 문자열 바로 대입
>>> "I eat %s apples." % "five"
'I eat five apples.'
※ 문자열을 대입할 때는 앞에서 배운 것처럼 큰따옴표나 작은따옴표를 반드시 써주어야 한다.
* 2개 이상의 값 넣기
>> 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.'
* 정렬과 공백
>>> "%10s" % "hi"
' hi'
%10s : 전체 길이가 10개인 문자열 공간에서 대입되는 값을 오른쪽으로 정렬하고 그 앞의 나머지는 공백으로 남겨 두라는 의미
>>> "%-10sjane." % 'hi'
'hi jane.'
>>> "{0:<10}".format("hi")
'hi '
>>> "{0:>10}".format("hi")
' hi'
>>> "{0:^10}".format("hi")
' hi '
%-10s : 반대쪽인 왼쪽 정렬
:<10 : 치환되는 문자열을 왼쪽으로 정렬하고 문자열의 총 자릿수를 10으로 맞추기
:>10 : 오른쪽 정렬
:^ : 가운데 정렬
* 소수점 표현
>>> "%0.4f" % 3.42134234
'3.4213'
>>> "%10.4f" % 3.42134234
' 3.4213'
5. format 함수를 사용한 포매팅
* 숫자
>>> "I eat {0} apples".format(3)
'I eat 3 apples'
>>> number = 3
>>> "I eat {0} apples".format(number)
'I eat 3 apples'
* 문자
>>> "I eat {0} apples".format("five")
'I eat five apples'
>>> number = 10
>>> day = "three"
>>> "I ate {0} apples. so I was sick for {1} days.".format(number, day)
'I ate 10 apples. so I was sick for three days.'
>>> "I ate {number} apples. so I was sick for {day} days.".format(number=10, day=3)
'I ate 10 apples. so I was sick for 3 days.'
>>> "I ate {0} apples. so I was sick for {day} days.".format(10, day=3)
'I ate 10 apples. so I was sick for 3 days.'
* 공백 채우기 & 소수점 표현하기
>>> "{0:=^10}".format("hi")
'====hi===='
>>> "{0:!<10}".format("hi")
'hi!!!!!!!!'
>>> y = 3.42134234
>>> "{0:0.4f}".format(y)
'3.4213'
>>> "{0:10.4f}".format(y)
' 3.4213'
* f 문자열 포매팅
파이썬 3.6버전부터 사용할 수 있음
>>> name = '홍길동'
>>> age = 30
>>> f'나의 이름은 {name}입니다. 나이는 {age}입니다.'
'나의 이름은 홍길동입니다. 나이는 30입니다.'
>>> age = 30
>>> f'나는 내년이면 {age+1}살이 된다.'
'나는 내년이면 31살이 된다.'
>>> d = {'name':'홍길동', 'age':30}
>>> f'나의 이름은 {d["name"]}입니다. 나이는 {d["age"]}입니다.'
'나의 이름은 홍길동입니다. 나이는 30입니다.'
6. 문자열 관련 함수
* 문자 개수 세기(count)
>>> a = "hobby"
>>> a.count('b')
2
* 문자 위치 알려주기(find/index)
>>> a = "Python is the best choice"
>>> a.find('b')
14
>>> a.find('k')
-1
>>> a = "Life is too short"
>>> a.index('t')
8
>>> a.index('k')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
문자열 중 문자 b가 처음 나온 위치를 반환한다. 만약 찾는 문자나 문자열이 존재하지 않는다면 -1을 반환한다.
※ 파이썬은 숫자를 0부터 세기 때문에 b의 위치는 15가 아닌 14가 된다.
index는 find 함수와 달리 문자열 안에 존재하지 않는 문자를 찾으면 오류가 발생함
* 문자열 삽입(join)
>>> ",".join('abcd')
'a,b,c,d'
* 대소문자 변환(upper/lower)
>>> a = "hi"
>>> a.upper()
'HI'
>>> a = "HI"
>>> a.lower()
'hi'
* 공백 지우기(lstrip/rstrip/strip)
>>> a = " hi "
>>> a.lstrip()
'hi '
>>> a= " hi "
>>> a.rstrip()
' hi'
>>> a = " hi "
>>> a.strip()
'hi'
* 문자열 바꾸기(replace)
>>> a = "Life is too short"
>>> a.replace("Life", "Your leg")
'Your leg is too short'
* 문자열 나누기(split)
>>> a = "Life is too short"
>>> a.split()
['Life', 'is', 'too', 'short']
>>> b = "a:b:c:d"
>>> b.split(':')
['a', 'b', 'c', 'd']
'programming > Python' 카테고리의 다른 글
Python 기초, 제어문1(if문) (0) | 2020.09.15 |
---|---|
Python 기초, 자료형 연습문제 (0) | 2020.09.14 |
Python 기초, 자료형3(집합 자료형, 불 자료형, 변수) (0) | 2020.08.26 |
Python 기초, 자료형3(튜플 자료형, 딕셔너리 자료형) (0) | 2020.08.26 |
Python 기초, 자료형2(리스트 자료형) (0) | 2020.08.26 |
댓글