cmd 창에서 실행 : python
-> Linux와 mac에서는 python3
나오기 : exit()
cmd창에서 소스코드 실행
ex) python 소스코드명.py
or
cd c:\소스코드파일>소스코드명.py
주석 : #
파이썬 숫자 자료형
사칙연산 : 완전히 나누어 떨어져도 소수점으로 출력
ex) 4/2 = 2.0, 5/2 = 2.5
// 연산자 : 나눗셈 후 소수점 이하를 버림. 실수에 사용할 경우 항상 n.0으로 끝남
ex) 4//2 = 2, 5//2 = 2
% 연산자 : 나눗셈 후 나머지를 구함
** 연산자 : 거듭제곱을 구함
int() : 정수로 변환 가능. 괄호 안에 숫자, 계산식, 문자열(정수만) 사용 가능
type() : 객체의 자료형 알아내기
divmod() : 몫과 나머지 함께 구하기 ex) divmod(5, 2) -> (2,1) 출력
! 괄호로 묶인 출력 값 -> tuple 값을 여러 개 모아서 표현
>>> a, b = divmod(6,2)
>>> print(a, b)
3 0
변수 안에 넣어서 사용
2진수 8진수 10진수 16진수
2진수: 숫자 앞에 0b를 붙이며 0과 1을 사용
8진수: 숫자 앞에 0o(숫자 0과 소문자 o)를 붙이며 0부터 7까지 사용
16진수: 숫자 앞에 0x 또는 0X를 붙이며 0부터 9, A부터 F까지 사용(소문자 a부터 f도 가능)
```
>>> 0b110
6
>>> 0o10
8
>>> 0xF
15
```
실수와 정수 계산 : 실수로 출력(표현 범위가 더 넓은 쪽으로 계산됨)
float() : 실수로 만들기. 괄호 안에 숫자, 계산식, 문자열(실수, 정수 다 가능)사용
complex() : 실수를 복소수로 만들기.
() -> ** -> *,/ -> +,-
input().split() : 입력받은 값을 공백 기준으로 분리
type(변수) : 변수 자료형 보기
변수 한 번에 여러 개 만들기 ex) x = y = z = 10
변수 값 변경
ex)
x, y = 10, 20
x, y = y, x
x
20
y
10
del 변수 : 변수 삭제하기
빈 변수 만들기 : 변수 = None (다른 언어에서는 null)
변수에 부호 붙이기 : x = -10 일 때 -x입력 -> 10 출력
변수 계산 : input()으로 받으면 str이다. 계산을 위해 int로 변환 필요
ex)
a, b = input('숫자 두 개를 입력하세요: ').split()
a = int(a) # 변수를 정수로 변환한 뒤 다시 저장
b = int(b) # 변수를 정수로 변환한 뒤 다시 저장
print(a + b)
or
print(int(a) + int(b)) # print(int(a+b))는 불가
map을 사용해서 변환 가능
a, b = map(int, input('숫자 두 개를 입력하세요: ').split())
print(a + b)
print() 함수 안에 ,로 여러값 일렬 출력 가능 ex) print(1, 2 ,3) -> 1 2 3
sep='' : ''안에 원하는 구분자를 넣어 출력 가능 ex) print(1, 2 ,3 ,sep='x') ->1x2x3
개행문자 \n : print('1\n2\n3')과 print(1, 2 ,3 ,sep='\n') 출력문 동일
end : end뒤에 빈 문자열을 입력하면 다음 출력을 줄바꿈하지 않고 바로 옆으로 오게 한다.
ex) print(1,end='')
print(2,end='')
print(3)
-> 123
end=' ' 로 지정시 -> 1 2 3 출력
파이썬은 값 자체도 객체다. 그래서 변수에 값을 그대로 저장하지 않고 객체를 가리키는 방식을 사용한다. 예를 들어서 다음과 같이 x와 y에 1000을 할당했다면 x와 y는 단지 1000이라는 객체를 가리킬 뿐이다.
x = 1000
y = 1000
sys.getrefcount 함수를 사용하면 현재 객체가 몇 번 사용되었는지 확인할 수 있다(객체를 사용(참조)한 횟수를 레퍼런스 카운트(reference count)라고 부른다).
refcount.py
import sys
print(sys.getrefcount(1000)) # 2: Windows에서 처음 레퍼런스 카운트는 2
# 3: 리눅스에서 처음 레퍼런스 카운트는 3
x = 1000 # x에 1000을 저장
print(sys.getrefcount(1000)) # 3: 1000을 한 번 사용하여 레퍼런스 카운트 1 증가(Windows)
# 4: 리눅스
y = 1000 # y에 1000을 저장
print(sys.getrefcount(1000)) # 4: 1000을 한 번 사용하여 레퍼런스 카운트 1 증가(Windows)
# 5: 리눅스
print(x is y) # True: x와 y가 같은 객체를 가리키고 있으므로 True가 나옴