[숫자형]
숫자 형태의 자료형
- 정수형
>>> a = 123 (양의 정수)
>>> a = -123 (음의 정수)
>>> a = 0 (0)
- 실수형
소수점이 포함된 숫자를 말한다
>>> a = 1.2
>>> a = -3.45
컴퓨터식 지수 표현 방식 (e,E 어느걸 사용해도 된다)
>>> a = 4.24E10
>>> a = 4.24e-10
- 8진수와 16진수
8진수를 만들기 위해서는 숫자가 0o 또는 0O로 시작
16진수를 만들기 위해서는 0x로 시작
8진수
>>> a = 0o177
>>> print(a)
127
16진수
>>> a = 0x8ff
>>> b = 0xABC
>>> print(b)
2748
[사칙연산]
파이썬도 계산기와 마찬가지로 연산자로 사칙연산 수행
>>> a = 3
>>> b = 4
>>> a + b
7
>>> a - b
-1
>>> a * b
12
>>> a / b
0.75
- x의 y제곱을 나타내는 ** 연산자
** 연산자는 x**y 일때 x의 y제곱값을 리턴한다
>>> a = 3
>>> b = 4
>>> a ** b
81
- 나눗셈 후 나머지를 리턴하는 % 연산자
%는 나눗셈의 나머지값을 리턴하는 연산자이다
>>> 7 % 3
1
>>> 3 % 7
3
- 나눗셈 후 몫을 리턴하는 // 연산자
/ 연산자를 사용하여 나누면 결과가 그대로 나온다
>>> 7 / 4
1.75
나눗셈 후 몫을 리턴하는 // 연산자를 사용한다면?
>>> 7 // 4
1
- 복합 연산자
복합 연산자는 +, - 같은 산술 연산자와 대입 연산자(=)를 합쳐 놓은 것.
>>> a = 1
>>> a = a + 1 (# a + 1로 계산된 값을 다시 a에 대입한다.)
>>> print(a)
2
a = a + 1로 a의 값이 1 증가됨. 아래처럼 간략 사용 가능
>>> a += 1
이때 +=와 같은 연산자를 복합 연산자라 부름
1 감소시킬 땐 -= 연산자 사용
>>> a = 1
>>> a -= 1 (a = a - 1 과 같음)
>>> print(a)
0
복합연산자의 종류 : +=, -=, *=, /=, //=, %=, **=
[문자열 자료형]
문자열(string) 이란 연속된 문자의 나열을 말한다
"Life is too short, You need Python"
"a"
"123"
따옴표로 둘러싸여 있으면 모두 문자열.
- 큰 따옴표
"Hello World"
- 작은 따옴표
'Python is fun'
- 큰 따옴표 3개 연속 사용
"""Life is too short, You need python"""
- 작은 따옴표 3개 연속 사용
'''Life is too short, You need python'''
- 문자열에 작은 따옴표 포함 방법
Python's favorite food is perl
이미 작은 따옴표가 있는 경우엔 큰따옴표로 문자열을 둘러싸기. 큰 따옴표 안의 작은 따옴표는 문자열 인식 x
>>> food = "Python's favorite food is perl"
확인해보면
>>> food
"Python's favorite food is perl"
프롬포트에 이렇게 출력되는 걸 알 수 있다
만약 작은 따옴표로 문자열을 둘러싼다면?
>>> food = 'Python's favorite food is perl'
File "<stdin>", line 1
food = 'Python's favorite food is perl'
^
SyntaxError: invalid syntax
구문 오류가 발생할 것이다
- 문자열에 큰따옴표 포함하기
"Python is very easy." he says.
이때는 문자열을 작은 따옴표로 둘러싸면 된다
>>> say = '"Python is very easy." he says.'
- 역슬래시를 사용
>>> food = 'Python\'s favorite food is perl'
>>> say = "\"Python is very easy.\" he says."
따옴표를 문자열에 포함하는 다른 방법은 역슬래시를 이용하는 것으로, 작은 따옴표나 큰 따옴표 앞에 삽임하면 역슬래시 뒤의 따옴표는 '나' 자체를 뜻한다
[여러줄인 문자열을 변수에 대입할 때]
1. 줄을 바꾸기 위한 이스케이프코드 삽입
ed!>>> multiline = "Life is too short\nYou need python"
2. 연속된 작은 따옴표 3개 또는 큰따옴표 3개
ex)
>>> multiline='''
... Life is too short
... You need python
... '''
ex)
>>> multiline="""
... Life is too short
... You need python
... """
문자열이 여러줄인 경우에는 이스케이프보다 따옴표가 깔끔함
* 이스케이프 코드란? *
\n 문자열 안에서 줄 바꿀 때
\t 문자열 사이 탭 간격을 줄 때
\\ 역슬래쉬를 그대로 표현할 때
\' 작은 따옴표 그대로 표현
\" 큰 따옴표 그대로 표현
\r 캐리지 리턴 (줄 바꿈 문자, 커서를 현재 줄 맨 앞으로)
\f 폼피드 (줄바꿈 문자, 커서를 현재줄 다음 줄로)
\a 벨 소리 (출력할 때 스피커에서 삑 소리가 남)
\b 백 스페이스
\000 널 문자
[문자열 연산하기]
- 문자열 더해서 연결하기
>>> head = "Python"
>>> tail = " is fun!"
>>> head + tail
'Python is fun!'
- 문자열 곱하기
>>> a = "python"
>>> a * 2
'pythonpython'
위에서 a * 2는 a를 2번 반복하라는 뜻, *는 문자열의 반복을 뜻하는 의미
- 문자열 곱하기를 응용
해당 소스를 IDLE 에디터를 열어 작성
print("=" * 50)
print("My Program")
print("=" * 50)
입력한 소스는 C:\doit 디렉터리에 ‘multistring.py’라는 파일 이름으로 저장
[실행 창 열기(윈도우 + R) → 'cmd' 입력 → Enter 입력]으로 명령 프롬프트 창을 열기,
아래를 따라가하면 결과값을 확인할 수 있다
C:\Users>cd C:\doit
C:\doit>python multistring.py
==================================================
My Program
==================================================
프로그램을 실행했을 때 출력되는 화면의 제일 위쪽 프로그램 제목을 이렇게 표시하면 보기 좋음
- 문자열 길이 구하기
문자열의 길이는 len 함수를 이용하면 구해진다 (파이썬 기본 내장 함수)
>>> a = "Life is too short"
>>> len(a)
17
* 이때 문자열 길이엔 공백 문자가 포함된다
[문자열 인덱싱과 슬라이싱]
인덱싱 : 무엇인가를 가리킨다
슬라이싱 : 무엇인가를 잘라낸다
- 문자열 인덱싱
>>> a = "Life is too short, You need Python"
차례 대로 0,1,2,3,4,5,6,7,8 ... 33까지 공백 문자를 포함한 길이
ex)
>>> a = "Life is too short, You need Python"
>>> a[3]
'e'
a[3]은 a라는 문자열의 네번째 숫자 e를 말한다 (파이썬은 0부터 숫자를 센다)
a[번호]는 문자열 안의 특정 값을 뽑아내는 역할 (인덱싱)
- 문자열 인덱싱 활용
>>> a = "Life is too short, You need Python"
>>> a[0]
'L'
>>> a[12]
's'
>>> a[-1]
'n'
a[-1] 문자열을 뒤에서부터 읽기 위해 빼기를 붙인 것.
뒤에서 세었을 때 첫 번째가 되는 문자를 말한다
ex)
>>> a[-2]
'o'
>>> a[-5]
'y'
- 문자열 슬라이싱
>>> 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'
문자열에서 자리번호 0부터 4까지 문자를 뽑아내는 것
>>> a[0:3]
'Lif'
이건 안된다 왜냐면
0 <= a < 3 이런 느낌으로 a[0:4]라면 4 앞 숫자까지 의미
- 문자열을 슬라이싱하는 방법
>>> a[0:5]
'Life '
a[0] + a[1] + a[2] + a[3] + a[4]와 동일하다 a[4]는 공백 문자로 'life '가 출력됨
또한 슬라이싱할 때 항상 시작 번호가 0일 필요가 없다
시작에서 끝번호를 생략하면
>>> a[19:]
'You need Python'
문자열의 끝까지 뽑아낸다
시작번호를 생략하면 처음부터 끝까지 뽑아낸다
>>> a[:17]
'Life is too short'
시작번호와 끝 번호를 생략하면 문자열 처음, 끝 뽑아낸다
>>> a[:]
'Life is too short, You need Python'
슬라이싱에서도 인덱싱과 마찬가지로 - 빼기 기호 사용 가능
>>> a[19:-7]
'You need'
- 슬라이싱으로 문자열 나누기
>>> a = "20230331Rainy"
>>> date = a[:8]
>>> weather = a[8:]
>>> date
'20230331'
>>> weather
'Rainy'
문자열 a를 두 부분으로 나누는 것.
위 예에서는 "20230331Rainy" 문자열을 날짜를 나타내는 부분인 '20230331'과 날씨를 나타내는 부분인 'Rainy'로 나누는 방법을 보여 준다.
>>> a = "20230331Rainy"
>>> year = a[:4]
>>> day = a[4:8]
>>> weather = a[8:]
>>> year
'2023'
>>> day
'0331'
>>> weather
'Rainy'
( "20230331Rainy"를 연도인 2023, 월과 일을 나타내는 0331, 날씨를 나타내는 Rainy까지 세 부분으로 나누는 방법 )
* Pithon 문자열을 Python으로 바꾸려면? *
>>> a = "Pithon"
>>> a[1]
'i'
>>> a[1] = 'y'
이렇게도 되지만 슬라이싱 기법을 활용하여
>>> a = "Pithon"
>>> a[:1]
'P'
>>> a[2:]
'thon'
>>> a[:1] + 'y' + a[2:]
'Python'
문자열을 만들 수 있다 p와 thon으로 문자열을 나누고 여기에 y를 추가하면 python 새로운 문자열을 만들 수 있다
[ 문자열 포맷 코드 ]
%s 문자열(String)
%c 문자 1개(character)
%d 정수(Integer)
%f 부동소수(floating-point)
%o 8진수
%x 16진수
%% Literal % (문자 % 자체)
카테고리 없음