1. 튜플
여러 가지 데이터 타입의 값을 저장할 수 있는, 변경 불가능(immutable)한 순서가 있는 컬렉션입니다.
(값을 바꿀 수 없음)
1. 생성
tu1 = (1,) # 요소를 튜플로 하나만 저장할 때는 끝에, 컴마를 넣어줌
print(tu1)
print(type(tu1)) #데이터에 컴마를 찍지 않고 숫자 하나만 입력할 경우 튜플이 아닌 숫자에 괄호를 입힌걸로 인식
# 데이터 변경 불가
tu1[0] = 100 #TypeError: 'tuple' object does not support item assignment
tu2 = (1, 3, 5, 7)
print(tu2)
tu3 = 1, 3, 5, 7
print(tu3)
print(type(tu3))
tu4 = ('푸바오', '아이바오',('가','나','다'))
print(tu4)
print(tu4[0])
print(tu4[2][0])
print(type(tu4))
print(type(tu4[2]))
print(type(tu4[2][0]))
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])
3. 슬라이싱
tu1 = ( 1, 2,'푸바오', '러바오')
print(tu1[1:])
print(tu1[1:3])
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)
6. 멤버십 테스트
in 연산자를 사용하여 튜플에 특정 값이 있는지 확인할 수 있습니다. (리스트도 가능)
print(2 in (2, 4, 6, 8, 10)) # 데이터 안에 2가 있다면 True 없다면 False
print(9 in (2, 4, 6, 8, 10))
7. 튜플의 정렬
튜플은 sort() 메서드를 제공하지 않습니다. sorted() 함수를 사용합니다.
tu1 = (1, 3, 2, 0)
tu1 = sorted(tu1) # sorted의 반환형은 리스트
print(tu1) #리스트로 출력
8. 변환
튜플을 리스트로, 리스트를 튜플로 변환할 수 있습니다.
tu1 = (1, 2, 3, 4)
print(type(tu1))
# 튜플 -> 리스트 변환
li1 = list(tu1)
print(type(li1))
#리스트 -> 튜플 변환
tu2 = tuple(li1)
print(type(tu2))
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)
name, age, weight = input('이름, 나이, 체중을 차례대로 입력해주세요.').split(',') #푸바오,3,100 이런식으로 입력
print(name)
print(age)
print(weight)
name = input('이름 입력 : ')
age = input('나이 입력 : ')
weight = input('무게 입력 : ')
print(name)
print(age)
print(weight)
num1 = input('첫번째 숫자를 입력하세요')
num2 = input('두번째 숫자를 입력하세요')
print('결과: ', num1 + num2) # str타입이므로 숫자가 이어서 나옴
# int(): 문자열을 숫자(정수)타입으로 변환
num1 = input('첫번째 숫자를 입력하세요 : ')
num2 = input('두번째 숫자를 입력하세요 : ')
print('결과: ', int(num1) + int(num2))
문제
# 국어 영어 수학 점수를 한꺼번에 입력받아 총점과 평균을 구하는 프로그램을 작성
# 입력방법 : 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)
# 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))
'▶ python' 카테고리의 다른 글
| 07_Python 파이썬 컬렉션 타입 - 딕셔너리 (1) | 2023.12.08 |
|---|---|
| 06_Python 파이썬 컬렉션 타입 - 세트 (0) | 2023.12.07 |
| 04_Python 파이썬 컬렉션 타입 - 리스트 (2) | 2023.12.07 |
| 03_Python 문자열 다루기 (1) | 2023.12.07 |
| 02_Python 파이썬의 변수 (1) | 2023.12.07 |