문제 출처 - 제로베이스 데이터 스쿨
name = input('이름입력 : ')
mail = input('메일입력 : ')
id = input('아디입력 : ')
pw = input('비번입력 : ')
privateNum1 = input('주민앞입력 : ')
privateNum2 = input('주민뒤입력 : ')
address = input('주소입력 : ')
print('-'*30)
print(f'{name}')
print(f'{mail}')
print(f'{id}')
pwstr = '*'*len(pw)
print(f'{pwstr}')
privatestr = privateNum2[0] + '*' * 6
print(f'{privateNum1} - {privatestr}')
print(f'{address}')
print('-' * 30)
#출력
이름입력 : kim
메일입력 : test@email.com
아디입력 : abc123
비번입력 : 12345678
주민앞입력 : 910101
주민뒤입력 : 1999999
주소입력 : seoul
------------------------------
kim
test@email.com
abc123
********
910101 - 1******
seoul
------------------------------
💡변수에서 '변수명[0]' 인덱스값(1번째 자리)을 쓰면 그 문자만 가져올 수 있다는 것을 확인했다.
weight = input('enter weight(g) : ') #예제에 단위 오류
height = input('enter height(cm) : ')
if weight.isdigit():
weight = int(weight) * 0.1
if height.isdigit():
height = int(height) * 0.01
print(weight)
print(height)
bmi = weight / (height ** 2)
print('bmi : %.2f' %(bmi))
#출력
enter weight(g) : 700
enter height(cm) : 172
70.0
1.72
bmi : 23.66
💡isdigit() 함수는 타입이 숫자인지를 확인하는 것이 아니라, 입력된 '문자열'의 타입이 '숫자로만' 이루어져 있는지를 확인하는 함수이다.
import datetime #모듈가져오기
today = datetime.datetime.today()
myAge = input('나이입력')
if myAge.isdigit():
after = 100 - int(myAge)
myHundred = today.year + after
print('100살은 {}년 뒤 {}년'.format(after, myHundred))
else:
print('잘못입력')
#출력
나이입력 : 40
100살은 60년 뒤 2083년
💡모듈의 함수를 import 시킨 후 함수를 불러올때는 '모듈명.함수명()' 형태이다.
korScore = int(input('국어점수입력 : '))
engScore = int(input('영어점수입력 : '))
mathScore = int(input('수학점수입력 : '))
total = korScore+engScore+mathScore
avg = total / 3
max = korScore
maxSub = 'korean'
if engScore > max:
max = engScore
maxSub = 'english'
if mathScore > max:
max = mathScore
maxSub = 'math'
min = korScore
minSub = 'korean'
if engScore < min:
min = engScore
minSub = 'english'
if mathScore < min:
min = mathScore
minSub = 'math'
diff = max - min
print('-' * 30)
print('총점 : {}'.format(total))
print('평균 : %.2f' %(avg))
print('최고점 : {}{}, 최저점 : {}{}, 최고최저차이 : {}'.format(max, maxSub, min, minSub, diff))
print('-' * 30)
#출력
국어점수입력 : 60
영어점수입력 : 80
수학점수입력 : 95
------------------------------
총점 : 235
평균 : 78.33
최고점 : math:95, 최저점 : korean:60, 최고최저차이 : 35
------------------------------
💡최고값과 최저값을 어떻게 구할까 궁금했는데, 미리 각각 한과목의 점수를 할당한 다음 if문의 조건문을 이용해서 구하는 방식을 알게 되었다.
money = int(input('금액(원)?'))
rate = float(input('이율(%)?'))
term = int(input('기간(년)?'))
target = money
for i in range(term):
target += (target * rate * 0.01) #이율땜시 기간에 100나눔
result = format(int(target) , ',') #단위 ','로 끊어주기
print('-' * 30)
print('원금 : {}'.format(money))
print('이율 : {}'.format(rate))
print('기간 : {}'.format(term))
print('{}년 후 받을금액 : {}원'.format(term,result))
print('-' * 30)
금액(원)?2000000
이율(%)?5
기간(년)?7
------------------------------
원금 : 2000000
이율 : 5.0
기간 : 7
7년 후 받을금액 : 2,814,200원
------------------------------
💡원금과 복리계산된 금액을 따로 지정하는 것을 생각하지 못했다.