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
'컴퓨터 비전 > 파이썬 기초' 카테고리의 다른 글
7. 파이썬 컬렉션 타입 - 딕셔너리 (1) | 2023.12.08 |
---|---|
6. 파이썬 컬렉션 타입 - 세트 (0) | 2023.12.07 |
4. 파이썬 컬렉션 타입 - 리스트 (2) | 2023.12.07 |
3. 문자열 다루기 (1) | 2023.12.07 |
2. 파이썬의 변수 (1) | 2023.12.07 |