오늘 Jupyter 프로그램을 통해
파이썬에서 등장하는 기초지식을 확인합니다.
ep1. 가장 쉬운 프로그래밍 언어, 파이썬의 기초단계입니다.
오늘은 사칙연산과 타입의 종류,
논리연산자와 비교연산자를 배워봅니다.
1장. 파이썬을 계산기처럼 이용하자!
1. 간단한 사칙 연산
덧셈과 뺄셈, 곱셈과 나눗셈
파이썬은 우리가 생각할 수 있는 모든 종류의 사칙연산이 가능합니다.
덧셈, 뺄셈, 곱셈, 나눗셈, 나머지 구하기, 몫 구하기, 제곱 등 사용자가 원하는
모든 종류의 계산을 간단하게 표현할 수 있습니다.
여러가지 간단한 계산들을 가져와 보겠습니다.
1+1
5-2
15*2
10/2
쉽죠? 모두 정수값으로 답을 도출하는 것을 볼 수 있습니다.
해석
2
3
30
5.0
다만 한가지, 나눗셈의 경우 정수형이 아닌 실수형(소수 포함)으로 표현되기 때문에, 5.0으로 표현됩니다.
정수와 실수
파이썬은 나눗셈을 시작하면, 나머지가 있든 없든 실수로 표현합니다.
정수 : 자연수와 음수와 0 = int
실수 : 유리수와 무리수 = float
1.2 + 5.3
3.5 - 5.0
1.4 * 2
5 / 2
해석
6.5
-1.5
2.8
2.5
정수는 자연수와 0, 그리고 음수를 모두 합한 숫자 입니다. 실수 와 차이가 생기는 점은
소숫점으로 표현되지 않는다는 점입니다.
타입으로는 int로 표현됩니다.
실수는 유리수와 무리수를 모두 포함한 숫자 입니다. 따라서 정수를 포함하기도 하지만
실제 생활에서 잘 쓰지 않는 제곱근이나 무리수 등을 표현할 때 쓰기도 합니다.
타입으로는 float로 표현됩니다.
복잡한 연산
연산 규칙 : 괄호 > 지수 > 곱셈과 나눗셈 > 덧셈과 뺄셈
2 + 3 * 4
3 / 2 * (7 - 5) / 2
10 / 5 + (5-2) * 2
(5 * 4 - 15) + ((5 - 2) * (9 - 7))
해석
이러한 경우에는 우리가 수학시간에 배우는 연산의 순서를 그대로 따라갑니다.
괄호 안에 있는 계산을 먼저하고, 그다음에 지수 계산 → 곱셈과 나눗셈을 실행합니다.
14
1.5
8.0
11
다음 단계도 쉽습니다.
타입 (type)
1) 함수 : 기능을 수행하도록 작성된 코드의 묶음 #함수명(인자)의 형식으로 이용
* 시작과 끝을 알려주기 위해 소괄호 () 을 사용합니다.
type(3)
type(3.0)
type("실수")
해석
int
float
str
타입은 Python에 입력한 문자의 종류를 알려주는 함수입니다.
위에서 언급했듯이, 정수의 타입은 int, 실수의 타입은 float 입니다.
추가적으로, " " 혹은 ' ' 을 붙여서 텍스트를 표현한 것은
str 이라는 타입을 갖습니다.
3.2 거듭 제곱과 나머지
거듭제곱(지수)
거듭제곱 연산자 =**
2 * 2 * 2 * 2 * 2
2**5
거듭제곱도 자주 사용하는 연산자 입니다.
**로 표현합니다.
해석
32
32
실수도 거듭제곱이 가능합니다.
1.5**2
해석
2.25
지수가 정수가 아니어도 가능합니다.
2**(1/2)
2**(1/3)
해석
1.4142135623730951
1.2599210498948732
자 루트 2의 결과값과 2의 1/3제곱의 결과값입니다.
나머지와 몫
나눗셈의 연산에서 자연스럽게 따라 나오는 연산자 입니다.
나눈 수의 나머지를 구하는 연산은 % 로 서술합니다.
일상생활에서 매우 자주 사용하는 계산은 아니지만, 이또한 Python내에서
꼭 알아두어야 하는 연산입니다.
나눈 수의 몫을 구하는 연산은 // (슬래시 기호 2번) 으로 서술합니다.
13 % 5
13 // 5
해석
3
2
나머지와 몫이 차례대로 반환됬습니다.
3.3 과학적 표기법
우리가 방치형 RPG 게임을 해본다면, 캐릭터가 초기에는 10점, 20점 씩 성장하다가
어느 순간 100점, 1,000점을 넘어 수많은 숫자로 표현될 때가 있습니다.
0의 숫자가 4,5개가 넘어간다면 한 화면에 표현되기 어려울 것입니다.
이러한 경우 게임에서는 1K, 1E, 1M등 축약한 숫자를 사용하는데요.
이때 표현되는 것이 과학적 표기법 입니다.
Python에서는 1e 로 표현됩니다.
*매우 자주 사용되진 않습니다.
10의 거듭제곱을 en의 형식으로 편하게 입력해보자
자 10의 자릿수가 매우 커져서, 0이 너무나 많은 숫자들이 있습니다.
3 * 10 **8
해석
300000000
이를 쉽게 표현하는 방법입니다.
3e8
단 항상 숫자가 앞에 있어야 합니다.
해석
300000000.0
>>3 곱하기 10의 8승 ('실수'로 저장됩니다)
출력에서도 사용됩니다.
1e15 1e1 1e16
해석
1000000000000000.0
10.0
1e+16
10의 16승 이상부터는 int로 표현되지 않습니다.
아마 데이터의 표현 한계 때문인 것 같습니다.
1e-4
1e-5
1e-1
반대로, 음수도 제곱으로 표현할 수 있습니다.
해석
0.0001
1e-05
0.1
이 경우, 10의 -4승부터는 숫자로 표현되지 않습니다.
3.4 진수의 표현과 변환
각 10진법, 2진법, 8진법, 16진법을 표기한 후
10진법을 출력할 수 있습니다.
다음으로, 진법의 표현입니다.
2진법, 8진법, 16진법 등 컴퓨터에서 주로 사용되는 진수의 표현도 단축어가 존재합니다.
(인간이 보통 쓰는 진법인 10진법이 기본 바탕이 됩니다)
2진법은 가장 오른쪽부터 2의 0제곱부터 시작하여 1, 2, 4, 8...의 자릿값을 가집니다.
17
2진법으로 표현해 볼까요?
해석
0b10001
2진법은 영어로 binary입니다.
때문에 축약어는 b로, 0b를 2진법으로 사용합니다.
0o21
8진법은 영어로 Octal, 줄여서 oct라고 부릅니다.
축약어는 o로, 0o를 8진법으로 사용합니다.
여기서부터 약간 복잡해집니다.
0o1 은 1
0o10은 8
0o100은 64
16진법은 영어로 Hexadecimal 입니다. 줄여서 Hex라고 부릅니다.
축약어는 x로, 0x를 16진법으로 사용합니다.
다만 8진법일때와 달리, 10의 자릿수가 넘어가면 텍스트를 두 개 사용해야
하는데, 그때 추가되는 것인 a~f의 단축어 입니다.
10은 0xa, 11은 0xb, 12는 0xc, ...... 15는 0xf로 표현합니다.
f까지 사용되고 16 이후부터는 0x10부터 표현합니다.
0x1 는 1
0xa 는 10
0xb 는 11
0xc 는 12
0xd 는 13
0xe 는 14
0xf 는 15
16진법은 f까지 사용합니다.
0ㅌ100
자, 이제 2진법, 8진법, 16진법을 사용하는 방법을 배웠으니
진법으로 출력하는 함수를 보게 됩니다.
아까 2진법, 8진법, 16진법의 축약어를 제시한 것은 이 때문입니다.
bin은 2진법, oct는 8진법, hex는 16진법을 표시합니다.
요컨대, 아래 계산을 진행할 수 있습니다.
bin(17)
oct(17)
hex(17)
해석
'0b10001'
'0o21'
'0x11'
아까 계산했던것과 같이, 17을 다양한 방법으로 반환했습니다.
"문자열"로 출력됩니다!
연산 후 변환도 가능합니다.
(2진법 > 8진법 > 16진법)
0b10 * 0o10 + 0x10 - 10
bin(0b10 * 0o10 + 0x10 - 10)
oct(0b10 * 0o10 + 0x10 - 10)
hex(0b10 * 0o10 + 0x10 - 10)
bin(0o10 + 0x2)
해석
22
'0b10110'
'0o26'
'0x16'
'0b1010'
마찬가지로, 연산 후 변환하는 것도 가능합니다.
3.4 논리연산자와 비교연산자
불린연산 (Boolean operation)
Bool 값은 논리형을 말하는 것입니다.
기본적으로 참과 거짓은 1과 0으로 대응하며,
Python에서는 True와 False를 표시합니다. (대소문자 구분)
print(True)
print(False)
type(True)
논리연산자 ★★
and : 모두 참일때 참
or : 둘 중 하나만 참일때도 참
NOT : A가 참이면 거짓, 거짓이면 참
아울러, 참과 거짓을 판별하는 논리연산자와
숫자와 숫자간의 크기를 비교할 수 있는 비교연산자가 존재합니다.
즉, 형식논리학과 집합론에서 사용하는 and와 or, not 연산자 입니다.
print(True and False)
print(True or False)
print(not True)
print(True or True or not True)
print(True and True and not True)
이 결과가 어떻게 되는지 보겠습니다.
해석
False
True
False
True
False
비교연산자 ★★
print(5 == 3) #같다 "="과 다르다는 점에 주의해야 합니다
print(5 != 3) #같지 않다
print(5 < 3) #보다 작다
print(5 > 3) #보다 크다
print(5 <= 3) #같거나 작다
print(5 >= 3) #크거나 작다
비교연산자는 숫자사이의 크기를 비교하여,
True 값과 False 값을 반환해줍니다.
해석
False
True
False
True
False
True
숫자의 크고 작은 관계를 나타나는 연산자입니다.
이는 추후의 논리값을 설정할 때 활용됩니다.
특히, 논리연산자와 비교연산자를 함께 쓰는 것도 가능합니다.
1<0 and 2>0
False
이처럼 말이죠.
이렇게 해서, 이번 시간에는 간단한 사칙연산과 복잡한 연산,
타입 함수, 과학적 표기법과 진법의 표현, 그리고
논리연산자와 비교연산자까지 알아보았습니다.
다음 ep에서는 변수와 6가지 자료형에 대해 찾아보겠습니다.
다음단계 배우기 : https://astart.tistory.com/5
'Programming Language > Python' 카테고리의 다른 글
파이썬_기초단계 알아보기_ep.6 점입가경! 갈수록 어려워지는 함수 (0) | 2022.12.03 |
---|---|
파이썬_기초단계 알아보기_ep.5 역시 수학은 어려워 (0) | 2022.12.02 |
파이썬_기초단계 알아보기_ep.4 인풋이 좋아야 아웃풋이 좋죠! (0) | 2022.12.01 |
파이썬_기초단계 알아보기_ep.3 만나려면 조건이 맞아야지 (0) | 2022.11.23 |
파이썬_기초단계 알아보기_ep.2 부자가 되려면 변수가 필요해! (0) | 2022.11.23 |