Да, можно использовать словари для определения склонения названия валюты в нужном падеже. Вот как можно улучшить код, чтобы он был более понятным и эффективным:
1. Создайте словарь с правилами склонения названия валюты в каждом падеже, например:
```python
currency_cases = {
'рубль': {
'именительный': 'рубль',
'родительный': 'рубля',
'дательный': 'рублю',
'винительный': 'рубль',
'творительный': 'рублём',
'предложный': 'рубле',
},
'рублей': {
'именительный': 'рублей',
'родительный': 'рублей',
'дательный': 'рублям',
'винительный': 'рублей',
'творительный': 'рублями',
'предложный': 'рублях',
}
}
```
2. Используйте функцию для определения нужного склонения валюты в зависимости от числа:
```python
def get_currency_case(number, currency):
# Определяем правило склонения валюты в зависимости от числа
if number % 10 == 1 and number % 100 != 11:
case = 'именительный'
elif 2 <= number % 10 <= 4 and (number % 100 < 10 or number % 100 >= 20):
case = 'родительный'
else:
case = 'винительный'
# Возвращаем склонение валюты
return currency_cases[currency][case]
```
3. Примените функцию при выводе числа и склонения валюты:
```python
number = 228
currency = 'рубль'
print(f"{number} {get_currency_case(number, currency)}")
```
Таким образом, код будет работать эффективно и понятно, и будет склонять название валюты в нужный падеж.