튜플은 수정이 불가하기 때문에 리스트로 변환 후 정렬하자.
sort() 함수를 이용하면 아이템을 정렬할 수 있다.
# 문자일 때
students = ('홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은')
print('students type: {}' .format(type(students)))
print('students: {}' .format(students))
students = list(students)
students.sort()
print('students type: {}' .format(type(students)))
print('students: {}' .format(students))
students = tuple(students)
print('students type: {}' .format(type(students)))
print('students: {}' .format(students))
# 숫자일 때
numbers = (2, 50, 0.12, 1, 9, 7, 17, 35, 100, 3,14)
print('numbers type: {}' .format(type(numbers)))
print('numbers: {}' .format(numbers))
numbers = list(numbers)
numbers.sort(reverse=True)
print('numbers type: {}' .format(type(numbers)))
print('numbers: {}' .format(numbers))
numbers = tuple(numbers)
print('numbers type: {}' .format(type(numbers)))
print('numbers: {}' .format(numbers))
# 결괏값:
students type: <class 'tuple'>
students: ('홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은')
students type: <class 'list'>
students: ['강호동', '김지은', '박승철', '박찬호', '이용규', '홍길동']
students type: <class 'tuple'>
students: ('강호동', '김지은', '박승철', '박찬호', '이용규', '홍길동')
numbers type: <class 'tuple'>
numbers: (2, 50, 0.12, 1, 9, 7, 17, 35, 100, 3, 14)
numbers type: <class 'list'>
numbers: [100, 50, 35, 17, 14, 9, 7, 3, 2, 1, 0.12]
numbers type: <class 'tuple'>
numbers: (100, 50, 35, 17, 14, 9, 7, 3, 2, 1, 0.12)
sorted() 함수를 이용하면 튜플도 정렬할 수 있다.
sorted()sms 리스트 자료형을 반환한다.
students = ('홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은')
sortedStudents = sorted(students)
print('students type: {}' .format(type(sortedStudents)))
print('students: {}' .format(sortedStudents))
# 결괏값:
students type: <class 'list'>
students: ['강호동', '김지은', '박승철', '박찬호', '이용규', '홍길동']
for문을 이용하면 튜플의 아이템을 자동으로 참조할 수 있다.
cars = '그랜저', '쏘나타', '말리부', '카니발', '쏘렌토'
for i in range(len(cars)):
print(cars[i])
for car in cars:
print(car)
# 결괏값:
그랜저
쏘나타
말리부
카니발
쏘렌토
그랜저
쏘나타
말리부
카니발
쏘렌토
studentCnts = (1, 19), (2, 20), (3, 22), (4, 18), (5, 21)
for i in range(len(studentCnts)):
print('{}학급 학생수: {}' .format(studentCnts[i][0], studentCnts[i][1]))
for classNo, cnt in studentCnts:
print('{}학급 학생수: {}' .format(classNo, cnt))
# 결괏값:
1학급 학생수: 19
2학급 학생수: 20
3학급 학생수: 22
4학급 학생수: 18
5학급 학생수: 21
1학급 학생수: 19
2학급 학생수: 20
3학급 학생수: 22
4학급 학생수: 18
5학급 학생수: 21
for문과 if문을 이용해서 과락 과목 출력하기
사용자가 국어, 영어, 수학, 과학, 국사 점수를 입력하면 과락 과목과 점수를 출력하는 프로그램을 만들어보자.
minScore = 60
korScore = int(input('국어 점수 입력: '))
engScore = int(input('영어 점수 입력: '))
matScore = int(input('수학 점수 입력: '))
sciScore = int(input('과학 점수 입력: '))
hisScore = int(input('국사 점수 입력: '))
scores = (
('국어', korScore),
('영어', engScore),
('수학', matScore),
('과학', sciScore),
('국사', hisScore))
for subject, score in scores:
if score < minScore:
print('과락 과목: {}, 점수: {}'.format(subject, score))
# 결괏값:
국어 점수 입력: 80
영어 점수 입력: 59
수학 점수 입력: 66
과학 점수 입력: 70
국사 점수 입력: 50
과락 과목: 영어, 점수: 59
과락 과목: 국사, 점수: 50
아래의 표와 튜플을 이용해서 학급 학생 수가 가장 작은 학갑과 가장 많은 학급을 출력해보자.
studentCnts = (1, 18), (2, 19), (3, 23), (4, 21), (5, 20), (6, 22), (7, 17)
minClassNo = 0; maxClassNo = 0
minCnt = 0; maxCnt = 0
for classNo, cnt in studentCnts:
if minCnt == 0 or minCnt > cnt:
minClassNo = classNo
minCnt = cnt
if maxCnt < cnt:
maxClassNo = classNo
maxCnt = cnt
print('학생 수가 가장 적은 학급(학생수): {}학급({}명)' .format(minClassNo, minCnt))
print('학생 수가 가장 많은 학급(학생수): {}학급({}명)' .format(maxClassNo, maxCnt))
# 결괏값:
학생 수가 가장 적은 학급(학생수): 7학급(17명)
학생 수가 가장 많은 학급(학생수): 3학급(23명)
while문을 이용하면 다양한 방법으로 아이템 조회가 가능하다.
# 방법1
cars = '그랜저', '쏘나타', '말리부', '카니발', '쏘렌토'
n = 0
while n < len(cars):
print(cars[n])
n += 1
# 방법2 - flag 변수 사용
n = 0
flag = True
while flag:
print(cars[n])
n += 1
if n == len(cars):
flag = False
# 방법3
n = 0
while True:
print(cars[n])
n += 1
if n == len(cars):
break
# 결괏값:
그랜저
쏘나타
말리부
카니발
쏘렌토
그랜저
쏘나타
말리부
카니발
쏘렌토
그랜저
쏘나타
말리부
카니발
쏘렌토
while문과 if문을 이용해서 과락 과목 출력하기
minScore = 60
scores = (
('국어', 58),
('영어', 77),
('수학', 89),
('과학', 99),
('국사', 50))
n = 0
while n < len(scores):
if scores[n][1] < minScore:
print('과락 과목: {}, 점수: {}'.format(scores[n][0], scores[n][1]))
n += 1
# 결괏값:
과락 과목: 국어, 점수: 58
과락 과목: 국사, 점수: 50
아래의 표와 튜플을 이용해서 학급 학생 수가 가장 작은 학갑과 가장 많은 학급을 출력해보자.
# minScore = 60
#
# scores = (
# ('국어', 58),
# ('영어', 77),
# ('수학', 89),
# ('과학', 99),
# ('국사', 50))
#
# n = 0
# while n < len(scores):
# if scores[n][1] < minScore:
# print('과락 과목: {}, 점수: {}'.format(scores[n][0], scores[n][1]))
# n += 1
# 실습2
studentCnts = (1, 18), (2, 19), (3, 23), (4, 21), (5, 20), (6, 22), (7, 17)
minClassNo = 0; maxClassNo = 0
minCnt = 0; maxCnt = 0
n = 0
while n < len(studentCnts):
if minCnt == 0 or minCnt > studentCnts[n][1]:
minClassNo = studentCnts[n][0]
minCnt = studentCnts[n][1]
if maxCnt < studentCnts[n][1]:
maxClassNo = studentCnts[n][0]
maxCnt = studentCnts[n][1]
n += 1
print('학생 수가 가장 적은 학급(학생수): {}학급({}명)' .format(minClassNo, minCnt))
print('학생 수가 가장 많은 학급(학생수): {}학급({}명)' .format(maxClassNo, maxCnt))
# 결괏값:
학생 수가 가장 적은 학급(학생수): 7학급(17명)
학생 수가 가장 많은 학급(학생수): 3학급(23명)