Вопрос задан 19.07.2023 в 03:34. Предмет Информатика. Спрашивает Осипова София.

напишите любое число от 1 до 1000 введеное пользователем русскими буквами например 2-два,150-сто

пятьдесят python​
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Котик Ксения.

nums = {

"один":1, "два":2, "три":3, "четыре":4, "пять":5, "шесть":6, "семь":7, "восемь":8, "девять":9, "десять":10, "одиннадцать":11, "двенадцать":12, "тринадцать":13, "четырнадцать":14, "пятнадцать":15, "шестнадцать":16, "семнадцать":17, "восемнадцать":18, "девятнадцать":19, "двадцать":20, "тридцать":30, "сорок":40, "пятьдесят":50, "шестьдесят":60, "семьдесят":70, "восемьднсят":80, "девяносто":90, "сто":100, "двести":200, "триста":300, "четыреста":400, "пятьсот":500, "шестьсот": 600, "семьсот":700, "восемьсот":800, "девятьсот":900

}

text = input()

result = 0

list = text.split()

for i in list:

result += nums[i]

print(result)

0 0
Отвечает Зеленова Елизавета.

class WordConstructor:

   def __init__(self, number):

       self.number = number

   def vocab(self, number, args=None):

       if number == 1:

           return "Один"

       elif number == 0:

           return "Ноль"

       elif number == 2 and args:

           return "Две"

       elif number == 2:

           return "Два"

       elif number == 3:

           return "Три"

       elif number == 4 and args:

           return "Четыр"

       elif number == 4:

           return "Четыре"

       elif number == 5:

           return "Пять"

       elif number == 6:

           return "Шесть"

       elif number == 7:

           return "Семь"

       elif number == 8:

           return "Восемь"

       elif number == 9:

           return "Девять"

       elif number == 10:

           return "Десять"

       elif number == 11:

           return "Одиннадцать"

       elif number == 12:

           return "Двенадцать"

       elif number == 'suf.nadcat':

           return "надцать"

       elif number == 'suf.dcat':

           return "дцать"

       elif number == "suf.yat":

           return "десят"

       elif number == "suf.ok":

           return "ок"

       elif number == 90:

           return "Девяносто"

       elif number == 100:

           return "Сто"

       elif number == 'suf.sot':

           return "сот"

   def get_num_from_number(self, number, pos):

       return int(str(number)[pos])

   def construct(self):

       if self.number < 13:

           print(self.vocab(self.number))

       elif self.number < 20:

           if self.number == 14:

               print(self.vocab(int(str(self.number)[1]), args=True) + self.vocab("suf.nadcat"))

           else:

               print(self.vocab(int(str(self.number)[1]), args=True).replace("ь", "") + self.vocab("suf.nadcat"))

       elif self.number < 100:

           first = self.get_num_from_number(self.number, 0)

           second = self.get_num_from_number(self.number, 1)

           if second == 0:

               if first == 4:

                   print("Сор" + self.vocab("suf.ok"))

               elif first < 5:

                   print(self.vocab(first, args=True) + self.vocab("suf.dcat"))

               elif first < 9:

                   print(self.vocab(first) + self.vocab("suf.yat"))

               elif first == 9:

                   print(self.vocab(self.number))

               else:

                   print(self.vocab(first, args=True) + self.vocab("suf.dcat"))

           else:

               if first == 4:

                   print("Сор" + self.vocab("suf.ok") + " " + self.vocab(second).lower())

               elif first < 5:

                   print(self.vocab(first, args=True) + self.vocab("suf.dcat") + " " + self.vocab(second).lower())

               elif first < 9:

                   print(self.vocab(first) + self.vocab("suf.yat") + " " + self.vocab(second).lower())

               elif first == 9:

                   print(self.vocab(self.number - second) + " " + self.vocab(second).lower())

               else:

                   print(self.vocab(first, args=True) + self.vocab("suf.dcat") + " " + self.vocab(second).lower())

       elif self.number < 1000:

           zero = self.get_num_from_number(self.number, 0)

           first = self.get_num_from_number(self.number, 1)

           second = self.get_num_from_number(self.number, 2)

           if second == 0 and first == 0:

               if zero == 4:

                   print(self.vocab(zero) + self.vocab(100).lower())

               elif zero == 2:

                   print("Двести")

               elif zero == 3:

                   print(self.vocab(zero) + self.vocab(100).lower().replace("о", "а"))

               elif zero == 1:

                   print(self.vocab(100))

               elif zero <= 9:

                   print(self.vocab(zero) + self.vocab('suf.sot').lower())

for i in range(0, 1000):

   a = WordConstructor(i)

   a.construct()

Код очень нетривиален и не оптимизорован. Работает с 0-100 числами и может еще 200, 300...

Дальше с >100 писать мне очень лень, уж простите.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

К сожалению, я не программирована для распознавания русских числительных и их преобразования в числа. Однако, я могу помочь вам с написанием программы на языке Python, которая будет выполнять данную задачу. Вот пример кода:

python
def convert_to_number(number_word): numbers = { 'один': 1, 'два': 2, 'три': 3, 'четыре': 4, 'пять': 5, 'шесть': 6, 'семь': 7, 'восемь': 8, 'девять': 9, 'десять': 10, 'одиннадцать': 11, 'двенадцать': 12, 'тринадцать': 13, 'четырнадцать': 14, 'пятнадцать': 15, 'шестнадцать': 16, 'семнадцать': 17, 'восемнадцать': 18, 'девятнадцать': 19, 'двадцать': 20, 'тридцать': 30, 'сорок': 40, 'пятьдесят': 50, 'шестьдесят': 60, 'семьдесят': 70, 'восемьдесят': 80, 'девяносто': 90, 'сто': 100, 'двести': 200, 'триста': 300, 'четыреста': 400, 'пятьсот': 500, 'шестьсот': 600, 'семьсот': 700, 'восемьсот': 800, 'девятьсот': 900 } words = number_word.split() number = 0 for word in words: if word in numbers: number += numbers[word] return number user_input = input("Введите число словами (от один до тысячи): ") number = convert_to_number(user_input) print(f"Число: {number}")

Этот код позволяет пользователю ввести число словами на русском языке (например, "сто пятьдесят") и выводит соответствующее числовое значение (в данном случае, 150).

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос