# 2019.12.27.(금) 오늘부터는 코딩도장으로 team lab의 동영상 진도를 따라기로 했다.
# 코딩 도장을 보면서 team lab에서 배웠던 것은 여기에 기록하지 않고, 새로운 것만 기록하도록 한다.

# ==과 !=은 값을 비교한다. is와 is not은 객체를 비교한다고 한다.
a = bool(5)
print(a)
b = bool(0)
print(b)
# 단락 평가 : and, or에서 첫 번째 값만으로 결과가 결정되는 경우.
# 파이썬에서 and, or의 결과값은 마지막으로 연산을 수행한 단락의 값이 된다.
T = True
print(T and 'PY') # T를 확인하고 'PY'를 확인하기 때문에 마지막으로 본 'PY'를 출력.
print(0 and 'PY') # 단락 평가로 인해 0으로도 결과를 알 수 있으므로 0이 출력.
print(T or 'PY') # 단락 평가로 인해 T(True)로도 결과를 알 수 있으므로 True가 출력.
print(0 or 'PY') # 0을 확인하고 'PY'를 확인. 'PY'출력.

# range를 이용해 리스트 만들기.
a = list(range(10)) # range(횟수)
b = list(range(0, 10, 2)) # range(시작, 끝, 증가폭) 증가폭이 없으면 시작부터 끝까지이다(시작 ~ 끝-1 을 생성)
c = list(range(0, 10))
d = list(range(5, 15))
print(a, b, c, d, sep='\n')

# 튜플(Tuple) 사용하기. ()로 묶고 , 로 구분해준다. 튜플은 수정, 삭제 불가이다. 읽기 전용.
Tup = (1, 2, 3, 4, 5)
# 값이 하나인 튜플을 만들 때에는
tup2 = (5) # 괄호로만묶으면 그냥 숫자가 됨.
tup3 = (5,) # 괄호로 묶고 쉼표를 추가하면 그 때부터 튜플이 된다.
tup4 = (range(15)) # 튜플로 range를 사용할 수 있다.
# 튜플과 리스트의 상호 변환
a = list(Tup) # 튜플의 리스트화
b = tuple(b) # 리스트의 튜플화

# 값 in 시퀀스객체 도 있지만 값 not in 시퀀스객체 도 있다.
print(len(range(10, 147, 6))) # range로 생성되는 값의 개수도 알 수 있다.
print(a[-1]) # -1 이라는 것은 뒤에서(-) 첫(1) 번째라는 것이다.

# 중요한 것. 문자열, range, 튜플은 인덱스를 사용해도 안의 내용을 변경할 수 없다.
a = "Hello, World!"
# a[0] = 'A' 불가능.
print(a)

# slice : a[시작:끝:증가폭] 시작부터 끝-1의 값에서 증가폭을 가지며 따로 빼온다. 증가폭이 없으면 사이 전부를 빼온다.
c = a[0:4] # 01234 가 아닌 0123 을 가져온다.
print(c)
c = a[2:-2] # 2번 인덱스부터 뒤에서 2번의 앞(-3)인덱스의 값을 가져온다.
print(c)

# 생략
c = a[:5] # 처음부터 5의 전까지
print(c)
c = a[5:] # 5번부터 끝까지
print(c)
c = a[3::2] # 당연히 증가폭도 넣을 수 있다.
print(c)
c = a[:] # 전체 가져오기
print(c)

# range도 객체였다.
r = range(100)
e = r[30:70:4]
print(e)
eL = list(e)
print(eL)
eL[2:6] = [3] # 값의 범위를 지정하여 값을 바꿀 수 있다.
print(eL)
del eL[1:4] # del 을 이용하여 슬라이실 값을 삭제.
print(eL)
x = ['acasc', 'dawdwa', 'grgbfd', 'dsadasf', 'fsafas', 'a', 'b', 'c', 'd', 'e']
print(x)
del x[-1:-6:-1] # 증가폭을 쓰지 않으면 무조건 1씩 증가하므로 x[-1:-6]이 작동하지 않는 것이었다.
print(x)

s1, s2 = input(), input()
s3 = s1[1::2]+s2[::2]

# 2019.12.27 오늘의 파이썬 종료. 다음은 딕셔너리 만들기.