profile image

L o a d i n g . . .

UNIT 5. 숫자 계산하기

파이썬에서는 숫자를 정수, 실수, 복소수로 구분한다.

 

  • 정수 계산하기

더보기

일반 사칙연산과 동일하다.

+ : 덧셈 연산자

- : 뺄셈 연산자

* : 곱셈 연산자

/ : 나눗셈 연산자 (이때, 파이썬 3에서는 정수끼리 나눗셈을 해도 실수가 나온다.)

// : 나눗셈 후 소수점 이하를 버리는 연산자

% : 나눗셈 후 나머지를 구하는 % 연산자로, 모듈로(modulo) 연산자라고 한다.

>>> 5/2
2.5
>>> 5//2
2
>>> 5%2
1

 ** : 거듭제곱을 구하는 연산자

 

int() : 값을 정수로 만들어 주며, 정수로 된 문자열인 경우엔 넣으면 정수로 만들 수 있다.

>>> int(3.3)
3
>>> int(5/2)
2

 

type() : 객체의 자료형(타입)을 알려준다.

>>> type(10)
<class 'int'>

 

divmod( , ) : 몫과 나머지를 함께 구해준다.

출력 결과인 몫과 나머지는 튜플(tuple)형태로 나오는데, 튜플은 값을 괄호로 묶은 형태이다.

튜플은 변수 여러 개에 저장할 수 있어, 다음과 같이 몫과 나머지를 변수 두 개에 저장할 수 있다.

>>> divmod(5,2)
(2,1)

>>> quotient, remainder = divmod(5,2)
>>> print(quotient, remainder)
2 1

 

※ 참고 : 2진수, 8진수 16진수

2진수 : 0과 1을 사용하며, 숫자 앞에 0b를 붙인다.

8진수 : 0부터 7까지 사용하며, 숫자 앞에 0o를 붙인다.

16진수 : 0부터 9, 그리고 A부터 F까지 사용하며, 숫자 앞에 0x 또는 0X를 붙인다.

 

  • 실수 계산하기

더보기

정수 계산과 동일함. (다만 실수에서는 오차와 관련된 이슈가 있음.)

>>> 3.5+2.1
5.6
>>> 4.3-2.7
1.5999999999999996
>>> 1.5*3.1
4.65
>>> 5.5/3.1
1.7741935483870968

 

float() : 값을 실수로 만들어주며, 괄호 안에 숫자 또는 계산식을 넣어주면 됨.

>>> float(5)
5.0
>>> float(1 + 2)
3.0

※ 실수와 정수를 함께 연산하면? 표현 범위가 넓은 실수로 계산됨.

연산의 우선순위 : ** -> 괄호 -> *,/ -> +,-

 

 

 

UNIT 6. 변수와 입력 사용하기

  • 변수 만들기

더보기

변수는 '변수이름 = 값' 형식으로 만들 수 있다.

*규칙

- 문자부터 시작해야 하며 숫자부터 시작하면 안 됨.

- 특수문자는 사용할 수 없음.

- 파이썬의 키워드(if, for, while, and, or 등)는 사용할 수 없음.

 

*참고

'= 기호'는 같다는 뜻이 아니라 변수에 값을 할당(assignment)한다는 의미

 

*변수의 자료형

파이썬에서는 변수의 자료형이 중요함. type()에 변수를 넣으면 변수(객체)의 자료형이 나옴.

 

 

변수 입력 예시)

i = 10
a, b, c = 10, 20, 30
x = y = z = 10

변수 삭제는 del을 이용함 : del 변수

값이 들어있지 않는 변수를 만들때는 None을 할당해주면 됨 : 변수 = None

 

  • 변수로 계산하기

더보기

변수는 변수끼리 계산할 수 있고, 계산 결과를 다른 변수에 할당할 수 있음.

연산 예시)

>>> a = 10
>>> b = 20
>>> c = a + b
>>> c
30

 

변수 한 개에서 값의 변화를 계속 유지하려면 계산 결과를 다시 변수에 저장해야함.

>>> a = 10
>>> a = a + 20    # a와 20을 더한 후 결과를 다시 a에 저장
>>> a
30

 

산술 연산 후 할당 연산자 사용하기 

+= : 덧셈 후 할당한다는 뜻으로 -=, *=, /= 도 똑같이 연산 후 할당한다는 뜻임.

>>> a = 10
>>> a += 20    # a와 20을 더한 후 결과를 다시 a에 저장
>>> a
30

 

  • 입력 값을 변수에 저장하기

더보기

input 함수 사용하기

input( ) : 사용자가 입력한 값을 가져오는 함수임.

>>> input()
Hello, world! (입력)
'Hello, world!'

 

input 함수의 결과를 변수에 할당할 수 있음.

>>> x = input()
Hello, world! (입력)
>>> x
'Hello, world!'

여기서 한 가지 불편한 점이 있는데, input 함수가 실행된 다음에는 아무 내용이 없어서 입력을 받는 상태인지 출력이 없는 상태인지 알 수가 없음.

