'어떤 프로그래밍 언어든 그 언어의 자료형을 알고 이해할 수 있다면 이미 그 언어의 절반은 터득한것이나 마찬가지이다!'
1. 숫자형
- 정수 : integer
- 실수 : float
- 8진수 : octal , 0o34, 0o25
- 16진수 : hexadecimal , 0x2A , 0xFF
사칙연산 가능
>>> a = 3
>>> b = 4
>>> a + b
7
>>> a - b
-1
>>> a * b
12
>>> a / b
0.75
x의 제곱을 나타내는 ** 연산자
>>> a=3
>>> b=4
>>> a ** b
81
나눗셈 후 나머지 리턴하는 % 연산자
>>> 7 % 3
1
>>> 3 % 7
3
나눗셈 후 몫을 리턴하는 // 연산자
>>> 7 / 4
1.75
2. 문자열 자료형
: 문자열 (string)이란 문자, 단어 등으로 구성된 문자들의 집합
이스케이프 코드
\n : 문자열 안에서 줄 바꿈 시 사용
\t : 문자열 사이에 탭 간격을 줄 때 사용
\\ : \ 를 그래도 사용할 때 사용
\' : 작은따옴표를 그냥 사용할 때 사용
\" : 큰 따옴표를 그냥 표현할 때 사용
\r : 캐리지 리턴 (줄 바꿈 문자, 커서를 현재 줄의 가장 앞으로 이동)
\f : 폼 피드(줄 바꿈 문자, 커서를 현재 줄의 다음 줄로 이동)
\a : 벨 소리 (출력 할 때 PC 스피커에서 소리가 난다.)
\b. : 빽 스페이스 소리
\000 : 널 문자
- 문자열 길이 구하기
>>> a = "Life is too short"
>>> len(a)
17
- 문자열 인덱싱
>>> a = "Life is too short, you need Python"
>>> a[3]
'e'
>>> a = "Life is too short, You need Python"
>>> b = a[0] + a[1] + a[2] + a[3]
>>> b
Life
- 문자열 슬라이싱
>>> a = "Life is too short, You need Python"
>>> a[0:2]
'Li'
>>> a[5:7]
'is'
>>> a[12:17]
'short'
>>> a[19:]
'You need Python'
주의 : 문자열은 immutable 한 자료형이기때문에 수정이 불가하다.
- 문자열 포맷팅(string formatting)
e.g. 예를 들어
"현재 온도는 18도입니다."
시간이 지나서 20도가 되면,
"현재 온도는 20도입니다."
를 출력해야 할때, 문자열 안의 특정한 값을 바꿔야 하는 경우 문자열 포맷팅을 사용하여 변경이 가능하다.
1) 숫자 바로 대입
>>> "I eat %d apples." % 3'
'I eat 3 apples'
문자열 안의 숫자를 넣고 싶은 자리에 %d 문자를 넣어주고 삽입할 숫자 3은 뒤에 있는 %문자 다음에 써 넣는다.
2) 문자열 바로 대입
>>> "I eat %s apples." % "five"
'I eat five apples.'
3) 숫자 값을 나타내는 변수로 대입
>>> number = 3
>>> "I eat %d apples." % number
'I eat 3 apples.'
4) 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.'
* formattig 연산자와 %d 와 % 를 함께 쓸 때는 %% 를 쓴다.
- 포맷 코드와 숫자 함께 사용하기
1. 정렬과 공백
>>> "%10s" % "hi"
' hi'
%10s는 전체길이가 10개인 문자열 공간에서 대입되는 값을 오른쪽으로 정렬하고 그 앞의 나머지는 공백으로 남겨두라는 의미.
>>> "%-10sjane." % 'hi'
'hi jane.'
2. 소수점 표현
>>> "%0.4f" % 3.42134234
'3.4113'
"%10.4f"% 3.42134234
' 3.4213'
소수점 네 번째 자리까지만 표시하고 전체 길이가 10개인 문자열 공간에서 오른쪽으로 정렬하는 예시
- 문자열 바로 대입하는 경우
>>> "I eat {0} apples.".format("five")
'I eat five apples'
- 숫자 값을 가진 변수로 대입하는 경우
>>> number = 3
>>> "I eat {0} apples".format(number)
'I eat 3 apples'
- 2개 이상의 값 넣기
>>> 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.'
2 개 이상의 값을 넣는 경우 {0},{1}과 같은 인덱스 항목이 format 함수의 입력값으로 순서에 맞게 바뀐다.
- 이름으로 넣기
>>> "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 '
:<10 치환되는 문자열을 왼쪽으로 정렬하고 10개의 자릿수로 채운다.
- 오른쪽 정렬
>>>"{0:>10}".format("hi")
' hi'
:> 는 오른쪽 졍렬을 의미
- 가운데 정렬
>>> "{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'
-{또는} 문자 표현하기
>>> "{{ and }}".format()
'{ and }'
3. f 문자열 포맷팅
문자열 앞에 f 접두사를 붙이면 f 문자열 포매팅 기능을 사용할 수 있음.
>>> name = '홍길동'
>>> age = 30
>>> f'나의 이름은 {name} 입니다. 나이는 {age}입니다.'
'나의 이름은 홍길동입니다. 나이는 30입니다.'
- 표현식 사용 가능
>>> age = 30
>>> f'나는 내년이면 {age + 1}살이 된다.'
'나는 내년이면 31살이 된다.'
- 딕셔너리 표현식 사용 case
>>> d = {'name':'홍길동', 'age':30}
>>> f'나의 이름은 {d["name"]}입니다. 나이는{d["age"]}입니다.'
'나의 이름은 홍길동입니다. 나이는 30입니다.'
4. 문자열 내장 함수
1) count
>>> a = "hobby"
>>> a.count('b')
2
2-1) 위치 알려주기 - find
찾는 문자가 처음 나온 위치를 반환. 만약 찾는 문자나 문자열이 존재하지 않으면 -1 반환
>>> a = "Python is the best choice"
>>> a.find('b')
14
>>> a.find('k')
-1
(2-2) 위치 알려주기 - 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
3) 문자열 삽입 - join
각각의 문자 사이에 ',' 삽입했다.
join 함수의 경우, 문자열 뿐만 아니라 리스트 또는 튜플도 입력으로 사용할 수 있다.
>>> ",".join(['a','b','c','d'])
'a,b,c,d'
4) 소문자를 대문자로 바꾸기 - upper
>>> a = 'hi'
>>> a.upper()
'HI'
5) 대문자를 소문자로 바꾸기 - lower
>>> a = "HI"
>>> a.lower()
'hi'
6) 왼쪽 공백 지우기 - rstrip
>>> a = " hi "
>>> a.rstrip()
' hi'
7) 오른쪽 공백 지우기 - lstrip
>>> a = " hi "
>>> a.lstrip()
'hi '
8) 공백 지우기 - strip
>>> a = " hi "
>>> a.strip()
'hi'
strip 함수는 문자열 양쪽에 있는 한 칸 이상의 연속된 공백을 모두 지운다.
9) 문자열 바꾸기 - replace
>>> a = "Life is too short"
>>> a.replace("Life", "Your leg")
'Your leg is too short'
10) 문자열 나누기 - split
>>> a = "Life is too short"
>>> a.split()
['Life','is','too','short']
>>> b = "a:b:c:d"
>>> b.split(':')
['a','b','c','d']
괄호 안에 특정 값이 있는 경우 괄호 안의 값을 구분자로 하여 문자열을 나누어 준다.
*점프투파이썬을 스터디하며 작성한 내용입니다.*
'python' 카테고리의 다른 글
[python] if __name__ == "__main__" (0) | 2023.12.18 |
---|---|
문자열 정리 (0) | 2023.10.11 |
conda 파이썬 가상환경 생성 (0) | 2023.04.18 |
Python(pandas) parsing date (0) | 2023.01.26 |
conda 란 무엇인가 ? (conda activate?) (0) | 2023.01.25 |