본문 바로가기

프로그램언어/파이썬

2강 숫자계산과 연산자

숫자 자료형의 종류

복소수

복소수는 실수부와 허수부로 이루어져 있습니다. 데이터 입력시 허수부 부분에서 숫자 뒤에 j를 붙여주면 됩니다.( 예 : 2 + 3j )

 

숫자 계산

연산자의 종류 복소수

연산자 설명 예제 결과값
+ 더하기 127 + 50 177
- 빼기 127 - 50 77
* 곱하기 127 * 5 6350
/ 나누기 127 / 50 2.54
// 몫(나머지 버리고 정수출력) 127 // 50 2
% 나머지 127 % 50 27
** 거듭 제곱 2 ** 3 8
  설명 예제 결과값
2 + 3j 복소수    
complex() 복소수를 만들어주는 함수 complex(2, 3) 2 + 3j
a.real a변수의 실수부 출력 ( a = 2 + 3j ) - 실수부 : 2 a.real 2.0
a.imag a변수의 허수부 출력 ( a = 2 + 3j ) - 허수부 : 3 a.imag 3.0
int() 정수형으로 변환 int(2.5) 2
float() 실수형으로 변환 float(2) 2.0

 

연산자를 이용하여 계산해보기

 1. 더하기 연산

>>> a = 127
>>> b = 50
>>> res = a + b
>>> print(a, '+', b, '=', res)
127 + 50 = 177

 2. 빼기 연산

>>> a = 127
>>> b = 50
>>> res = a - b
>>> print(a, '-', b, '=', res)
127 - 50 = 77

 3. 곱하기 연산

>>> a = 127
>>> b = 50
>>> res = a * b
>>> print(a, '*', b, '=', res)
127 * 50 = 6350

 4. 나누기 연산

>>> a = 127
>>> b = 50
>>> res = a / b
>>> print(a, '/', b, '=', res)
127 / 50 = 2.54

 5. 나머지 연산

>>> a = 127
>>> b = 50
>>> res = a % b
>>> print(a, '%', b, '=', res)
127 % 50 = 27

 6. 나누셈한 결과에서 나머지는 버리고 정수만 출력하는 연산

>>> a = 127
>>> b = 50
>>> res = a // b
>>> print(a, '//', b, '=', res)
127 // 50 = 2

 7. 거듭제곱 연산

>>> a = 2
>>> b = 3
>>> res = a ** b
>>> print(a, '**', b, '=', res)
2 ** 3 = 8

 8. 복소수 더하기 연산1

>>> a = 2 + 3j
>>> b = 3 + 4j
>>> res = a + b
>>> print(a, '+', b, '=', res)
(2+3j) +(3+4j) = (5+7j)

 9. 복소수 더하기 연산2

>>> a = complex(3, 4)
>>> b = complex(4, -3)
>>> res = a + b
>>> print(a, '+', b, '=', res)
(3+4j) +(4-3j) = (7+1j)
>>>
>>>res.real
7.0
>>>res.imag
1.0

.real : 복소수의 실수부 추출

.imag : 복소수의 허수부 추출

res.real을 이용하여 복소수(7+1j)의 실수부인 7.0을 출력하고 있고 res.imag을 이용하여 허수부인 1.0을 출력하는 것을 알수 있습니다.

 

 10. int()함수 사용

int()함수는 정수로 변환해주는 함수

>>> a = int(2.5)
>>> a
2
>>> b = int('5')
>>> b
5
>>> print(a, '+', b, '=', int(a + b))
2 + 5 = 7

 11. float()함수 사용

float()함수는 실수로 변환해주는 함수

>>> a = float(2)
>>> a
2.0
>>> b = float('5.5')
>>> b
5.5
>>> print(a, '+', b, '=', float(a + b))
2.0 + 5.5 = 7.5

 

변수와 입력함수

변수

앞에서 연산자를 하면서 a, b, c를 사용하여 연산을 하였습니다. 이때 사용한 a, b, c는 변수입니다.

변수란 한자 그대로 변하는 수를 변수라 합니다.

