4 분 소요

121

사용자로부터 문자 한 개를 입력 받고, 소문자일 경우 대문자로, 대문자 일 경우, 소문자로 변경해서 출력하라.

a A

word = input("문자 입력: ")
if word.islower():
    print(word.upper())
else:
    print(word.lower())
문자 입력: b
B

122

점수 구간에 해당하는 학점이 아래와 같이 정의되어 있다. 사용자로부터 score를 입력받아 학점을 출력하라.

점수 학점 81~100 A 61~80 B 41~60 C 21~40 D 0~20 E

score: 83 grade is A

score = int(input("점수 입력: "))
if 80 < score <= 100:
    print('grade is A')
elif 60 < score <= 80:
    print('grade is B')
elif 40 < score <= 60:
    print('grade is C')
elif 20 < score <= 40:
    print('grade is D')
elif 0 < score <= 20:
    print('grade is E')
else:
    print("다시 입력해주세요")
점수 입력: -5
다시 입력해주세요

123

사용자로부터 달러, 엔, 유로, 또는 위안 금액을 입력받은 후 이를 원으로 변환하는 프로그램을 작성하라. 각 통화별 환율은 다음과 같다. 사용자는 100 달러, 1000 엔, 13 유로, 100 위안과 같이 금액과 통화명 사이에 공백을 넣어 입력한다고 가정한다.

통화명 환율 달러 1167 엔 1.096 유로 1268 위안 171

입력: 100 달러 116700.00 원

달러 = 1167; = 1.096;유로 = 126;위안 = 171
user = input("금액 입력: ")
user = user.split()
if '달러' in user:
    print(float(user[0]) * 달러 ,"원")
elif '엔' in user:
    print(float(user[0]) * , "원")
elif '유로' in user:
    print(float(user[0]) * 유로,"원")
elif '위안' in user:
    print(float(user[0]) * 위안,"원")
금액 입력: 300 위안
51300 원

124

사용자로부터 세 개의 숫자를 입력 받은 후 가장 큰 숫자를 출력하라.

input number1: 10 input number2: 9 input number3: 20 20

numbers = []
for i in range(3):
    i = int(input("숫자 입력"))
    numbers.append(i)
print(max(numbers))
숫자 입력3
숫자 입력6
숫자 입력7
7

125

휴대폰 번호 앞자리에 따라 통신사는 아래와 같이 구분된다. 사용자로부터 휴대전화 번호를 입력 받고, 통신사를 출력하는 프로그램을 작성하라.

번호 통신사 011 SKT 016 KT 019 LGU 010 알수없음

휴대전화 번호 입력: 011-345-1922 당신은 SKT 사용자입니다.

com = {'010':'알수없음','019':'LGU','016' : 'kt','011':'skt'}
phone = input("번호 입력: ")
if phone[0:3] in list(com.keys()):
    print(f'당신은 {com[phone[0:3]]} 사용자입니다.')

번호 입력: 011-2929-2929
당신은 skt 사용자입니다.

126

우편번호는 5자리로 구성되는데, 앞의 세자리는 구를 나타낸다. 예를들어, 강북구의 경우 010, 011, 012 세 자리로 시작한다.

  • 0 1 2 3 4 5 6 7 8 9 01 강북구 강북구 강북구 도봉구 도봉구 도봉구 노원구 노원구 노원구 노원구 사용자로 부터 5자리 우편번호를 입력받고 구를 판별하라

우편번호: 01400 도봉구

d = ['강북구','강북구','강북구','도봉구','도봉구','도봉구','노원구','노원구','노원구','노원구']
user = input("우편번호 5자리 입력:")
user_number = int(user[2])
print(d[user_number])
우편번호 5자리 입력:01400
도봉구

127

주민등록번호 뒷 자리 7자리 중 첫째 자리는 성별을 나타내는데, 1, 3은 남자 2, 4는 여자를 의미한다. 사용자로부터 13자리의 주민등록번호를 입력 받은 후 성별 (남자, 여자)를 출력하는 프로그램을 작성하라.

주민등록번호: 821010-1635210 남자

numbers = input("주민등록번호 입력 : ")
if numbers[7] == 1 or 3:
    print("남자")
