
사용자로부터 입력받은 개인정보를 포맷문자열을 이용해 출력
단, 비밀번호와 주민번호 뒷자리는 별표로 처리💡 'len()' 함수를 이용해 '*'을 얼마나 찍을지 구할 수 있다. 'str[0]'은 str에 저장된 문자열의 첫번재 문자값이다.
name = input('이름 입력 : ') ⬅# 'hong gil dong' 입력
mail = input('메일 입력 : ') ⬅# 'gildong@gmail.com'
userID = input('아이디 입력 : ') ⬅# 'hongID'
userPW = input('비밀번호 입력 : ') ⬅# '1234567890'
privateNum1 = input('주민번호 앞자리 입력 : ') ⬅# '840921'
privateNum2 = input('주민번호 뒷자리 입력 : ') ⬅# '2018543'
address = input('주소 입력 : ') ⬅# 'korea seoul'
>>> print('-' * 30)
>>> print(f' 이름 : {name}')
>>> print(f' 메일 : {mail}')
>>> print(f' 아이디 : {userID}')
pwStar = '*' * len(userPW) ⭐
>>> print(f' 비밀번호 : {pwStar}')
pvStar = privateNum2[0] + ('*' * (len(privateNum2) - 1)) ⭐
>>> print(f' 주민번호 : {privateNum1} - {privateNumStar}')
>>> print(f' 주소 : {address}')
>>> print('-' * 30')
# 실행결과
# ------------------------------
# 이름 : hong gil dong
# 메일 : gildong@gmail.com
# 아이디 : hongID
# 비밀번호 : **********
# 주민번호 : 840921 - 2******
# 주소 : korea seoul
# ------------------------------
체중(g)과 신장(cm)을 입력하면 BMI지수가 출력되는 프로그램
─> BMI = 몸무게(kg) / (신장(m) * 신장(m))💡 'isdigit()' 메서드는 문자열의 내용이 숫자인지 확인하여 맞으면 True, 아니면 False를 반환한다.
weight = input('체중 입력(g) : ') ⬅# 855 입력
height = input('신장 입력(cm) : ') ⬅# 187 입력
if weight.isdigit(): ⭐
weight = int(weight) / 10
if height.isdigit(): ⭐
height = int(height) / 100
>>> print('체중 : {}kg'.format(weight))
>>> print('신장 : {}m'.format(height))
bmi = weight / (height * height)
result = ''
if bmi <= 18.5:
result = '저체중'
elif bmi > 18.5 and bmi <= 23.0:
result = '정상체중'
elif bmi > 23.0 and bmi <= 25.0:
result = '과체중'
elif bmi > 25.0 and bmi <= 40.0:
result = '비만'
elif bmi > 40.0:
result = '심각한비만'
>>> print('BMI : %.2f -> %s입니다.' % (bmi, result))
# 실행결과
# 체중 : 85.5kg
# 신장 : 1.87m
# BMI : 24.45 -> 과체중입니다.
내 나이가 100살이 되는 해의 연도를 구하는 프로그램
💡 'datetime' 모듈을 가져와서 오늘의 날짜와 시간 데이터를 얻는다. 'strfdate()'함수와 출력 포맷을 사용해 오늘 날짜와 시간을 출력한다. '초'를 나타내는 출력 포맷('%S')은 대문자를 사용한다. 소문자('%s)는 문자열을 나타내는 출력 포맷이므로 쓰면 Error~!
import datetime
today = datetime.datetime.today() ⭐
curYear = today.year
>>> print(f'Today: {today.strftime('%y/%m/%d %h:%m:%S')}') ⭐
myAge = input('나이 입력 : ') ⬅# 27 입력
if myAge.isdigit():
deltaAge = 100 - int(myAge)
resultYear = curYear + deltaAge
>>> print('{}년({}년후)에 100살!!'.format(resultYear, deltaAge))
else:
>>> print('잘못 입력했습니다.')
# 실행결과
# Today: 23/12/06 09:17:51
# 2096년(73년후)에 100살!!
국어, 영어, 수학 점수 입력 후 총점, 평균, 최고점수와 과목, 최저점수와 과목, 그리고 최고 점수와 최저 점수의 차이를 각각 출력한다.
💡 'if'문을 사용하면 조건문이 총 4번 수행되데, 'if ~ else'문을 사용하면 조건문이 총 2번 수행되도록 할 수 있다.
korScore = int(input('국어 점수 입력 : ')) ⬅# 84
engScore = int(input('영어 점수 입력 : ')) ⬅# 67
mathScore = int(input('수학 점수 입력 : ')) ⬅# 91
totalScore = korScore + engScore + mathScore
avgScore = totalScore / 3
print('총점 : {} \n평균 : {:.2f}'.format(totalScore, avgScore))
maxScore = korScore; maxSubject = '국어'
minScore = korScore; minSubject = '국어'
if engScore > maxScore:
maxScore = engScore
maxSubject = '영어'
else:
minScore = engScore
minSubject = '영어'
if mathScore > maxScore:
maxScore = mathScore
maxSubject = '수학'
elif mathScore < minScore:
minScore = mathScore
minSubject = '수학'
difScore = maxScore - minScore
>>> print('-' * 30)
>>> print(' 최고 점수 과목(점수) : {}({})'.format(maxSubject, maxScore))
>>> print(' 최저 점수 과목(점수) : {}({})'.format(minSubject, minScore))
>>> print(' 최고, 최저 점수 차이 : {}'.format(difScore))
>>> print('-' * 30')
# 실행결과
# 총점 : 242
# 평균 : 80.67
# ------------------------------
# 최고 점수 과목(점수) : 수학(91)
# 최저 점수 과목(점수) : 영어(67)
# 최고, 최저 점수 차이 : 24
# ------------------------------
금액, 이율, 거치 기간을 입력하면 복리로 계산하는 프로그램
💡 단위구분문자(세자리 마다 콤마)를 찍어주는 방법으로 'format()' 함수를 사용할 수 있고, ':,' 형식문자를 사용할 수도 있다.
depositMoney = int(input('예금 금액 입력(원) : ')) ⬅# 2000000
depositRate = float(input('예금 이율 입력(%) : ')) ⬅# 5.1
depositTerm = int(input('예금 기간 입력(년) : ')) ⬅# 6
resultMoney = depositMoney
for i in range(depositTerm):
resultMoney += resultMoney * depositRate * 0.01
resultfMoney = format(int(resultMoney), ',') ⭐
>>> print('-' * 30)
>>> print(' 이율 : {}%'.format(depositRate))
>>> print(' 원금 : {:,}원'.format(depositMoney)) ⭐
>>> print(' {}년 후 금액 : {}원'.format(depositTerm, resultfMoney))
>>> print('-' * 30')
# 실행결과
# ------------------------------
# 이율 : 5.1%
# 원금 : 2,000,000원
# 6년 후 금액 : 2,695,543원
# ------------------------------
고도가 60m 올라갈 때마다 기온이 0.8도 내려 간다는 조건 하에서 고도를 입력했을 때 기온이 출력되는 프로그램 (단, 지면 온도는 29도)
💡 'divmod()' 함수를 사용해 몫과 나머지를 같이 구한다. 'divmod()'함수는 결과를 tuple형으로 반환해 주고, 'steps, restAlt ='에서 다음과 같은 형태로 할당해 준다. steps: int = (divmod(altitude, altStep))[0], restAlt: int = (divmod(altitude, altStep))[1]
groundTemp = 29
altStep = 60
stepTemp = 0.8
altitude = 790 # int(input('고도 입력 : '))
steps, restAlt = divmod(altitude, altStep) ⭐
targetAltTemp = groundTemp - (steps * 0.8)
if restAlt != 0:
targetAltTemp -= stepTemp
print('지면 온도 : {}도'.format(groundTemp))
print('고도 {}m의 기온 : {}도'.format(altitude, targetAltTemp))
# 실행결과
# 지면 온도 : 29도
# 고도 790m의 기온 : 17.8도