-
[Python 기초 #1] 기본 문법1 - 문자열, count, find, index,Programming 기초/Python 2023. 4. 12. 19:55
* 파이썬이란?
- 1990년 암스테르담의 귀도 반 로섬(Guido Van Roasadd)이 개발한 인터프리터 언어. 본인이 좋아하는 코미디 쇼인 '몬티 파이썬의 날아디는 서커스(Monty Python's Flying Circus)'에서 따왔다고 함.
- 사전적 의미는 고대 신화에 나오는 파르나소스 산의 동굴에 살던 큰 뱀을 뜻함. 알로 신이 델파이에서 파이썬을 퇴치했다는 이야기가 전해짐. 대부분의 파이썬 책 표지와 아이콘이 뱀 모양으로 그려진 이유.
- 구글의 절반이상, 인스타그램, 파일 동기화 서비스 드롭박스(dropbox)등이 파이썬으로 제작.
* 파이썬의 문법
1. //는 몫을 구한다. /는 나누기를 실행한다.
2. 제곱은 **
a = 3 b = 4 print(a//b) print(a/b) print(a**b) ------------------------------------- >> 0 >> 0.75 >> 81 -------------------------------------
2. %는 나머지를 구한다.
a = 30 b = 4 print(a % b) -------------------------------- >> 2
3. 문자열 자료형
- 큰 따옴표와 작은 따옴표 세 개씩 연속으로 쓰는 것도 문자열로 인식.
a = "Hello world1" b = 'Hello world2' c = """Hello world3""" d = '''Hello world4''' print(a) print(b) print(c) print(d)
- 문자열에 작은따옴표 혹은 큰 따옴표 포함시키기
a = "Python's favorite food is perl" b = """Python's favorite food is perl""" c = '''Python's favorite food is perl''' d = '"Python is very easy."he says.' e = '''"Python's favorite food is perl"he says.''' f = 'Python\'s favorite food is perl' # \는 이스케이프 코드 print(a) print(b) print(c) print(d) print(e) print(f)
- 여러 줄인 문자열을 변수에 대입하고 싶을 때 (파이썬은 기본적으로 한 줄씩 실행하기 때문에 c언어처럼 엔터로 줄을 늘려 쓸 수 없다.)
multiline = "Life is too short\nYou need python" multiline2 = """Life is too short You need python""" multiline3 = '''Life is too short You need python''' print(multiline) print(multiline2) print(multiline3) -------------------------------------- Life is too short You need python Life is too short You need python Life is too short You need python ---------------------------------------
- 문자열 연산하기 (파이썬의 장점)
head = "Python" tail = " is fun!" print(head + tail) print(head*2) ------------------------------------ Python is fun! PythonPython ------------------------------------
- 문자열 길이 구하기
head = "Life" tail = " is too short" print(len(head + tail)) #len()함수는 print 함수처럼 파이썬의 기본 내장 함수. 띄어쓰기도 센다.
- 문자열 인덱싱과 슬라이싱
# 문자열 인덱싱 head = "Life" tail = " is too short" print((head + tail)[2]) # 파이썬은 0부터 숫자를 센다. print((head + tail)[-1]) # -를 붙이면 거꾸로 위치를 센다. print((head + tail)[-0]) # 0과 -0은 똑같다. ------------------------------------------------------------------- f t L
슬라이싱은 a[이상 : 미만 : 간격]의 형식이다.
head = "Life" tail = " is too short" print((head + tail)[0:4]) print((head + tail)[:8:2]) # 비어두면 처음부터 시작을 의미 print((head + tail)[::3]) print((head + tail)[::-1]) # 뒤에서부터 역순으로 출력 print((head + tail)[:5:-1]) print((head + tail)[5::-1]) print((head + tail)[0::-1]) ------------------------------------------------------------------ Life Lf s Lesosr trohs oot si efiL trohs oot s i efiL L
*문자열 자료형은 그 요솟값을 변경할 수 없다. 그래서 immutable한 자료형이라고도 부른다.
- 문자열 포매팅(formatting)
a = "I eat %d apples." % 3 b = "I eat %s apples." % "five" # 문자열 대입에는 %s를 써야한다. number = 2 c = "I eat %d apples." % number d = "I eat %d apples and %s oranges" % (number, "five") #두 개 이상의 값을 넣을 때 괄호와 콤마로 구분 print(a) print(b) print(c) print(d) ----------------------------------------------------------------------- I eat 3 apples. I eat five apples. I eat 2 apples. I eat 2 apples and five oranges
- 문자열 포맷 코드(c언어와 같다)
코드 설명 %s 문자열(String) %c 문자 1개(Character) %d 정수(Integer) %f 부동 소수(Floating-point) %o 8진수 %x 16진수 %% Literal%(문자 '%' 자체) * %s 포맷 코드는 어떤 형태의 값이든 변환해 넣을 수 있다.
a = "I eat %d apples" % 3 b = "rate is %s" % 3.234 print(a) print(b) ---------------------------------- I eat 3 apples rate is 3.234
- 정렬과 공백, 소수점 표현
a = "%10s" % "hi" # 전체 길이가 10개인 문자열 공간에서 대입되는 값을 오른쪽으로 정렬하고 앞의 나머지는 공백으로 남겨 두라. b = "%-10s TOM" % "hi" # 왼쪽 정렬. c = "%0.4f" % 3.141592 # 소수점 네 번째 자리까지만 표현. d = "%10.4f" % 3.141592 # 오른쪽 정렬과 소수점 네번째 자리까지만 표시 print(a) print(b) print(c) print(d) ------------------------------------------------------------------ hi hi TOM 3.1416 3.1416
- format 함수를 사용한 포매팅
- 2개 이상의 값을 넣을 경우 문자열의 {0}, {1}과 같은 인덱스 항목이 format 함수의 입력값으로 순서에 맞게 바뀐다.
- 이름으로도 넣을 수 있다.
number = 3 a = "I ate {0} apples. so I was sick for {1} days.".format(number, "three") b = "I ate {0} apples. so I was sick for {name}days.".format(12, name=3) # 키워드 인자는 마지막에 넣어야 함. c = "I ate {name} apples. so I was sick for {0}days.".format(2, name=4) d = "{0:>10}".format("hi") # 오른쪽 정렬 e = "{0:^10}".format("hi") # 가운데 정렬 f = "{0:=<10}".format("hi") # 왼쪽 정렬 및 공백 채우기 g = "{0:0.4f}".format(3.4123456) # 소수점 4자리까지 표기 h = "{0:10.4f}".format(3.4123456) # 자릿수를 10으로 맞춤 print(a) print(b) print(c) print(d) print(e) print(f) print(g) print(h) ------------------------------------------------------------------------- I ate 3 apples. so I was sick for three days. I ate 12 apples. so I was sick for 3days. I ate 4 apples. so I was sick for 2days. hi hi hi======== 3.4123 3.4123
- f 문자열 포매팅(파이썬 3.6부터 지원)
age = 30 a = f'나는 내년이면 {age+1}살이 된다.' print(a) --------------------------------------- 나는 내년이면 31살이 된다.
* 자주 쓰이는 문자열 함수
- count 함수 : 문자 개수 세기
>>> a = "hobby" >>> a.count('b') 2
- find 함수 : 찾는 문자 중 처음으로 나온 위치를 반환한다. 문자나 문자열이 존재하지 않는다면 -1을 반환.
>>> a = "Python is the best choice" >>> a.find('b') 14 >>> a.find('k') -1
- index 함수 : 위치 반환. 못 찾을 시 오류 발생.
>>> 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
- join 함수 : 문자열 삽입. abcd 문자열 각각의 문자 사이에 ','를 삽입.
>>> ",".join('abcd') 'a,b,c,d' >>> ",".join(['a', 'b', 'c', 'd']) 'a,b,c,d'
- upper 함수 : 소문자를 대문자로 바꾸기
>>> a= "hi" >>> a.upper() 'HI'
- lower 함수 : 대문자를 소문자로 바꾸어 준다.
>>> a= "HI" >>> a.lower() 'hi'
- split 함수 : 괄호 안의 값을 구분자로 해서 문자열을 나누어 준다. 괄호 안 공백시 스페이스, 탭, 엔터 기준으로 나눔.
>>> a= "Life is too short" >>> a.split() ['Life', 'is', 'too', 'short'] >>> b = "a:b:c:d" >>> b.split(':') ['a', 'b', 'c', 'd']
- replace 함수 : replace(바뀌게 될 문자열, 바꿀 문자열) 형식으로 특정한 값을 다른 값으로 치환.
>>> a= "Life is too short" >>> a.replace("Life", "Your leg") 'Your leg is too short'
- lstrip 함수 : 왼쪽 공백 지우기
>>> a = " hi " >>> a.lstrip() 'hi '
- rstrip 함수 : 오른쪽 공백 지우기
>>> a = " hi " >>> a.rstrip() ' hi'
- strip 함수 : 양쪽 공백 지우기
>>> a = " hi " >>> a.strip() 'hi'
'Programming 기초 > Python' 카테고리의 다른 글
[Python 기초 #6] 함수, 사용자 입력과 출력, 파일 읽고 쓰기 (0) 2023.04.19 [Python 기초 #5] 제어문 if, while, for (0) 2023.04.18 [Python 기초 #4] 집합(set), 불(bool), 변수(variable) (0) 2023.04.15 [Python 기초 #3] 튜플(tuple), 딕셔너리(dictionary) (0) 2023.04.14 [Python 기초 #2] 리스트 자료형 (0) 2023.04.14