# None (특수형태)
print(0 == None)
print(2 == None)
# 숫자형
int_val = 10#ctrl + space를 쓰면 스마트 어시스턴스가 나옴
print(int_val)
float_val = 3.16
print(float_val)
print(float_val/int_val)
print(int_val/float_val)
# 2진수
bin_val = 0b1111
print(bin_val)
# 8진수
oct_val = 0o52
print(oct_val)
#16진수
hex_val = 0xff
print(hex_val)
# 자료형 확인
print(type(int_val))
print(type(float_val))
print(type(oct_val))
print(type(hex_val))
# 문자열형
bruce_eckel = 'Life is short, \nYou need Python'
print(bruce_eckel)
greeting = "Hello, Python"
print(greeting)
multi_str_val='''Hello
My name is PYJ
Bye'''
print(multi_str_val)
# 불린
print(1 == 1*2)
print(10 == 2*5)
print(type(False))
#불린 계속
bl_true = True
bl_false = False
print(bl_true is True)#타입도 같고 값도 같다.
print(bl_true == True)#값이 똑같다
print(bool(1)) # 0이외의 값은 전부 True
print(bool(0)) # 0은 False
#복합형 (자료구조)
#리스트
b=[1, 2, 3, 4, 5, 6, 7, 8,9, 10]
print(b)
c=[i for i in range(1, 101)]
print(c)
print(type(c))
#튜플
tuple_ary=(1, 2, 3, 4, 5)
print(tuple_ary)
print(type(tuple_ary))
#딕셔너리
spiderman = { 'name' : 'Peter Parker', 'age' : '18', 'weapon' : 'web shooter' }
print(spiderman)
print(type(spiderman))
#셋
set1 = set([1, 2, 3])
set2 = set("Hello World")
print(set1)
print(set2)
#일반 리스트 값 변경
q = [1, 2,3, 4, 5]
print(q)
print(q[0])
q[0] = 'H'
print(q)
# 문자열(문자의 배열) 값 변경
greeting = 'hello!'
print(greeting)
print(greeting[0])
# greeting[0]='H'#에러발생!, 문자열에는 함부로 값을 변경시킬 수 있다. Type Error
print(greeting)
new_greeting = 'H' + greeting[1:]
print(new_greeting)
# 문자열 포매팅
a="I'm so happy for you"
b='I\'m so happy for you'
print(a)
print(b)
# 포매팅 구식
print('I\'m happy {0} you' .format('four'))
print('I\'m happy {0} you' .format('two'))
print('I\'m happy {0} {1} you' .format('zero', 'one'))
print('I\'m happy {1} {0} you' .format('zero', 'one'))
# 문자열 포매팅
a="I'm so happy for you"
b='I\'m so happy for you'
print(a)
print(b)
# 포매팅 구식
print('I\'m happy {0} you' .format('four'))
print('I\'m happy {0} you' .format('two'))
print('I\'m happy {0} {1} you' .format('zero', 'one'))
print('I\'m happy {1} {0} you' .format('zero', 'one'))
word0='zero'
word1='one'
print('I\'m happy {0} {1} you' .format(word0, word1))
# 포매팅 신식
name='박용준'
address='서울'
print(f'제 이름은 {name}입니다. {address}에 살아요')
#f가 아주 중요함
import math
print (math.pi)
print(f'{math.pi*10:.3f}')
print('{0:.3f}' .format(math.pi))
#문자열 자르기
orign_str ='서울시 금천구 가산동'
print(orign_str)
print(orign_str.split(' '))
print(orign_str.split())
mes_str = 'DEST07|2022-05-24|10:07:17|DESC11|NONE'
print(mes_str.split('|'))
#| = 파이프 키
# 문자열 치환
full_name = 'Liam YJ Park'
print(full_name.replace('Liam YJ', 'Emily'))
print(full_name)
#문자열 공백 제거
test ='Hey, Guys~'
sp_test = test.split(',')
print(sp_test)
sp_test[1] = sp_test[1].replace('~', '').strip()
print(sp_test)
print(' Hello~ '.lstrip())
print(' Hello~ '.rstrip())
print(' Hello~ '.strip())
print(' Hello ~ '.strip())
# test ='Hey, Guys~'
print(test.index('H'))
print(test.index('G'))
#print(test.index('g')) #없는 단어를 치면 ValueError가 발생함
print(test.find('G')) #찾으면 그 배열에서 인덱스를 리턴함
print(test.find('g')) #못 찾으면 -1
print('Hello~'.count('l'))
print(full_name.upper()) #모든 단어를 대문자로 바꿈
print(full_name.lower()) #모든 단어를 소문자로 바꿈
#리스트 연산
arr = [1, 2, 3, 4, 5]
print(len(arr))
print(arr[4])
print(arr)
print(arr[0] + arr[4])
#arr[2] = '3' #에러 발생! 문자열+정수형 XX 문자열 + 문자열은 가능
print(arr[2] + arr[3])
arr[2] = '3'
arr[3] = '4'
print(arr[2] + arr[3])
print(arr)
#2차원 배열
arr2= [1, 2 ,['Hi', 'My', 'Friends']]
print(arr2)
print(arr2[2][2])
print(arr2[2][2][0])
print(arr2[0:2])
print(arr2[-2:])
print(arr2)
del(arr2[2])
print(arr2)
# 리스트 변수 추가
print(arr)
arr.append(9)
print(arr)
arr.insert(2, '132'); # 첫번째 전달자는 idx, 두번째 전달자는 Value
print(arr)
arr.pop()
print(arr)
tup1 = (1, 2, 3, 4, 5)
print(tup1)
print(tup1[4])
# tup1[0] = 7 # 에러발생! 튜플은 데이터를 바꿀 수 없다.
dic_a = {1: 'a'}
print(dic_a)
dic_a[2] = 'b'
print(dic_a)
spider_man = {'name': 'Peter parker', 'armor':'Web shooter', 'age':20}
print(spider_man)
print(spider_man['name'])
print('age' in spider_man)