본문 바로가기
Major/Computer Science

[파이썬] 숫자형, 문자열 자료형 (점프 투 파이썬 공부 1일차)

by LeeDaSom 2025. 2. 25.

1. 파이썬(Python): 1990년 암스테르담의 귀도 반 로섬(Guido Van Rossum)이 개발한 인터프리터 언어. 

 

*인터프리터 언어란 한 줄 씩 소스 코드를 해석한 뒤 바로 실행해 결과를 확인할 수 있는 언어이다. 

 

2. 파이썬으로 할 수 있는 일

(1) 시스템 유틸리티 제작

(2) GUI 프로그래밍

(3) C/C++와의 결합

(4) 웹 프로그래밍

(5) 수치 연산 프로그래밍  Numpy 수치 연산 모듈

(6) 데이터베이스 프로그래밍

 데이터베이스에 접근하기 위한 도구들: 사이베이스(Sybase), 인포믹스(Infomix), 오라클(Oracle), 마이에스큐엘(MySQL), 포스트그레스큐엘(PostgreSQL)

 *피클(pickle): 파이썬에서 사용하는 자료를 변형 없이 그대로 파일에 저장하고 불러오는 일을 하는 모듈

(7) 데이터 분석, 사물 인터넷

 

3. 숫자형(Number)

 (1) 정수형(Integer)

a=1234
a=-233
a=0

(2) 실수형(Floating-point)

a=1.4
a=-3.14

 

*컴퓨터식 지수 표현 방식

a=4.56E10
a=4.24e-10

 

(3) 8진수(Octal)와 16진수(Hexadecimal)

 8진수를 만들기 위해서는 숫자가 0o 또는 0O로 시작하면 된다. 

a=0o188

 

16진수를 만들기 위해서는0x로 시작하면 된다. 

a=0x8ff
b=0xABC

 

 

4. 숫자형을 활용하기 위한 연산자

(1) 사칙연산

>>>a=1
>>>b=2
>>>a+b
3
>>>a*b
2
>>>a/b
0.5

 

(2) x의 y제곱을 나타내는 ** 연산자

>>>a=3
>>>b=4
>>>a**b
81

 

(3) 나눗셈 후 나머지를 반환하는 % 연산자

>>>7%3
1
>>>3%7
3

 

(4) 나눗셈 후 몫을 반환하는 // 연산자

>>>7//4
1

 

 

5. 문자열 자료형

-문자열(String)이란 문자, 단어 등으로 구성된 문자들의 집합을 의미함.

 

(1) 파이썬에서 문자열을 만드는 방법

 ① 큰따옴표(")로 양쪽 둘러싸기

"Hello World"

 

② 작은따옴표(')로 양쪽 둘러싸기

'Python is fun'

 

③ 큰따옴표 3개를 연속(""")으로 써서 양쪽 둘러싸기

"""Life is too short, You need python"""

 

④ 작은따옴표 3개를 연속(''')으로 써서 양쪽 둘러싸기

'''Life is too short, You need python'''

 

 

(2) 문자열 안에 작은따옴표(') 포함시키기

Problem

>>> color='Dasom's favorite color is navy'
File ",stdin>", line 1
	color='Dasom's favorite color is navy'
                    ^
SyntaxError: invalid syntax

 

Solution

>>>color="Dasom's favorite color is navy"
>>>color
"Dasom's favorite color is navy"

 

(3) 문자열에 큰따옴표(") 포함시키기

>>> say='"python is very easy." he says.'
>>> say
"python is very easy." he says.

 

(4) 백슬래시(\)를 사용해서 작은따옴표(')와 큰따옴표(")를 문자열에 포함시키기

>>> color='Dasom\'s favorite color is navy'
say= "\"Python is very easy.\" he says."

 

 

6. 여러 줄인 문자열을 변수에 대입하고 싶을 때

 

Life is too short
You need python

 

(1) 줄을 바꾸는 이스케이프 코드 '\n' 삽입하기

multiline = "Life is too short\nYou need python"

-가독성이 떨어짐.

-줄이 길어짐.

 

(2) 연속된 작은따옴표 3개(''') 또는 큰따옴표 3개(""") 사용하기

>>>multiline='''
Life is too short
You need python
'''
>>> multiline = """
Life is too short
You need python
"""

 

*이스케이프 코드: 프로그래밍할 때 사용할 수 있도록 미리 정의해 둔 문자조합. 

코드 설명
\n 문자열 안에서 줄을 바꿀 때 사용
\t 문자열 사이에 탭 간격을 줄 때 사용
\\ 문자 \를 그대로 표현할 때 사용
\' 작은 따옴표(')를 그대로 표현할 때 사용
\" 큰따옴표(")를 그대로 표현할 때 사용
\r 캐리지 리턴(줄 바꿈 문자, 현재 커서를 가장 앞으로 이동)
\f 폼 피드(줄 바꿈 문자, 현재 커서를 다음 줄로 이동)
\a 벨 소리(출력할 때 PC 스피커에서 '삑' 소리가 난다)
\b 백스페이스
\000 널 문자

 

 

