# 변수: 메모리상에 데이터를 저장하기 위한 기억공간의 이름
# 변수 만드는 방법: 변수명=값(데이터) //자료형 사용하지 않음!

#정수형 변수
i=10
print('i=',i)       #i=10 출력
print(type(i))      #<class 'int'> 출력

#실수형 변수
r=3.14
print('r=',r)       #r=3.14출력
print(type(r))      #<class 'float'> 출력

#복소수 변수
c=3+5j
print('c=',c)       #c=(3+5j)
print(type(c))      #<class 'complex'>

#논리형 변수  ---주의할 점. 값의 첫 문자는 대문자로 써야 함
b1=True             # True, False 형태로 꼭.
b2=False
print('b1=',b1)         #b1= True
print('b2=',b2)         #b2= False
print(type(b1))         #<class 'bool'>
print(type(b2))         #<class 'bool'>

#문자형 변수
s1="파이썬"
s2='python'
print('s1=',s1)         #s1= 파이썬
print('s2=',s2)         #s2= python
print(type(s1))         #<class 'str'>
print(type(s2))         #<class 'str'>

#List --> 수정 가능, 대괄호 [] 사용
list=['빨','주','노','초','파','남','보']
print(list[0])      # 빨
list[0]='red'       # 빨을 red로 수정 ---> 리스트는 수정 가능!
print('list:',list)     #list: ['red', '주', '노', '초', '파', '남', '보']
print(type(list))   #<class 'list'>

#Tuple 튜플 --> 수정 불가, 소괄호 () 사용
t=('red','orange','yellow','green','blue','navy','purple')
print(t[0])     #red
#t[0]='빨'        # Process finished with exit code 1 오류 발생 ---> 수정 불가능!
print('tuple:',t)       #tuple: ('red', 'orange', 'yellow', 'green', 'blue', 'navy', 'purple')
print(type(t))      #<class 'tuple'>

#Set 집합 --> 중복 허용하지 않음
s=set([1,2,3,3])
print('s=',s)       #s= {1, 2, 3}
print(type(s))      #<class 'set'>

#Dictionary 딕셔너리 : {'key' : 'value' }
d={'네이버':'http://naver.com',
    '구글':'http://google.com',
    '다음': 'http://daum.net'}
print('d:',d)       #d: {'네이버': 'http://naver.com', '구글': 'http://google.com', '다음': 'http://daum.net'}
print(type(d))      #<class 'dict'>


연산자
#대입 연산자     =
a=10
print('a=',a)

x=y=z=0
print('x=',x)   #전부 0 출력
print('y=',y)
print('z=',z)

c,d=10,20
print('c=',c)   #c=10
print('d=',d)   #d=20

#값 교환
c,d=d,c
print('c=',c)      #c= 20
print('d=',d)      #print('d=',d)


#산술 연산자
# + - * / // % **

a=10; b=3

a=10; b=3

re1=a+b     #re1= 13
re2=a-b     #re2= 7
re3=a*b     #re3= 30
re4=a/b     #re4= 3.3333333333333335  -> 실수형 나누기 (몫)
re5=a//b     #re5= 3 -> 정수형 나누기 (몫)
re6=a%b     #re6= 1 -> 나누기 (나머지)
re7=a**b     #re7= 1000 (10^3) -> 거듭제곱

#비교 연산자     == != > >= < <=
#결과가 참이면 True, 거짓이면 False 리턴
#문자끼리도 직접 비교가 가능하다는 장점!

x=10; y=20
str1='abc'
str2='python'

print(x==y)     #False
print(x!=y)     #True
print(x>y)     #False
print(x>=y)     #False
print(x<y)     #True
print(x<=y)     #True

print(str1==str2)     #False
print(str2=='python')   #True   문자열 직접 비교 가능
print(str1!=str2)     #True
print(str1>str2)     #False     --> 문자는 사전 순으로 비교
print(str1>=str2)     #False    a가 p보다 앞에 있으므로 작다고 판단
print(str1<str2)     #True
print(str1<=str2)     #True


#논리 연산자     and, or, not
#논리 연산자     의미
#----------------
#A and B        A와 B 모두 참일 때 True
#A or B          A와 B 둘중 하나만 참이어도 True
#not A           A 논리값의 반대

b1=True; b2=False; b3=True; b4=False
print(b1 and b2)        #False
print(b1 and b3)        #True
print(b2 or b3)          #True
print(b2 or b4)          #False
print(not b1)            #False
print(not b2)            #True

+ Recent posts