- 숫자로 이루어진 리스트에서 사용자가 입력한 숫자를 검색하는 모듈을 다음 요건에 따라 만들어 보자.
코드1
def searchNumByLineAlgorithm(ns, sn):
searchResultIdx = -1
print(f'Number: {ns}')
print(f'Search Number: {sn}')
n = 0
while True:
if n == len(ns):
print('Search FAIL!!')
break
if ns[n] == sn:
searchResultIdx = n
print('Search SUCCESS!!')
print(f'Search result Index: {searchResultIdx}')
break
n += 1
return searchResultIdx
코드2
import lineMod
import random
if __name__ == '__main__':
rNums = random.sample(range(1,21),10)
searchNum = int(input('Input search number: '))
resultIdx = lineMod.searchNumByLineAlgorithm(rNums, searchNum)
if resultIdx == -1:
print('No result found')
print(f'search result index: {resultIdx}')
else:
print('>>> Search Results <<<')
print(f'search result index: {resultIdx}')
print(f'search result number: {rNums[resultIdx]}')
출력

- 숫자로 이루어진 리스트에서 아이템의 순위를 출력하고, 순위에 따라 아이템을 정렬하는 모듈을 만들어보자.
코드1
def rankAlgorithm(ns):
ranks = [0 for i in range(len(ns))]
for idx, n1 in enumerate(ns):
for n2 in ns:
if n1 < n2:
ranks[idx] += 1
print(f'nums: {ns}')
print(f'ranks: {ranks}')
for i, n in enumerate(ns):
print(f'num: {n} \t rank: {ranks[i]+1}')
sortedNums = [0 for n in range(len(ns))]
for idx, rank in enumerate(ranks):
sortedNums[rank] = ns[idx]
return sortedNums
코드2
import random
import rankMod
if __name__ =='__main__':
nums = random.sample(range(50,101), 20)
sNums = rankMod.rankAlgorithm(nums)
print(f'sNums: {sNums}')
출력
