Eggs Sunny Side Up
본문 바로가기
Algorithm/초보자를 위한 파이썬 300제

07. 파이썬 분기문 121 ~ 130

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

user = str(input("문자 입력 : "))
if(user.islower()) :
    print(user.upper())
elif(user.isupper()) :
    print(user.lower())

122
점수 구간에 해당하는 학점이 아래와 같이 정의되어 있다. 사용자로부터 score를 입력받아 학점을 출력하라.  
점수	학점  
81 - 100 A  
61 - 80	B  
41 - 60	C  
21 - 40	D  
0 - 20	E  

grade = int(input("점수 입력 : "))
if(grade<=20) :
    print("E")
elif(grade<=40) :
    print("D")
elif(grade<=60) :
    print("C")
elif(grade<=80) :
    print("B")
else :
    print("A")

user에 '100 달러'를 입력하면,

num 변수에 100

currency 변수에 달러가 대입.

환율[currency]는 환율['달러']로 딕셔너리에서 달러의 value값이 대입.

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

환율 = {'달러':1167, '엔':1.096, '유로':1268, '위안':171}
user = input("입력 : ")
num, currency = user.split()
print(float(num) * 환율[currency], '원')

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

num1 = int(input("number1 : "))
num2 = int(input("number2 : "))
num3 = int(input("number3 : "))

if num1>=num2 and num1>=num3 :
    print(num1)
elif num2>=num1 and num2>=num3 :
    print(num2)
else : 
    print(num3)
125
휴대폰 번호 앞자리에 따라 통신사는 아래와 같이 구분된다. 사용자로부터 휴대전화 번호를 입력 받고, 통신사를 출력하는 프로그램을 작성하라.  
번호	통신사  
011	SKT  
016	KT  
019	LGU  
010	알수없음  

dic = {'SKT':'011', 'KT':'016', 'LGU':'019', '알수없음':'010'}
dic.values()
list(dic.keys())[0]

phone = input("휴대전화번호 입력 : ")
num = phone.split("-")[0]
num

if num == list(dic.values())[0] :
    print(f"당신은 {list(dic.keys())[0]} 사용자입니다.")
if num == list(dic.values())[1] :
    print(f"당신은 {list(dic.keys())[1]} 사용자입니다.")
if num == list(dic.values())[2] :
    print(f"당신은 {list(dic.keys())[2]} 사용자입니다.")
    
126
우편번호는 5자리로 구성되는데, 앞의 세자리는 구를 나타낸다. 예를들어, 강북구의 경우 010, 011, 012 세 자리로 시작한다.  
사용자로 부터 5자리 우편번호를 입력받고 구를 판별하라

number = input("우편번호 : ")
if number[:3] in ['010', '011', '012'] :
    print('강북구')
elif number[:3] in ['013', '014', '015'] :
    print('도봉구')
elif number[:3] in ['016', '017', '018', '019'] :
    print('노원구')

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

user = input("주민등록번호 : ")
if user.split("-")[1]in ['1', '3'] :
    print("남자")
elif user.split("-")[1]in ['2', '4'] :
    print("여자")

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

user = input("주민등록번호 : ")
number = user.split("-")[1]
if '00' <= number[1:3] <= '08' :
    print('서울입니다.')
elif '09' <= number[1:3] <= '12' :
    print('부산입니다.')
else :
    print("정보오류")
129
주민등록번호는 13자리로 구성되는데 마지막 자리수는 주민등록번호의 유효성을 체크하는데 사용된다. 먼저 앞에서부터 12자리의 숫자에 2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5를 차례로 곱한 뒤 그 값을 전부 더한다. 연산 결과 값을 11로 나누면 나머지가 나오는데 11에서 나머지를 뺀 값이 주민등록번호의 마지막 번호가 된다.  

821010-1635210에 대해서 계산을 해보면 마지막 자리는 4가 되어야 함을 알 수 있다. 즉, 821010-1635210은 유효하지 않은 주민등록번호임을 알 수 있다.

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

user = input("주민등록번호 : ")
number1 = user.split("-")[0]
number2 = user.split("-")[1]
print(int(number1[:]))
print(int(number2[:]))

list = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5, 6]

result1 = 0
result2 = 0

for i in range(len(number1)):
    result1 += int(number1[i])*list[i]
for i in range(len(number2)) :
    result2 += int(number2[i])*list[i+6]
result = 11-(result1+result2)%11

if number2[-1]==result :
    print("유효한 주민등록번호입니다.")
else :
    print("유효하지 않은 주민등록번호입니다.")
130
아래 코드는 비트코인의 가격 정보를 딕셔너리로 가져오는 코드이다.

import requests
btc = requests.get("https://api.bithumb.com/public/ticker/").json()['data']

btc 딕셔너리 안에는 시가, 종가, 최고가, 최저가 등이 저장되어 있다. 최고가와 최저가의 차이를 변동폭으로 정의할 때 (시가 + 변동폭)이 최고가 보다 높을 경우 "상승장", 그렇지 않은 경우 "하락장" 문자열을 출력하라.

btc

변동폭 = int(btc['max_price'])-int(btc['min_price'])
변동폭

if(변동폭+int(btc['opening_price'])>int(btc['max_price'])) :
    print('상승장')
else :
    print('하락장')

댓글