1. 튜플

여러 가지 데이터 타입의 값을 저장할 수 있는, 변경 불가능(immutable)한 순서가 있는 컬렉션입니다.

(값을 바꿀 수 없음)

 

 

1. 생성

tu1 = (1,) # 요소를 튜플로 하나만 저장할 때는 끝에, 컴마를 넣어줌
print(tu1)
print(type(tu1)) #데이터에 컴마를 찍지 않고 숫자 하나만 입력할 경우 튜플이 아닌 숫자에 괄호를 입힌걸로 인식
더보기

(1,)

<class 'tuple'>

# 데이터 변경 불가
tu1[0] = 100 #TypeError: 'tuple' object does not support item assignment

 

 

tu2 = (1, 3, 5, 7)
print(tu2)
더보기

(1, 3, 5, 7)

tu3 = 1, 3, 5, 7
print(tu3)
print(type(tu3))
더보기

(1, 3, 5, 7)

<class 'tuple'>

tu4 = ('푸바오', '아이바오',('가','나','다'))
print(tu4)
print(tu4[0])
print(tu4[2][0])
print(type(tu4))
print(type(tu4[2]))
print(type(tu4[2][0]))
더보기

('푸바오', '아이바오', ('가', '나', '다'))

푸바오

<class 'tuple'>

<class 'tuple'>

<class 'str'>

tu5 = ('푸바오', '아이바오',['가','나','다'])
print(tu5)
print(tu5[2][0])
print(type(tu5))
print(type(tu5[2]))
print(type(tu5[2][0]))

#tu5[0] = '러바오' #튜플은 값 변경 불가 TypeError: 'tuple' object does not support item assignment
tu5[2][0] = '후이바오'
print(tu5)
더보기

('푸바오', '아이바오', ['가', '나', '다'])

<class 'tuple'>

<class 'list'>

<class 'str'>

('푸바오', '아이바오', ['후이바오', '나', '다'])

 

2. 인덱싱

tu1 = (1, 2, '푸바오', '러바오')
print(tu1[0])
print(tu1[-1])
더보기

1

러바오

 

3. 슬라이싱

tu1 = ( 1, 2,'푸바오', '러바오')
print(tu1[1:])
print(tu1[1:3])
더보기

(2, '푸바오', '러바오')

(2, '푸바오')

 

4. 연산

#튜플 간의 + 연산으로 리스트를 결합할 수 있고, * 연산으로 리스트를 반복할 수 있습니다.

tu1 = (10, 20, 30)
tu2 = (40, 50, 60)

print(tu1 + tu2)
print(tu2 + tu1)

tu1 = tu1 + (40, 50)
print(tu1)

print(tu1 * 3)
더보기

(10, 20, 30, 40, 50, 60)

(40, 50, 60, 10, 20, 30)

(10, 20, 30, 40, 50)

(10, 20, 30, 40, 50, 10, 20, 30, 40, 50, 10, 20, 30, 40, 50)

 

5. 언패킹

튜플의 항목들은 변수들에 할당될  있습니다. (리스트도 가능)

Lebao, Aibao = ('Fubao', 'Luibao')
print(Lebao)
print(Aibao)
더보기

Fubao

Luibao

 

6. 멤버십 테스트

in 연산자를 사용하여 튜플에 특정 값이 있는지 확인할  있습니다. (리스트도 가능)

print(2 in (2, 4, 6, 8, 10)) # 데이터 안에 2가 있다면 True 없다면 False
print(9 in (2, 4, 6, 8, 10))
더보기

True

False

 

7. 튜플의 정렬

튜플은 sort() 메서드를 제공하지 않습니다. sorted() 함수를 사용합니다.

tu1 = (1, 3, 2, 0)
tu1 = sorted(tu1) # sorted의 반환형은 리스트
print(tu1) #리스트로 출력
더보기

[0, 1, 2, 3]

 

8. 변환

튜플을 리스트로, 리스트를 튜플로 변환할 수 있습니다.

tu1 = (1, 2, 3, 4)
print(type(tu1))

# 튜플 -> 리스트 변환
li1 = list(tu1)
print(type(li1))

#리스트 -> 튜플 변환
tu2 = tuple(li1)
print(type(tu2))
더보기

<class 'tuple'>

<class 'list'>

<class 'tuple'>

 

 

2. input 함수

  • 사용자(개발자)에게 데이터를 입력받을 수 있는 함수
  • 데이터는 항상 문자형으로 입력됩니다.

 

 

# prompt: 선택 사항입니다. 사용자에게 입력을 유도하기 위한 메시지 또는 프롬프트를 나타내는 문자열입니다.

input([prompt])
name = input()
print(name)
더보기

류바옹

류바옹

 

name = input('이름 입력')
print(f'{name}님 안녕하세요')
더보기

이름 입력류딩

류딩님 안녕하세요

 

name, age, weight = '푸바오', 3, 100
print(name)
print(age)
print(weight)
더보기

푸바오

3

100

name, age, weight = input('이름, 나이, 체중을 차례대로 입력해주세요.').split(',') #푸바오,3,100 이런식으로 입력
print(name)
print(age)
print(weight)
더보기

이름, 나이, 체중을 차례대로 입력해주세요.

푸바오,3,100

푸바오

3

100

name = input('이름 입력 : ')
age = input('나이 입력 : ')
weight = input('무게 입력 : ')

print(name)
print(age)
print(weight)
더보기

이름 입력 : 푸바오

나이 입력 : 3

무게 입력 : 100

푸바오

3

100

 

num1 = input('첫번째 숫자를 입력하세요')
num2 = input('두번째 숫자를 입력하세요')
print('결과: ', num1 + num2) # str타입이므로 숫자가 이어서 나옴
더보기

첫번째 숫자를 입력하세요88

두번째 숫자를 입력하세요88

결과: 8888

 

# int(): 문자열을 숫자(정수)타입으로 변환

num1 = input('첫번째 숫자를 입력하세요 : ')
num2 = input('두번째 숫자를 입력하세요 : ')
print('결과: ', int(num1) + int(num2))
더보기

첫번째 숫자를 입력하세요 : 100

두번째 숫자를 입력하세요 : 100

결과: 200

 

 

문제

# 국어 영어 수학 점수를 한꺼번에 입력받아 총점과 평균을 구하는 프로그램을 작성

# 입력방법 : 100/80/85

 

 

# EX1

kor, eng, math = input('점수를 입력하세요 : ').split('/')
print('국어 : ',kor)
print('영어 : ',eng)
print('수학 : ',math)

all = (int(kor) + int(eng) +int(math))
av = all//3

print('총점 :' ,all)
print('평균 : ', av)
더보기

점수를 입력하세요 : 60/50/40

국어 : 60

영어 : 50

수학 : 40

총점 : 150

평균 : 50

 

# EX2

kor, eng, math = input('국어, 영어, 수학점수를 차례대로 입력하세요 ').split('/')
print(f'총점: {int(kor) + int(eng) + int(math)}')
print(f'평균: {(int(kor) + int(eng) + int(math))/3}')
print('평균: %.2f' % ((int(kor) + int(eng) + int(math))/3))
더보기

국어, 영어, 수학점수를 차례대로 입력하세요 50/60/40

총점: 150

평균: 50.0

평균: 50.00