40번 영상 : 1부터 100사이에 난수 10개 생성한 후 (2) 짝수 홀수 구분해서 리스트에 저장하고 (3)각각의 개수를 출력하는 프로그램
import random
nums = random.sample(range(1, 101), 10)
print(f'셍성 난수 : {nums}')
listOdd = []
listEve = []
for n in nums:
if n % 2 == 0:
listEve.append(n)
else:
listOdd.append(n)
print('짝수의 갯수 : {}'.format(len(listEve)))
print('홀수의 갯수 : {}'.format(len(listOdd)))
[Output]
41번 영상 : 1일 총 입장객이 100명이라고 할 때, 1일 전체 입장 요금을 구하는 프로그램 / 고객 나이 난수로 이용
import random
visitorAge = random.sample(range(1, 101), 100)
babyCnt = 0; childCnt = 0; teenCnt = 0; adultCnt = 0; seniorCnt = 0
childFee = 200; teenFee = 300; adultFee = 500
babyTotal = 0; childTotal = 0; teenTotal = 0
adultTotal = 0; seniorTotal = 0
for i in visitorAge:
if i < 8:
babyCnt += 1
elif i >= 8 and i <14:
childCnt += 1
elif i >= 14 and i < 20:
teenCnt += 1
elif i >= 20 and i <65:
adultCnt += 1
else:
seniorCnt += 1
childTotal = childFee * childCnt
teenTotal = teenFee * teenCnt
adultTotal = adultFee * adultCnt
totalFee = format(int(childTotal + teenTotal + adultTotal), ',')
print('-'*20)
print('영유아 \t : {}명 \t : {}원'.format(babyCnt, babyTotal))
print('어린이 \t : {}명 \t : {}원'.format(childCnt, childTotal))
print('청소년 \t : {}명 \t : {}원'.format(teenCnt, teenTotal))
print('성인 \t : {}명 \t : {}원'.format(adultCnt, adultTotal))
print('어르신 \t : {}명 \t : {}원'.format(seniorCnt, seniorTotal))
print('-'*20)
print('1일 요금 총 합계 : {}'.format(totalFee))
print('-'*20)
[Output]
💎 내 풀이와 다른 또 다른 방법
1)
visitorAge = random.sample(range(1, 101), 100)
==
visitor = []
for n in range(100):
visitors.append(random.randint(1, 100))
2)
babyCnt = 0; childCnt = 0; teenCnt = 0; adultCnt = 0; seniorCnt = 0
==
#한 번에 할당하기
babyCnt, childCnt, teenCnt, adultCnt, seniorCnt = 0,0,0,0,0
3)
Fee를 굳이 정의할 필요없이 total에서 한 번에 처리해도 됨
42번 영상_1 : 친구 이름 다섯 명을 리스트에 저장하고 오름차순과 내림차순으로 정렬해보자
friendsName = []
for i in range(5):
names = input('친구 이름 입력 : ')
friendsName.append(names)
friendsName2 = sorted(friendsName)
friendsName3 = sorted(friendsName, reverse=True)
print(f'친구들 : {friendsName}')
print(f'오름차순 : {friendsName2}')
print(f'내림차순 : {friendsName3}')
[Output]
🔎 내 풀이 초기에서 sort() 반환값이 None으로 나오는 에러가 나왔는데, 영상풀이와 입력의 다른 점은 없다고 생각했다. 그래서 나는 sorted()를 사용해 문제를 해결했다.
[내 풀이]
[영상 풀이]
💎💎 sort( ) vs sorted( ) 차이
🔑 None이 나온 이유는 순서에 있다.
sort()는 기존 리스트를 재정렬하는 것이기 때문에, None을 반환한다. 그래서 실제 friendsName을 가지고 와야 값이 실제로 반환된다.
(에러가 난 식)
list1 = [1,1,1,1,1]
list2 = list1.sort[]
print(list2)
[Output]
None
(결과값이 나온 식)
list1 = [1,1,1,1,1]
list2 = list1
list2.sort()
print(list2)
[Output]
[1,1,1,1,1]
🎯 이유를 알고 순서를 바꾸니 문제가 해결되었다