7. 문자열 연산하기

(1) 문자열 더해서 연결하기(Concatenation)

>>> head = "Python"
>>> tail = " is fun!"
>>> head + tail
'Python is fun!'

 

(2) 문자열 곱하기

>>> a = "python"
>>> a * 2
'pythonpython'

 

(3) 문자열 곱하기 응용

# multistring.py

print("=" * 50)
print("My Program")
print("=" * 50)

 

(4) 문자열 길이 구하기

>>> a="Life is too short"
>>> len(a)
17

 

 

8. 문자열 인덱싱과 슬라이싱

-인덱싱(Indexing)이란 무엇인가를 '가리킨다'는 의미, 슬라이싱(Slicing)은 무엇인가를 '잘라낸다'는 의미

(1) 문자열 인덱싱

>>> a = "Life is too short, You need Python"
>>> a[3]
'e'

 

"파이썬은 0부터 숫자를 센다."

 

(2) 문자열 인덱싱 활용하기

>>> a = "Life is too short, You need Python"
>>> a[0]
'L'
>>> a[12]
's'
>>> a[-1]
'n'

 

(3) 문자열 슬라이싱(Slicing)

>>> 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:4]
'Life'

*슬라이싱 기법으로 a[시작 번호: 끝 번호]를 지정할 때 끝 번호에 해당하는 것은 포함하지 않는다.

 

 

a[시작 번호: 끝 번호]에서 끝 번호 부분을 생략하면 시작 번호부터 그 문자열의 끝까지 뽑아낸다. 

>>>a[19:]
'You need Python'

 

 

a[시작 번호: 끝 번호]에서 시작 번호를 생략하면 문자열의 처음부터 끝 번호까지 뽑아낸다. 

>>> a[:17]
'Life is too short'

 

a[시작 번호: 끝 번호]에서 시작 번호와 끝 번호를 생략하면 문자열의 처음부터 끝까지를 뽑아낸다. 

>>> a[:]
'Life is too short, You need Python'

 

슬라이싱에서도 인덱싱과 마찬가지로 마이너스 기호를 사용할 수 있다. 

>>> a[19:-7]
'You need'

 

*Pithon이라는 문자열을 Python으로 바꾸기

>>> a = "Pithon"
>>> a[1]
'i'
a[1] = 'y'

=> immutable한 자료형: 문자열의 요솟값은 바꿀 수 있는 값이 아니기 때문에 오류 발생!

 

Solution

>>> a = "Pithon"
>>> a[:1]
'P'
>>> a[2:]
'thon'
>>> a[:1] + 'y' + a[2:]
'Python'

 

 

9. 문자열 포매팅(Formatting): 문자열 안에 어떤 값을 삽입하는 방법

 

(1) 숫자 바로 대입