-> input의 괄호 안에 문자열을 지정해주면 이를 해결할 수 있음. (변수 = input('문자열')

>>> x = input('문자열을 입력하세요: ')
문자열을 입력하세요: Hello, world! (입력)
>>> x
'Hello, world!'

 

*응용 : 두 숫자의 합 구하기

a = input('첫 번째 숫자를 입력하세요: ')
b = input('두 번째 숫자를 입력하세요: ')
 
print(a + b)
첫 번째 숫자를 입력하세요: 10 (입력)
두 번째 숫자를 입력하세요: 20 (입력)
1020

그런데, 이때 10 + 20의 결과는 30이 나와야 하는데 1020이 나옴. 

이렇게 나온 이유는 input에서 입력받은 값은 항상 문자열 형태이기 때문에, 10과 20을 +로 더한 것이 아니라 연결한 형태인 1020이 나온 것임.

 

  • 입력 값을 변수 두 개에 저장하기

더보기

input 한 번에 값을 여러 개 입력 받으려면 어떻게 해야 할까?

input에서 split을 사용해 변수 여러 개에 저장해주면 되는데, 다음과 같은 형식이다.

 

  • 변수1, 변수2 = input().split()

  • 변수1, 변수2 = input().split('기준문자열')

  • 변수1, 변수2 = input('문자열').split()

  • 변수1, 변수2 = input('문자열').split('기준문자열')

a, b = input('문자열 두 개를 입력하세요: ').split() #입력받은 값을 공백을 기준으로 분리

print(a)
print(b)
문자열 두 개를 입력하세요: Hello Python (입력)
Hello
Python

 input에 split을 사용하면 입력받은 값을 공백을 기준으로 분리하여 변수에 차례대로 저장함.( split에 기준 문자열을 지정하면 공백이 아닌 다른 문자로 분리가 가능함 )

 

 

*두 숫자의 합 구하기

숫자 두 개를 입력 받아서 두 숫자의 합을 구해보자.

a, b = input('숫자 두 개를 입력하세요: ').split()    # 입력받은 값을 공백을 기준으로 분리
 
print(a + b)

실행 결과는 다음과 같다.

숫자 두 개를 입력하세요: 10 20 (입력)
1020

30이 나와야 하는데 1020이 나왔다. 왜냐면 input에서 입력받은 값은 문자열이고, 이것은 split으로 분리해도 문자열이기 때문이다.

따라서 입력 값을 정수로 변환해 줄 필요가 있다.

a, b = input('숫자 두 개를 입력하세요: ').split()    # 입력받은 값을 공백을 기준으로 분리
a = int(a)    # 변수를 정수로 변환한 뒤 다시 저장
b = int(b)    # 변수를 정수로 변환한 뒤 다시 저장
 
print(a + b)

실행 결과는 다음과 같다.

숫자 두 개를 입력하세요: 10 20 (입력)
30

 

*map을 사용하여 정수로 변환하기

 map int input().split()을 넣으면 split의 결과를 모두 int로 변환해준다.

(실수로 변환할 때는 int 대신 float를 넣음)

a, b = map(int, input('숫자 두 개를 입력하세요: ').split())
 
print(a + b)

실행 결과는 다음과 같다.

숫자 두 개를 입력하세요: 10 20 (입력)
30

 

 

 

UNIT 7. 출력 방법 알아보기

  • 값을 여러 개 출력하기

더보기

print에는 변수나 값 여러 개를 ,(콤마)로 구분하여 넣을 수 있음.

>>> print(1, 2, 3)
1 2 3
>>> print('Hello', 'Python')
Hello Python

 

sep로 값 사이에 문자 넣기

값 사이에 공백이 아닌 다른 문자를 넣고 싶을 때 print의 sep에 문자 또는 문자열을 지정해주면 됨.

>>> print(1, 2, 3, sep=', ')    # sep에 콤마와 공백을 지정
1, 2, 3
>>> print(4, 5, 6, sep=',')    # sep에 콤마만 지정
4,5,6
>>> print('Hello', 'Python', sep='')    # sep에 빈 문자열을 지정
HelloPython
>>> print(1920, 1080, sep='x')    # sep에 x를 지정
1920x1080

 

  • 줄바꿈 활용하기

더보기

print 한 번으로 값을 여러 줄에 출력할 수는 없을까?  

print sep에 개행 문자(\n)라는 특별한 문자를 지정하면 값을 한 줄에 하나씩 출력할 수 있다.

>>> print(1, 2, 3, sep='\n')
1
2
3
>>> print('1\n2\n3')    # 문자열 안에 \n을 사용하여 줄바꿈
1
2
3

 

※참고 : 제어 문자

화면에 출력되지는 않지만 출력 결과를 제어하며, \로 시작하는 이스케이프 시퀀스이다.

 

\n: 다음 줄로 이동하며 개행이라고도 부른다.

\t: 탭 문자, 키보드의 Tab 키와 같으며 여러 칸을 띄운다.

\\: \ 문자 자체를 출력할 때는 \를 두 번 써야 한다.

 

 

그러면 print를 여러 번 사용해서 print(1, 2, 3)처럼 한 줄에 여러 개의 값을 출력할 수는 없을까?

이때는 print의 end에 빈 문자열을 지정해주면 된다.

print(1, end='')    # end에 빈 문자열을 지정하면 다음 번 출력이 바로 뒤에 오게 됨
print(2, end='')
print(3)

 실행결과는 다음과 같다.

123

기본적으로 print end \n이 지정된 상태인데 빈 문자열을 지정하면 강제로 \n을 지워주기 때문이다.

 

복사했습니다!