파이썬의 변수를 다룸에 있어서 변수값의 형태는 매우 중요합니다.
이런 형태를 잘 이해하고 다루는 것에 따라서 코딩이 정말 편리해지기 때문입니다.
변수값의 형태는 크게
1. 숫자형
2. 문자열
3. 리스트, 튜플, 딕셔너리
4. bolean(불 형태)
5. 집합(set)
이렇게 있습니다. 오늘은 숫자형과 문자열에 대해서 알아보도록 하겠습니다.
1. 숫자형(integer, double, float ...)
숫자형은 정수, 실수, 8진수, 16진수등 숫자를 나타낼때 활용하는 자료형입니다.
각 숫자형을 표현하는 방법
# 정수형
a = 1
# 실수형
b = 3.14
c = -3.14
# 8진수: 숫자가 0o 또는 0O 으로 시작
d = 0o156
# 16진수: 숫자가 0x로 시작
e = 0x8AA
f = 0xABB
파이썬에서 숫자를 정수, 실수, 8진수, 16진수를 표현할 수 있습니다.
각각의 숫자에 대한 설명은 따로 적지는 않겠습니다.
숫자형의 사칙연산
# 사칙연산
print("더하기", 1 + 2) -> 3을 반환
print("빼기", 3 - 2) -> 1을 반환
print("곱하기", 4 * 2) -> 8을 반환
print("나누기", 6 / 3) -> 2를 반환
print("제곱", 2 ** 3) -> 8을 반환
print("나머지 반환" , 7 % 7) -> 나머지인 0을 반환
print("몫 반환", 7 // 4) -> 몫인 1를 반환
각각의 사칙연산은 위의 기호대로 표현하게 됩니다.
2. 문자열(string)
문자열은 그야말로 문자열로써 문자들이 모여 만들어진 문장을 의미합니다.
각 문자열을 표현하는 방법
#한줄짜리 문자열을 선언하는 방법
a = "일이삼사오"
b = '12345'
#여러줄의 문자열을 한번에 선언하는 방법
c = """
일이삼사오,
12345
"""
d = '''
일이삼사오,
12345
'''
한줄짜리 문자열에는 "" ,'' 이렇게 한쌍의 quote를 해주면 되고 여러줄을 선언할때는 3개씩 붙여서 선언해주면 됩니다!
문자열 인덱스
문자열 인덱스
문자열도 문자 내에서 순서가 있습니다. 맨앞이 0으로 시작해서 순차적으로 1씩 상승하게 되는 구조를 가지는데요. 이러한 숫자들을 인덱스라고 합니다! (이는 나중에 튜플, 리스트에도 똑같이 적용됩니다.)
# python은 0부터 셈
# 문자열 인덱스
print(a[2])
# 문자열 슬라이싱
print(b[1:4])
만약에 "일이삼사오"라는 문자열에서 내가 삼이라는 문자만 따로 필요한 상황이라고 생각해봅시다. 여기서 따로 선언하는 것보다 있는 문자열에서 가져오는게 더 좋겠죠? 이럴때 활용하는게 바로 대괄호 -> [] 입니다.
문자열[원하는 위치의 인덱스 숫자]
이런식으로 하게되면 원하는 문자를 가져오게 될 수 있게 됩니다. 여기서는 a라는 문자열에 "일이삼사오"가 있으니 삼자리인 2인덱스를 불러오면 되겠군요! -> a[2]
그렇다면 해당 문자열에서 여러개의 연속된 문자를 가져와야한다면 어떻게 할까요?
문자열[시작 인덱스 : (끝 인덱스 + 1)]
이런식으로 하게되면 문자열에서 원하는 연속된 문자들을 가져오게 될 수 있게 됩니다. 만약 b라는 변수에 "12345" 라는 문자열이 선언되어있고 거기서 "234" 만 가져와야한다면? b[1:4] -> 4가 있는 위치의 인덱스는 3이지만 4까지 불러와줘야 3까지 가져오게 됩니다. -> 파이썬은 다른곳에서도 마지막 숫자에서 -1을 해서 처리하기 때문에 알아두시면 좋습니다.
파이썬 문자열 슬라이싱 예시
문자열 포멧팅
문자열 포멧팅은 다른 문자열에 변하는 문자 변수를 삽입할때 활용합니다.
ex) ~의 생일을 축하합니다.
위의 메세지를 보내는 서비스가 있다고 했을 때 ~의가 계속 바뀌겠죠? 이를 포멧팅을 활용하여 변수를 활용하는 것입니다.
포멧팅하는 방식
#문자열 포멧팅
print("문자열에 정수삽입: %d" % 3) # 정수
print("문자열에 문자열삽입: %s" % "문자열") #문자열
print("문자열에 실수삽입: %f" % 3.14) #실수
#문자열에 두개의 이상 변수 삽입하기
integer = 5
string = "문자열"
print("첫번째: %d, 두번째: %s" % (integer, string))
#중괄호로 문자열 포메팅하기
print("중괄호버전 -> 첫번째: {0}, 두번째: {1}".format(string,integer))
첫번째 방법은 %를 활용해서 타겟되는 문자열안에 %d(정수), %s(문자), %f(실수)등을 넣고 밖에 변수값을 꺼내는 방법이 있습니다. 이방법에서는 각각 변수의 타입에 맞게 넣어줘야합니다.
두번째 방법은 {}(중괄호)와 format함수를 이용하는 방법인데요. 이방법에서는 0,1 숫자 순서랑 format함수에 들어간 변수의 순서에 따라서 작성 되게 됩니다. {0} = format안에 첫번째인 string과 매칭, {1} = format안에 두번째인 integer와 매칭 -> 해당방법도 숫자는 0부터 시작합니다.
실행결과
문자열 포멧팅 예시
문자열 관련 함수
파이썬에는 문자열에만 활용할 수 있는 함수들이 존재합니다.
#문자열 관련 함수
#소문자를 대문자로
a = "abc"
print(a.upper())
#대문자를 소문자로
b = "ABC"
print(b.lower())
#문자치환
c = "CBA"
print(c.replace("A","B"))
#공백지우기 lstrip, rstrip, strip
aa = " abc "
print("&",aa.lstrip(),"&")
print("&",aa.rstrip(),"&")
print("&",aa.strip(),"&")
#문자열 쪼개기
d ="d,a,c,b"
print(d.split(","))
#문자열 내 특정 문자 갯수를 알려주는 함수
e ="aucq"
print(e.count("a"))
#문자열 위치(인덱스) 반환함수: find, index
# find는 해당값이 없을때 -1 반환
# index는 해당값이 없을때 에러 반환
q ="abcd"
print(q.find("a"))
print(q.index("b"))
함수이름 | 문법 | 반환 |
upper | 문자열.upper() | 대문자로 모두 변환 |
lower | 문자열.lower() | 소문자로 모두 변환 |
lstrip | 문자열.lstrip() | 왼쪽 공백 제거 |
rstrip | 문자열.rstrip() | 오른쪽 공백 제거 |
strip | 문자열.strip() | 양쪽 공백 제거 |
replace | 문자열.replace("바꾸길 원하는 문자","바꾸고 싶은 문자") | 문자가 치환된 문자열 반환 |
split | 문자열.split("원하는 구분자") | 쪼개진 리스트 반환 |
count | 문자열.count("count하고싶은 문자") | 해당 문자 숫자 반환 |
find | 문자열.find("인덱스를 찾고 싶은 문자") | 그 해당 문자의 index 반환(없으면 -1) |
index | 문자열.index("인덱스를 찾고 싶은 문자") | 그 해당 문자의 index 반환(없으면 에러) |
find와 index는 비슷한 역할을 하는데 index같은경우 그 문자가 없으면 에러를 발생시키고 find는 -1를 반환합니다. 상황에 맞게 써주면 됩니다.
실행결과
위의 함수의 실행결과
오늘은 파이썬의 숫자형과 문자열의 기본형태에 대해서 알아보았습니다.
[출처] https://kbkb456.tistory.com/63?category=1021504
'Python' 카테고리의 다른 글
[배열] Python 문자열 배열 입력받기 (0) | 2022.09.17 |
---|---|
[기초] Python 조건문,반복문,할당연산자(if,elif,else,for,while,break,continue,range) (0) | 2022.09.17 |
[기초] Python 변수값의형태 - 2 (0) | 2022.09.17 |
[기초] Python 변수 선언하기 (1) | 2022.09.17 |
크롤링 실행시 에러 (0) | 2022.08.12 |