본문 바로가기

배운다/파이썬

[파이썬] 나라 수도 출력 633 : 반복제어문1 - 자가진단6

문제

아래와 같이 나라 이름을 출력하고 숫자를 입력받아 해당하는 나라의 수도를 출력하는 작업을 반복하다가 해당하는 번호 이외의 숫자가 입력되면 "none"라고 출력한 후 종료하는 프로그램을 작성하시오.

*각 나라의 수도:

대한민국 = 서울(Seoul)

미국 = 워싱턴(Washington)

일본 = 동경(Tokyo)

중국 = 북경(Beiging)

*입출력시 모양은 "입.출력예"와 같이 하시오.

 

입.출력 예

1. Korea

2. USA

3. Japan

4. China

number? 1

 

Seoul

 

1. Korea

2. USA

3. Japan

4. China

number? 5

 

none

풀이 1 )

 

Land = {'Korea': '1', 'USA': '2', 'Japan': '3', 'China': '4'}

print(Land['Korea'])

while True :

    num = int(input("1. Korea\n2. USA\n3. Japan\n4. China\nnumber? "))

    if num == 1:

        print("Seoul")

    elif num == 2 :

        print("Washington")

    elif num == 3 :

        print("Tokyo")

    elif num == 4 :

        print("Beijing")

    else :

        print("none")
        break

 

풀이 2 )

 

i = 1

while i != 0:
    print('1. Korea\n2. USA\n3. Japan\n4. China')
    capital = int(input('number? '))

    if capital == 1:
        print('\nSeoul')
        i = 1
    elif capital == 2:
        print('\nWashington')
        i = 2
    elif capital == 3:
        print('\nTokyo')
        i = 3
    elif capital == 4:
        print('\nBeijing')
        i = 4
    else:
        print('\nnone')
        break

풀이 3 )

 

cities = ["Seoul", "Washington", "Tokyo", "Beijing"]
while True:
    print("1. Korea\n2. USA\n3. Japan\n4. China")
    num = int(input("number? "))
    if num not in range(1,5):
        print("\nnone")
        break
    print(f"\n{cities[num-1]}\n")