- 1부터 사용자가 입력한 숫자까지의 약수와 소수를 리스트에 각각 저장하고, 이것을 출력하는 프로그램을 만들어보자.
코드
inputNum = int(input('1보다 큰 정수 입력: '))
listA = []
listB = []
for n in range(1,inputNum+1):
if n == 1:
listA.append(n)
else:
if inputNum % n == 0:
listA.append(n)
for number in range(2, inputNum+1):
flag = True
for n in range(2,number):
if number % n == 0:
flag = False
break
if flag:
listB.append(number)
print('약수 : {}'.format(listA))
print('소수 : {}'.format(listB))
출력

- 4개의 숫자 중 서로 다른 숫자 2개를 선택해서 만들 수 있는 모든 경우의 수를 출력하는 프로그램을 만들어보자.
코드
numbers = [4, 6, 7, 9]
result = []
for n1 in numbers:
for n2 in numbers:
if n1 == n2:
continue
result.append([n1, n2])
print(f'result: {result}')
print(f'result length: {len(result)}')
# n! / (n-r)!
import math
pernutation = math.factorial(len(numbers)) / math.factorial(len(numbers) - 2)
print(f'pernutation: {int(pernutation)}')
출력

- 대학생 길동이의 1,2,3학년의 성적은 다음과 같다. 졸업할 때 4.0이상의 학점을 받기 위해 길동이가 받아야 하는 4학년 1,2학기의 최소 학점을 구해보자.
코드
scores = (3.7, 4.2), (2.9, 4.3), (4.1, 4.2)
total = 0
for s1 in scores:
for s2 in s1:
total += s2
total = round(total, 1)
avg = round((total / 6),1)
print(f'3학년 총학점: {total}')
print(f'3학년 평균 : {avg}')
grade4TagetScore = round((4.0 * 8 - total), 1)
print(f'4학년 목표 총학점: {grade4TagetScore}')
minScore = round((grade4TagetScore), 1)
print(f'4학년 한학기 최소학점: {minScore}')
출력

- 학급 별 학생 수를 나타낸 튜플을 이요해서 요구 사항에 맞는 데이터를 출력하는 프로그램을 만들어보자.
코드
studentCnt = (
{'cls01':18},
{'cls02':21},
{'cls03':20},
{'cls04':19},
{'cls05':22},
{'cls06':20},
{'cls07':23},
{'cls08':17},
)
totalCnt = 0
minStdCnt = 0; minCls = ''
maxStdCnt = 0; maxCls = ''
deviation = []
for idx, dic in enumerate(studentCnt):
for k, v in dic.items():
totalCnt += v
if minStdCnt == 0 or minStdCnt > v:
minStdCnt = v
minCls = k
if maxStdCnt < v:
maxStdCnt = v
maxCls = k
print(f'전체 학생 수: {totalCnt}')
avgCnt = totalCnt / len(studentCnt)
print(f'평균 학생 수: {avgCnt}')
print(f'학생 수가 가장 적은 학급: {minCls}({minStdCnt})')
print(f'학생 수가 가장 많은 학급: {maxCls}({maxStdCnt})')
for idx, dic in enumerate(studentCnt):
for k, v in dic.items():
deviation.append(v - avgCnt)
print(f'학급별 학생 편차: {deviation}')
출력

- 삼각형부터 십각형까지의 내각의 합과 내각을 딕셔너리에 저장하는 프로그램을 만들어보자.
n각형의 내각의 합 : 180 * (n - 2)
코드
dic = {}
for n in range(3, 11):
hap = 180 * (n - 2)
ang = int(hap / n)
dic[n] = [hap, ang]
print(dic)
출력

- 딕셔너리를 이용해서 5명의 회원을 가입 받고 전체 회원 정보를 출력하고 삭제하는 프로그램을 만들어보자.
코드
members = {}
n = 1
while n < 6:
mail = input('메일 입력: ')
pw = input('비번 입력: ')
if mail in members:
print('이미 사용 중인 메일 계정입니다.')
continue
else:
members[mail] = pw
n += 1
for key in members.keys():
print(f'{key}: {members[key]}')
while True:
delMail = input('삭제할 계정(메일) 입력: ')
if delMail in members:
delPw = input('비번 입력: ')
if members[delMail] == delPw:
del members[delMail]
print(f'{delMail} 계정 삭제 완료!!')
break
else:
print('비번 확인 요망!!')
else:
print('계정 확인 요망!!')
for key in members.keys():
print(f'{key}: {members[key]}')
출력
