[이전글]
1.1. 숫자형(Number) 만들기
숫자형이란 숫자로 이루어진 자료형으로 일반적으로 우리가 아는 정수, 실수뿐 아니라 8진수, 16진수 등이 있다.
정수형(Integer)
정수형이란 정수를 뜻하는 자료형이다. 변수에 아래처럼 정수를 대입할 수 있다.
a, b, c 변수에 각각 양의 정수, 음의 정수, 0 을 입력하여 출력해봤다.
>>> a=999
>>> b=-999
>>> c=0
>>> print(a)
999
>>> print(b)
-999
>>> print(c)
0
실수형(floating-point)
실수형은 소수점을 포함한 숫자이다. a, b 에 각각 양의 실수, 음의 실수를 입력하여 출력해봤다.
>>> a=12.34
>>> b=-12.34
>>> print(a)
12.34
>>>
print(b)
-12.34
소수형태 뿐 아닌 10의 제곱수도 나타낼 수 있다. 우리가 수학적으로 10000 = 10^4 = E4 으로 나타낼 수 있는 것 처럼 10제곱 형태로도 나타낼 수 있다.
>>> a=12.34e10
>>> b=56.78E-10
>>> print(a)
123400000000.0
>>> print(b)
5.678e-09
대, 소문자 구분 없이 E, e 모두 사용 가능한 것 같다.
다만 b를 출력한 결과값은 5.678e-09 으로 표기가 되었다. 소숫점과 제곱수를 보면 숫자형으로 입력은 된 것 같다.
a도 실수형으로 입력되어서인지 딱 떨어짐에도 소숫점 첫재짜리까지 나타내져있다.
나중에 실수의 자리를 나타내는 방법도 알아봐야 할 것 같다.
8진수(octal)
우리가 흔히 쓰는 숫자는 0~9의 숫자로 이루어진 10진수 기반이며 8진수는 0~8의 숫자로만 나타내는 방법이다.
변수 입력전에 간단히 10진수를 8진수로 나타내보면,
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 10
- 11
- 12
로 나타낼 수 있다. 즉 10진수의 8은 8진수의 10으로, 10진수의 9는 8진수의 11로 나타낼 수 있다.
8진수를 만들기위해서는 0o 또는 0O 로 시작하면 된다. 이것도 알파벳 o의 대, 소문자는 상관 없는듯 하다.
>>> a=0o10
>>> b=0O11
>>> print(a)
8
>>> print(b)
9
16진수(hexadecimal)
16진수는 10 이후에 a~f까지 나타내는 숫자이다.
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- A
- B
- C
- D
- E
- F
- 10
- 11
- 12
- 13
- 14
16진수는 0x로 시작하면 된다. 왠지 컴퓨터 블루스크린에서 본것같은 친숙한 숫자(?)다.
>>> a=0xa
>>> b=0xf
>>> print(a)
10
>>> print(b)
15
16진수의 알파벳과 16진수 시작문자 x 의 대소문자도 상관이 없는지 궁금해서 확인해봤다.
>>> a=0xA
>>> print(a)
10
>>> a=0XA
>>> print(a)
10
>>> a=0Xa
>>> print(a)
10
모든 조합을 출력해봤으나 동일하게 10이 출력 되는 것을 보니 16진수 에서도 대소문자는 상관 없는 것 같다.
다만 파이썬에서는 8진수, 16진수를 잘 사용하지 않는다고 하니 참고만 해보려고 한다.
1.2. 숫자형을 활용하기 위한 연산자.
사칙연산
엑셀에서 자주 사용하듯 +. -, *, / 로 계산이 모두 된다. 확실히 접근성이 편하다.
>>> a=8
>>> b=2
>>> a+b
10
>>> a-b
6
>>>a*b
16
>>> a/b
4.0
제곱
일반적으로 ^ 문자로 제곱을 나타냈었는데 파이썬에서는 곱셈 연산기호를 두개 쓰면 된다. 꽤나 직관적이다.
>>> a=5
>>> b=3
>>> a**b
125
나눗셈 (몫 출력)
/ 연산자를 사용해 나눗셈을 하면 몫+나머지 가 출력 되는데 이 결과 중 몫을 출력하는 방법이다.
방법은 //로 나누기 연산자를 2번 쓰면 된다.
>>> a=5
>>> b=3
>>> a//b
1
나눗셈 (나머지 출력)
/ 연산자를 사용해 나눗셈을 하면 몫+나머지 가 출력 되는데 이 결과 중 나머지를 출력하는 방법이다.
나는 백분율로만 사용해봐서 처음 접하는데 %연산자를 사용하면 된다.
>>> a=5
>>> b=3
>>> a%b
2
복합연산자
예를 들면 a = 2 이며 a에 1을 증가시키고 싶다면 a = a + 1 이라고 표현할 것이다.
이 때 a = a + 1 을 += 복합연산자를 사용하여 a += 1 이라고 쓸 수 있다.
이외의 복합연산자로는 +=, -=, *=, /=, //=, %=, **= 이 있는데 바로 와닿지는 않는다. 한번 파이썬으로 입력해보자.
>>> a=5
>>> a+=2 # a = a + 2 와 같다.
>>> print(a)
7
>>> a=5
>>> a-=2 # a = a - 2 와 같다.
>>> print(a)
3
>>> a=5
>>> a*=2 # a = a * 2 와 같다.
>>> print(a)
10
>>> a=5
>>> a/=2 # a = a / 2 와 같다.
>>> print(a)
2.5
>>> a=5
>>> a//=2 # a = a // 2 와 같다.
>>> print(a)
2
>>> a=5
>>> a%=2 # a = a % 2 와 같다.
>>> print(a)
1
>>> a=5
>>> a**=2 # a = a ** 2 와 같다.
>>> print(a)
25
눈으로 보는 것 보다 막상 한번씩 써보니까 금방 익는 것 같다. 확실히 실습이 중요하긴 하구나!
2.1 문자열(string) 자료형
문자열은 문자들의 나열을 나타낸다. 주로 따옴표로 둘러싸여 나타낸다.
큰따옴표
"Power Overwhelming"
작은따옴표
'Black Sheep wall'
큰따옴표 3개
"""Show me the money"""
작은따옴표 3개
'''Food For Thought'''
공부는 역시 익숙한 단어와 문장으로..... 총 4가지 방법이 있으며 왜 이렇게 나타내는지 하나씩 실습해보자.
2.2 문자열 안에 작은따옴표나 큰따옴표를 포함시키고 싶을 때
문자열에 작은따옴표 포함하기
마린의 대사 Let's move! 에는 작은따옴표가 들어가있다.
이 문장을 문자열을 나타내기위한 작은따옴표로 인식시키지 않기 위해 큰따옴표로 입력해준다.
>>> marine = "Let's move!"
>>> marine
"Let's move!"
>>> marine = 'Let's move!' #작은따옴표로 실험해보니 에러가 생긴다.
File "<stdin>", line 1
marine = 'Let's move!'
^
SyntaxError: invalid syntax
문자열에 큰따옴표 포함하기
다크템플러의 대사 "Adun Toridas!"를 인용해보자. 큰따옴표까지 포함할 것이니 작은따옴표로 양쪽을 감싼다.
>>> darktempler='"Adun Toridas!"'
>>> darktempler
'"Adun Toridas!"'
역슬래시를 사용하여 문자열해 따옴표 포함하기
역슬래시를 사용하면 문자열 기호가 아닌 따옴표 자체 문자로 인식을 시킬 수 있다. 위의 마린 대사중 오류가 났던 구문을 다시 해보자. 역슬래시는 엔터 위 원화표시를 쓰면 된다.
>>> marine='Let\'s move!'
>>> marine
"Let's move!" # 자동으로 큰따옴표로 출력이 되었다.
2.3 여러줄인 문자열을 변수에 대입하고 싶을 때
Yes, sir!
Order, sir!
Da da la la la, da da la la la~
시즈탱크의 대사 3줄을 변수로 쓰고싶을 땐 어떻게 해야할지 알아보자.
이스케이프 코드 \n 삽입하기
>>> SiegeTank= "Yes,sir!\nOrder, sir!\nDa da la la la, da da la la la~"
>>> SiegeTank
'Yes,sir!\nOrder, sir!\nDa da la la la, da da la la la~' #출력전에는 입력한 그대로 이스케이프 코드가 나온다.
>>> print(SiegeTank)
Yes,sir!
Order, sir!
Da da la la la, da da la la la~
따옴표 3개 사용하기
이스케이프 코드를 사용하게되면 문장도 읽기 불편하고 길어진다.
그래서 따옴표 3개를 사용하여 입력하면 가독성이 훨씬 좋아진다.
>>> SiegeTank="""
... Yes,sir!
... Order, sir!
... Da da la la la, da da la la la~
... """
>>> print(SiegeTank)
Yes,sir!
Order, sir!
Da da la la la, da da la la la~
2.4 문자열 연산하기
신기하게 파이썬은 문자도 연산할 수 있다.
문자열 더하기
90년대생은 다 알만한 노래로 문자열을 더해보자.
>>> 노래="자! 이제 시작이야~"
>>> 코러스="내꿈을~"
>>> 노래+코러스
'자! 이제 시작이야~내꿈을~'
신기하게 한글로도 코딩이 가능했다! 그리고 큰따옴표로 문자열을 나타내면 출력은 작은따옴표로, 반대로 나오는 것 같다.
문자열 곱하기
피카츄 대사로 문자열 곱하기를 실습해보자.
>>> 피카츄="피카!"
>>> 피카츄*2
'피카!피카!'
>>> 피카츄*3
'피카!피카!피카!'
2.5 문자열 길이구하기
문자열 길이 구하기
len 함수를 사용하여 문자열의 길이를 구할 수 있다. 우리가 이력서 글자 수 검색하는 것 처럼 띄어쓰기 공백도 포함이 된다.
>>> 엔딩곡="피카츄 라이츄 파이리 꼬부기 버터풀 야도란 피죤투 또가스"
>>> len(엔딩곡)
31
2.6 문자열 인덱싱과 슬라이싱
문자열 인덱싱(indexing)
대괄호 기호를 사용하여 해당하는 칸의 문자를 불러온다.
"피카츄 라이츄 파이리 꼬부기 버터풀 야도란 피죤투 또가스" 는 길이가 총 31이다.
그중 "피" 는 첫번째 문자로 0번에 해당하는 문자
"라" 는 띄어쓰기 포함 다섯번째 문자로 4번에 해당하는 문자이다.우리가 2진수는 0부터 1까지, 10진수는 0부터 9까지 응용하듯 인덱싱 순서도 0번부터 시작한다.인덱스는 말 그대로 색인, 목록의 의미로 몇번째 칸에 어떤 문자가 있는지 확인할 수 있는 작업이다.
>>> 엔딩곡="피카츄 라이츄 파이리 꼬부기 버터풀 야도란 피죤투 또가스"
>>> 엔딩곡[0]
'피'
>>> 엔딩곡[4]
'라'
참고로 문자열은 뒤에서부터 셀 수 있으며 음수를 붙이면 된다. 0은 -0도 0이므로 음수로 나타낼 수 없기 때문에 반대로는 -1 부터 순차적으로 세면 된다. 즉, "스"는 뒤에서 첫번째 -1, "죤"은 공백포함 뒤에서 6번째 -6 이다.
>>> 엔딩곡="피카츄 라이츄 파이리 꼬부기 버터풀 야도란 피죤투 또가스"
>>> 엔딩곡[-1]
'스'
>>> 엔딩곡[-6]
'죤'
문자열 슬라이싱
슬라이싱은 말 그대로 잘라내는 것이다.
: 기호를 사용하여 원하는 부분의 단어만 잘라내거나 처음부터 원하는 부분까지, 혹은 원하는 부분까지 잘라낼 수 있다.
예를 들어 "파이리" 라는 단어를 불러오려면 8, 9, 10 의 문자를 가져오면된다. 10을 기준으로 슬라이싱하여 어떤 결과가 나오는지 확인해보자.
>>> 엔딩곡="피카츄 라이츄 파이리 꼬부기 버터풀 야도란 피죤투 또가스"
>>> 엔딩곡[8:10] #뒤의 숫자는 결과에 포함되지 않는다.
'파이'
>>> 엔딩곡[8:11]
'파이리'
>>> 엔딩곡[:11]
'피카츄 라이츄 파이리'
>>> 엔딩곡[12:] #앞의 숫자는 결과에 포함된다.
'꼬부기 버터풀 야도란 피죤투 또가스'
>>> 엔딩곡[11:]
' 꼬부기 버터풀 야도란 피죤투 또가스'
슬라이싱으로 문자열 나누기
개구리 5마리가 공명을 하고있다. 각 공명을 나누어 변수를 지정해줄 수 있을 것 같다.
>>> 공명="게로게로게로타마타마타마기로기로기로도로도로도로쿠루쿠루쿠루"
>>> 케로로=공명[0:6]
>>> 케로로
'게로게로게로'
>>> 기로로=공명[12:18]
>>> 기로로
'기로기로기로'
인덱싱과 슬라이싱은 프로그래밍 할 때 자주사용하는 기법이라고 하니 꼭 숙지해야겠다.
[다음글]
'공부 > 전자컴퓨터공학' 카테고리의 다른 글
프로그램(Program)이란? 웹(Web)이란?웹 개발, 웹 디자인을 위한 기초 지식 쌓기 (0) | 2024.04.30 |
---|---|
컴퓨터(Computer)란? 웹 개발, 웹 디자인을 위한 기초 지식 쌓기 web design web development (0) | 2024.04.29 |
Do it! 점프 투 파이썬 - 2장. 파이썬 프로그래밍의 기초, 자료형 (3) (1) | 2024.04.26 |
Do it! 점프 투 파이썬 - 2장. 파이썬 프로그래밍의 기초, 자료형 (2) (1) | 2024.04.25 |
Do it! 점프 투 파이썬 - 1장. 파이썬이란 무엇인가? (1) | 2024.04.09 |