python

자료형(숫자형, 문자형)

임이레 2023. 11. 15. 10:10

'어떤 프로그래밍 언어든 그 언어의 자료형을 알고 이해할 수 있다면 이미 그 언어의 절반은 터득한것이나 마찬가지이다!'

 

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