>>> "I eat %d apples." %3
'I eat 3 apples.'

-%d: 문자열 포맷 코드

 

(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.'

 

10. 문자열 포맷 코드

코드 설명
%s 문자열(String)
%c 문자 1개(Character)
%d 정수(Integer)
%f 부동 소수(Floating-point)
%o 8진수
%x 16진수
%% Literal % (문자 '%' 자체)

 

*포매팅 연산자 %d와 %를 같이 쓸 때는 %%를 쓴다. 

>>> "Error is %d%." % 98
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 ValueError: incomplete format

=> 문자열 안에 %d와 같은 포매팅 연산자가 없으면 %는 홀로 쓰여도 상관 없음!

 

Solution

>>> "Error is %d%%." % 98
'Error is 98%'

 

 

11. 포맷 코드와 숫자 함께 사용하기

(1) 정렬과 공백

>>> "%10s" % "hi"
'        hi'
>>> "%-10sjane" % 'hi'
'hi        jane'

 

(2) 소수점 표현하기

>>> "%0.4f" % 3.42134234
'3.4213'
>>> "%10.4f" % 3.42134234
'    3.4213'

 

(3) format 함수를 사용한 포매팅

>>> "I eat {0} apples".format(3)
'I eat 3 apples'
>>> "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.'

 

이름으로 넣기

>>> "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'

 

가운데 정렬

>>> "{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 }'

 

12. f 문자열 포매팅

 

>>> age = 30
>>> f'나는 내년이면 {age+1}살이 된다.'
'나는 내년이면 31살이 된다.'

 

딕셔너리

>>> d = {'name':'홍길동', 'age':30}
>>> f'나의 이름은 {d["name"]}입니다. 나이는 {d["age"]}입니다.'
'나의 이름은 홍길동입니다. 나이는 30입니다.'

 

정렬

>>>f'{"hi":<10}'
'hi        '
>>>f'{"hi":>10}'
'        hi'
>>>f'{"hi":^10}'
'    hi    '

 

공백 채우기

>>> f'{"hi":=^10}'
'====hi===='
>>> f'{"hi":!<10}'
'hi!!!!!!!!'

 

소수점 표현

>>> y = 3.42134234
>>> f'{y:0.4f}'
'3.4213'
>>> f'{y:1-.4f}'
'    3.4213'

 

{} 문자 표시

>>> f'{{ and }}'
'{ and }'

 

 

13. 문자열 관련 함수

(1) 문자 개수 세기(count)

>>>a = "happy"
>>>a.count('p')
2

 

(2) 위치 알려주기 1(find)

>>> a = "Python is the best choice"
>>> a.find('b')
14
>>> a.find('k')
-1

 

(3) 위치 알려주기 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

 

(4) 문자열 삽입(join)

>>> ",".join('abcd')
'a,b,c,d'
>>> ",".join(['a', 'b', 'c', 'd'])
'a,b,c,d'

 

(5) 소문자를 대문자로 바꾸기(upper)

>>> a = "hi"
>>> a.upper()
'HI'

 

(6) 대문자를 소문자로 바꾸기(lower)

>>> a = "HI"
>>> a.lower()
'hi'

 

(7) 왼쪽 공백 지우기(lstrip)

>>> a = " hi "
>>> a.lstrip()
'hi '

 

(8) 오른쪽 공백 지우기(rstrip)

>>> a= " hi "
>>> a.rstrip()
' hi'

 

(9) 양쪽 공백 지우기(strip)

>>> a = " hi "
>>> a.strip()
'hi'

 

(10) 문자열 바꾸기(replace)

>>> a = "Life is too short"
>>> a.replace("Life", "Your leg")
'Your leg is too short'

 

(11) 문자열 나누기(split)

>>> a = "Life is too short"
>>> a.split()
['Life', 'is', 'too', 'short']
>>> b = "a:b:c:d"
>>> b.split(':')
['a', 'b', 'c', 'd']