# 변수의 기본 선언
n = 700
print(n) # n의 출력을 요청할 때에 n의 값을 메모리에서 가져옴
print(type(n)) # n의 자료형을 출력함
# 변수의 동시선언
x = y = z = 700 # 3개의 변수에 700이라는 값을 동시선언
# 변수의 선언과 재선언
var = 75
var = 'Change Value'
print(var)
print(type(var)) # 변수의 재선언 시 이전의 변수의 값과 자료형 모두 변경됨
# Object references
# 변수 값 할당 상태일 때
print(300) #할당되지 않은 변수를 사용할 때에
#해당하는 타입에 맞는 일시적인 오브젝트가 생성되고 그 이후에 출력이 이루어짐
n = 777 #변수에 할당된 값을 사용할 때에
print(n) #int형 클래스의 인스턴스로써 사용된다.
m = n #새로 만들어진 변수 m은 n의 참조가 아닌 복사이다.
m = 400
print(n) #m변수를 재선언 하여도 n의 값은 변하지 않음
print(id(m)) #id함수로 객체의 고유값을 확인할 수 있음
print(id(n)) #id함수를 이용하여 해당 변수가 저장된 위치를 가져올 수 있음
m = 800 #같은 값을 선언했을 때에
n = 800
print(id(m))
print(id(n))
print(id(m) == id(n)) #파이썬 내부에서 같은 값은 같은 위치에 저장되어 True값이 반환 됨
# 파이썬의 자료형
# 시퀀스 = 리스트형과 같이 순서가 있는 객체들의 집합
"""
int : 정수 #1, 30, 55
flaot : 실수 #3.42, 1.55
complex : 복소수 #i
bool : 불린 #true false
str : 문자열(시퀀스) #'ㅁㄴㅇ'
list : 리스트(시퀀스) #list = [a, b, c, d, e]
tuple : 튜플(시퀀스) #tuple = (a, b, c, d, e) #괄호 없이 콤마로만 나열해도 튜플로 인식됨
set : 집합 #set = {a, b, c, d, e}
dict : 사전 #dict = {"key" : "value"}
"""
# 숫자형 연산자
"""
+ 덧셈
- 뺄셈
* 곱하기
/ 나누기
// 나눈 값의 몫
% 나눈 값의 나머지
abs(a) a의 절대값
pow(b,c) b의 c승
"""
#Raw String
raw_s = r'D:\python\test' #r을 붙임으로써 역슬래시나 특수문자를 신경쓰지 않고 그대로 출력 가능함
print(raw_s)
#멀티라인 입력 #파이썬에서 \로 구문이 끝나는 경우 다음 줄에 연속되어 입력한다는 의미
multi_str = \
'''
String
Multi Line
Test
'''
print(multi_str)
multi_str2 = \
'abc\n'\
'vvv'
print(multi_str2)
# 문자열 연산
'''
char in string #일종의 Linq함수 같은 역할을 하여 string에 char가 포함되어 있을 경우 True를 반환 함
char not in string #위 반환 값의 not 값을 반환함
'''
str_01 = 'aa'
str_01.capitalize() #첫 글자를 대문자로 변경 함
str_01.endswith("e") #마지막 문자가 e로 끝나는지 bool값을 반환
str_01.replace("a", "b") #a문자를 b로 변경 함
sorted(str_01) #문자열을 정렬하여 리스트형으로 반환 함
str_01.split(',') #,를 기준으로 나눠서 리스트형으로 반환 함