- 숫자 자료형
- 정수(int)
- 실수(float)
- 복소수(complex)
- 사칙연산
· 나눗셈 연산자 /
정수와 정수 나눗셈하면 실수로 캐스팅되어 결과 출력됨.
12 / 3 = 4.0
· 나눗셈 후 소수점 버리는 연산자 //
//은 버림 나눗셈(floor division)이라고 하며 나눗셈 후에 나오는 결과에서 소수점은 버리므로, 나눗셈의 몫을 구할 수 있다.
4 // 3 = 1
실수에서 사용하면 항상 소수점 자리는 .0이 된다.
6.2 // 3 = 3.0
※ / 연산의 결과 : 실수
// 연산의 결과 : 정수
· 나눗셈 후 나머지 구하는 연산자 %
나눗셈 후 값이 나누어 떨어지지 않을 때의 나머지 값을 구하는 연산자로, 모듈로(modulo) 연산자라고도 한다.
11 % 5 = 1
· 거듭제곱을 구하는 연산자 **
특정 횟수 동안 특정 수를 곱해준다. 밑 ** 지수순으로 작성해 준다.
3⁵ = 243
· 값을 정수로 만들기
int에 괄호를 붙이고 숫자나 계산식을 넣으면 된다. 숫자일 때는 소수점 이하의 수를 버리게 된다. 그리고 문자열을 넣어도 정수로 만들 수 있는데, 정수로 된 문자열이어야 한다.
int(8.8) //숫자
>>>8
int(7/4) //계산식
>>>1
int('1') //문자열
>>>1
※ int(8.8)은 실수 8.8을 int 클래스로 된 객체로 만든다는 의미다.
· 객체의 자료형 알아내기
type() 함수는 객체 타입을 알아내는 함수로, 이를 이용해서 알 수 있다. 파이썬에서는 숫자도 객체이고 객체는 클래스로 표현한다.
>>>type(8.8)
<class 'float'>
· 몫과 나머지 구하기
divmod() 함수를 이용하기.
>>>divmod(13, 2) //13을 2로 나눌 때
(6, 1) //몫, 나머지
//튜플 이용하기
>>>quot, rem = divmod(13, 2)
>>>print(quot, rem)
6, 1
· 진수로 표현
2진수 : 숫자 앞에 0b 붙이고 0, 1로 표현
8진수 : 숫자 앞에 0o 붙이고 0~7로 표현
16진수 : 숫자 앞에 0x나 0X 붙이고 0~9, A~F(a~f )로 표현
>>>0b010
2
>>>0o07
7
>>>0xD
13
· 실수 계산하기
>>>4.4+1.9
6.3
· 실수와 정수 동시 계산
실수와 정수 동시에 계산하면 정수는 표현 범위가 더 넓은 실수로 캐스팅되어 계산된다.
>>>6.4+1
7.4
· 값을 실수로 만들기
float에 괄호 붙이고 숫자, 계산식, 실수로 된 문자열을 넣으면 된다.
>>>float(11) //숫자
11.0
>>>float(1+4) //계산식
5.0
>>>float('1.3') //문자열
1.3
· 복소수
실수부와 허수부로 이뤄졌으며 허수부 뒤에 j가 붙는다(공학 표현).
>>>3.2+1.5j
(3.2+1.5j)
>>>complex(5.5, 2.3)
5.5+2.3j
※ 파이썬 셸은 결과를 즉시 보는 용도이기 때문에 값이나 계산식만 넣어도 결과가 출력되지만 스크립트 파일에선 계산식만 넣어선 결과가 출력되지 않는다. 계산도 원하고 계산 결과가 보여지는 것도 원한다면 print() 함수를 이용하자.
· 괄호 사용하기
연산 우선순위를 바꾸고 싶을 때 사용.
- 변수
파이썬 셸을 이용해서 계산 결과를 바로 출력할 수는 있었지만 이를 계속 가지고 있을 순 없다. 그래서 변수에 값을 저장해야 한다.
· 변수 생성
x = 10
변수 생성과 동시에 값이 할당되고 할당받는 순간에 변수 타입이 정해진다.
· 변수 명명 규칙
- 영문 문자와 숫자만 사용 가능- 대소문자를 구분
- 문자부터 시작해야 하며 숫자로 시작 불가
- 밑줄(_)로 시작 가능- 특수문자 사용 불가- 키워드 사용 불가
· 변수 여러 개 한 번에 만들기
콤마로 구분해 변수에 할당될 값을 지정해준다. 변수와 값의 갯수는 동일하게 맞춰줘야 하며 나열된 순으로 값이 대입된다.
x, y, z = 32, 5, 10
a = b = c = 10
※ 변수 삭제 : del 변수이름
※ 빈 변수 생성 : 변수 이름 = None
· 변수 계산
>>>a = 10
>>>b = 30
>>>a + b
30
>>>x = 5
>>>x + 19
24
>>>x
5
>>>y = 10
>>>y += 2
>>>y
12
x + 10은 계산일 뿐이다. 변수에 저장하고 싶으면 =을 붙여야 한다.
· 부호 변환
>>>x = -1
>>>+x
-1
>>>-x
1
수학에서처럼 +일땐 부호변화가 없지만 -이면 부호가 반대가 된다.
· 값 입력 받기
사용자가 입력한 값을 가져오는 input() 함수를 이용한다. input() 입력 후 엔터키 누르면 다음 줄로 넘어간다.
>>>a = input('입력 : ')
입력 : Hi
>>>a
Hi
· 두 수 합 구하기
input().split()의 결과는 문자열이다. 따라서 원하는 타입으로 변환시켜줘 연산이 필요하면 연산시켜 주면 된다.
>>>x = int(input())
>>>y = int(input())
print(x+y)
· 입력값을 변수 두개에 저장하기
- 변수1, 변수 2 = input().split() -> 공백 기준 분리
- 변수1, 변수2 = input().split('기준문자열')
- 변수1, 변수2 = input('문자열').split()
- 변수1, 변수2 = input('문자열').split('기준문자열')
· 입력값을 정수 변환
a, b = input('입력 : ').split()
//1
a = (int)a
b = (int)b
//2
print(int(a)+int(b))
· map을 사용한 정수 변환
map에 int와 input().split()을 넣어주면 split 결과를 모두 int로 변환해줌
- 변수1, 변수 2 = map(input().split())
- 변수1, 변수2 = map(input().split('기준문자열'))
- 변수1, 변수2 = map(input('문자열').split())
- 변수1, 변수2 = map(input('문자열').split('기준문자열'))
· 입력받은 값 콤마로 분리하기
기준 문자열에 콤마 넣기
-> 변수1, 변수2 = map(input().split(','))
- 출력
· 값 여러 개 출력
print(값/변수1, 값/변수2, 값/변수3)
-> print() 함수에 공백이 아닌 콤마(,)로 변수나 값을 구분해 주면 공백으로 띄워줘 한 줄로 출력된다.
· sep(separator)으로 값 사이 문자 넣기
공백이 아닌 다른 문자를 넣고 싶을 때 print sep에 문자나 문자열 지정해 주면 된다.
print(값/변수1, 값/변수2, sep='문자나 문자열')
>>>print(10, 20, 30, sep=' ') //공백을 넣으면 공백이 출력된다.
1 2 3
>>>print(10, 20, 30, sep='x')
1x2x3
>>>print(10, 20, 30, sep='\n') //줄바꿈 넣으면 줄 띄워서 출력된다.
1
2
3
>>>print(10\n20\n30)
10
20
30
※ \n은 제어 문자라 \n으로 출력되지 않는다.
· 제어 문자
\n : 다음 줄로 이동
\t : 한 탭 이동
\\ : 문자 자체를 출력할 때
· end 사용
print() 함수는 기본적으로 줄 바꿔주는 \n의 기능이 있어 print() 함수가 여러 개 있으면 모두 줄 바꿔 출력된다. 이때 한 줄에 출력하고 싶으면 printd의 end에 빈 문자열을 지정해 주면 된다.
print(값/변수, end=' ')
>>>print(10, end='')
>>>print(20, end='')
>>>print(30)
102030
※ print의 end에는 \n이 지정된 상태인데 빈 문자열을 지정하면 강제로 \n을 지워준다. end는 해당 print()가 끝난 뒤 다음에 오는 print() 함수에 영향을 준다.