예) a = 5

 위 예는 값 5를 변수 a에 대입한다는 뜻입니다.

 변수를 만드는 규칙

  - 시작문자는 영문자로 시작하며 문자와 숫자를 사용할 수 있습니다.

  - _(밑줄 문자)로 시작할 수 있습니다.

  - 대소 문자를 구분합니다.

  - 특수문자와 키워드는 사용할 수 없습니다.

 

input()함수

 Input()함수는 사용자가 키보드로 입력하는 함수로 키를 누를 때까지 화면을 멈추는 효과를 준다. 키를 누르고 엔터 키를 누르면 다음 줄로 넘어갑니다.

사용예) 변수 = input()

 

1. input()함수로 문자열 입력하기

>>> a = input()
파이썬 공부합니다.
>>> a
파이썬 공부합니다.
>>> a = input('문자열 입력 : ')
문자열 입력 : 파이썬 공부합니다.
>>> a
파이썬 공부합니다.

 

2. input()함수로 숫자 입력하기

>>> a = input()
100
>>> a
'100'

input()함수로 100을 입력하고 a변수를 출력해 보면 위와 같이 '100'이 출력되는 것을 알수 있듯이 문자 숫자로 출력되었습니다.

2-1. 입력한 문자 숫자를 숫자로 변환하기

>>> a = int(input())
100
>>> a
100
>>> a = int(input('숫자 입력 : '))
숫자 입력 : 100
>>> a
100

 

3. 여러개의 숫자를 입력하기

>>> a, b = input('두 개의 정수를 입력하세요 : ').split()
두 개의 정수를 입력하세요 : 30 50
>>> a = int(a)
>>> b = int(b)
>>> print(a, '+', b, '=', a+b)
20 + 50 = 80

split()함수는 구분자로 분리 주는 함수이다. 위 예는 공백을 기준으로 분리하여 각각 a = 30, b = 50이 대입하고 정수로 변환하여 계산하는 소스코드이다. 

 

4. map을 이용하여 정수 입력하기

>>> a, b = map(int, input('두 개의 정수를 입력 : ').split())
두 개의 정수를 입력 : 20 30
>>> print(a, '+', b, '=', a+b)
20 + 30 = 50
>>>
>>> x, y = map(int, input('두 개의 정수를 입력 : ').split(','))
두 개의 정수를 입력 : 30,40
>>> print(a, '+', b, '=', a+b)
30 + 40 = 70

 

 

대입연산자의 종류

연산자 사용 예 설명
+= a += 3 a = a + 3과 동일하다.
-= a -= 3 a = a - 3과 동일하다.
*= a *= 3 a = a * 3과 동일하다.
/= a /= 3 a = a / 3과 동일하다.
//= a //= 3 a = a // 3과 동일하다.
%= a %= 3 a = a % 3과 동일하다.
**= a **= 3 a = a ** 3과 동일하다.

 

관계 연산자의 종류

연산자 의미 설명
== 같다 두 값이 같으면 참
!= 같지 않다. 두 값이 다르면 참
> 초과 왼쪽 값이 크면 참
< 미만 왼쪽 값이 작으면 참
>= 이상 왼쪽 값이 크거나 같으면 참
<= 이하 왼쪽 값이 작거나 같으면 참

 

논리 연산자의 종류

연산자 설명
and 둘 다 참이면 참 a >= 0 and a<=100
or 둘 중에 하나라도 참이면 참 a < 0 or a > 100
not 참이면 거짓, 거짓이면 참 not(a >= 100)

 

비트 연산자의 종류

연산자 의미 설명
& 논리곱(and) 둘 다 1이면 1
| 논리합(or) 둘 중에 하나만 1이면 1
^ 논리적 배타합(xor) 둘이 같으면0, 다르면 1
~ 부정 1은 0으로, 0은 1로 변경
<< 왼쪽으로 비트 이동 왼쪽으로 시프트( shift )
>> 오른쪽으로 비트 이동 오른쪽으로 시프트( shift )

'프로그램언어 > 파이썬' 카테고리의 다른 글

4강 튜플  (0) 2020.07.14
3강 리스트  (0) 2020.06.18
1.강 Hello world 출력  (1) 2020.06.17
거북이 글자쓰기(모듈버전)  (0) 2020.06.04
거북이 원 모양으로 글자쓰기  (0) 2020.06.03