0

Как можно перенести case c pascal на python. Идеи не приходят

case k of 
    9:write('девятьсот '); 
    8:write('восемьсот '); 
    7:write('семьсот '); 
    6:write('шестьсот '); 
    5:write('пятьсот '); 
    4:write('четыреста '); 
    3:write('триста '); 
    2:write('двести '); 
    1:write('сто '); 
end;
jfs
  • 52,361

2 Answers2

1

Если case k of в Паскале является аналогом switch в С, то ваш пример на Питоне можно в виде списка реализовать:

print(['', 'сто', 'двести', 'триста', .., 
       'девятьсот'][k], end=' ')

Другие варианты посмотрите в уже упомянутом вопросе: Есть ли в Python оператор switch case?

jfs
  • 52,361
  • Тоже выдает ошибку keyerror 0 – Сергей Mar 02 '17 at 07:51
  • 1
    @Сергей: приведённый код не может KeyError выдать ни при каком значении k. Вы можете получить IndexError, TypeError, но не KeyError. Убедитесь что вы правильный файл запускаете. live example – jfs Mar 02 '17 at 08:35
0

Вариант №1 if elif

k=int(input("введи к"))
if k==9 :print("девятьсот ") 
elif k==8 :print("восемьсот ") 
elif k==7 :print("семьсот ") 
elif k==6 :print("шестьсот ") 
elif k==5 :print("пятьсот ") 
elif k==4 :print("четыреста ") 
elif k==3 :print("триста ") 
elif k==2 :print("двести ") 
elif k==1 :print("сто ")

Вариант №2 Используем Словари

#!/usr/bin/env python3
#-*- coding: utf-8 -*-

k=int(input("введи к"))
dictionary={1:"сто ",2:"двести ",3:"триста ",4:"четыреста ",5:"пятьсот ",6:"шестьсот ",7:"семьсот ",8:"восемьсот ",9:"девятьсот "}
print(dictionary[k])
  • Вариант второй выдает ошибку

    Traceback (most recent call last):

    print(dictionary[k])
    

    KeyError: 0

    – Сергей Mar 02 '17 at 03:05
  • @Артем, чтобы дополнить ответ, отредактируйте его. Комментарии не очень подходят для размещения кода. – insolor Mar 02 '17 at 21:50
  • @insolor Сделано –  Mar 02 '17 at 21:56