'''
tuple: 이 자체는 변경불가. 요소는 변경가능(mutable 요소로 수정)
고정된 데이터 저장에 사용
요소를 추가, 삭제 안됨.
순서가 있어서 인덱스로 접근 가능
'''
# 생성
a = (1,2,3)
print(a)
print(type(a))
print(a[0])
print(a[1])
print(a[2])
for i in a:
print(i)
#a[0] = 10 #튜플 요소에 대입 연산자 사용불가
b = (1, '234', [4,5,6])
b[2][0] = 40
b[2].append(7)
print(b)
# b[2] = [1,22,4] #튜플 요소를 직접 수정하면 에러
# 생성자로 생성
c = tuple([1,2,3,'a','b',[5,6]])
print(c)
print(type(c))
d = tuple({1,2,3})
print(d)
print(type(d))
e = tuple((5,6,7))
print(e)
print(type(e))
# 빈 튜플 만들기
a = ()
print(a)
print(type(a))
b = tuple()
print(b)
print(type(b))
# 요소 한개짜리 튜플만들기
a = (1)
print(a)
print(type(a)) # 정수 타입
a = (1,)
print(a)
print(type(a)) # 튜플 타입
b = 1,
print(b)
print(type(b))
c = 1,2,3
print(c)
print(type(c))
a, b, c = 1,2,3
print('a=', a, ', b=', b, ', c=',c)
if 0<b<10:
print('b는 10보다 작음')
# 모든 요소를 동일한 값으로 초기화
d = (0,)*5
print(d)
print(type(d))
e = ('hello',)*3
print(e)
print(type(e))
# 2차원 튜플
a = ((1,2), (3,4,5))
print(len(a))
print(a[0][0])
print(a[0][1])
print(a[1][0])
print(a[1][1])
print(a[1][2])
for i in a:
for j in i:
print(j, end='\t')
print()
# 슬라이싱
print(a[1][0:2])
print(a[0][:])
# 검색
a = (3,4,5,6,7)
print(4 in a)
print(4 not in a)
print(40 not in a)
print(a.index(5))
# 결합
a = [1,2,3]
b = [4,5,6]
c = (1,2,4)
d = (5,6,7)
print(a+b)
print(c+d)
# 비교 ==:모든 요소가 같으면 True, 하나라도 다르면 False
e = [1,2,3]
print(a==b)
print(a==e)
# 요소 수정, 추가, 삭제 불가
#c[0] = 10
#c.append(10)
del c # 이름 삭제 가능
# 함수 정의
def test():
name = input('name:')
age = int(input('age:'))
dept = input('dept:')
return name, age, dept
#함수호출
res = test()
print(res)
print(type(res))
name, age, dept = test()
print(name)
print(age)
print(dept)
과제
주소록(이름,전화,주소)
1.추가(이름 중복 안됨)
2.검색(이름)
3.수정(이름으로 검색해서 전화,주소수정)
4.삭제(이름기준)
5.전체출력