elif numbers[7] == 2 or 4:
    print("여자")
else:
    print("다시 입력해주세요")

주민등록번호 입력 : 192930-1939211
남자

128

주민등록번호의 뒷 자리 7자리 중 두번째와 세번째는 지역코드를 의미한다. 주민 등록 번호를 입력 받은 후 출생지가 서울인지 아닌지 판단하는 코드를 작성하라

지역코드 출생지 00 ~ 08 서울 09 ~ 12 부산


numbers = input("주민등록번호 입력 : ")
if 0 <= int(numbers[8:10]) < 9 :
    print("서울")
elif 9 <= int(numbers[8:10]) <13 :
    print("부산")
else:
    print("?")
주민등록번호 입력 : 941123-1084931
서울

129

주민등록번호는 13자리로 구성되는데 마지막 자리수는 주민등록번호의 유효성을 체크하는데 사용된다. 먼저 앞에서부터 12자리의 숫자에 2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5를 차례로 곱한 뒤 그 값을 전부 더한다. 연산 결과 값을 11로 나누면 나머지가 나오는데 11에서 나머지를 뺀 값이 주민등록번호의 마지막 번호가 된다.

8 2 1 0 1 0 - 1 6 3 5 2 1 0 x 2 3 4 5 6 7 8 9 2 3 4 5 —————————– 1차 계산: (82 + 23 + 14 + 05 + 16 + 07 + 18 + 69 + 32 + 53 + 24 + 15) = (128 % 11) = 7 2차 계산: 11 -7 = 4 위와 같이 821010-1635210에 대해서 계산을 해보면 마지막 자리는 4가 되어야 함을 알 수 있다. 즉, 821010-1635210은 유효하지 않은 주민등록번호임을 알 수 있다.

다음과 같이 사용자로부터 주민등록번호를 입력받은 후 주민등록번호가 유효한지를 출력하는 프로그램을 작성하라.

주민등록번호: 821010-1635210 유효하지 않은 주민등록번호입니다.

mul_list = [2,3,4,5,6,7,8,9,2,3,4,5]
number = input("주민번호 입력")
numbers = number.replace("-","")
add_list =[]
x = 0
for i in mul_list:
    add_list.append(i * int(numbers[x]))
    x = x+1

minus = sum(add_list) % 11
if 11 - minus != int(number[-1]):
    print("유효하지 않은 주민등록번호입니다.")
else:
    print("유효한 주민등록번호입니다.")  
주민번호 입력821010-1635210
유효하지 않은 주민등록번호입니다.
add_list
[16, 6, 4, 0, 6, 0, 8, 54, 6, 15, 8, 5]
minus
7

130

아래 코드는 비트코인의 가격 정보를 딕셔너리로 가져오는 코드이다.

import requests btc = requests.get(“https://api.bithumb.com/public/ticker/”).json()[‘data’] btc 딕셔너리 안에는 시가, 종가, 최고가, 최저가 등이 저장되어 있다. 최고가와 최저가의 차이를 변동폭으로 정의할 때 (시가 + 변동폭)이 최고가 보다 높을 경우 “상승장”, 그렇지 않은 경우 “하락장” 문자열을 출력하라.

Key Name Description opening_price 최근 24시간 내 시작 거래금액 closing_price 최근 24시간 내 마지막 거래금액 min_price 최근 24시간 내 최저 거래금액 max_price 최근 24시간 내 최고 거래금액

import requests
btc = requests.get("https://api.bithumb.com/public/ticker/").json()['data']
btc
{'opening_price': '78164000',
 'closing_price': '79879000',
 'min_price': '77442000',
 'max_price': '80121000',
 'units_traded': '1188.78059542',
 'acc_trade_value': '93237662946.2727',
 'prev_closing_price': '78178000',
 'units_traded_24H': '2582.00451378',
 'acc_trade_value_24H': '202534238283.416',
 'fluctate_24H': '1215000',
 'fluctate_rate_24H': '1.54',
 'date': '1636936861825'}
btc_move = int(btc['max_price']) - int(btc['min_price'])
if int(btc['opening_price']) + btc_move > int(btc['max_price']) :
    print('상승장')
else :
    print('하락장')
상승장

댓글남기기