• Предмет: Информатика
  • Автор: danieldaniil0407
  • Вопрос задан 5 лет назад

Разработайте программу, которая получает от пользователя целое число из интервала от 1000 до 9999 и выводит его написанным "справа налево": например, при вводе 2017 программа должна вывести 7102.


Предусмотрите защиту от некорректных данных: от значений, которые не могут быть интерпретированы как число, и от чисел вне разрешённого диапазона.


В Python есть много способов выполнить это задание. Ограничимся 3-мя.


Вывести нужное значение цифру за цифрой на консоль, считая входное значение строкой и используя строковые операции (не функции). Конечно, результат должен выглядеть как число, а не цифры, разделённые пробелами.

Сформировать результат в одной строке, а потом вывести его. Считать ли входное значение числом или строкой - на ваше усмотрение.

Использовать арифметический подход - считаем входное значение числом, обрабатываем его как число, в результате получаем новое четырехзначное число, соответствующее условию.

В этом случае допустимо отображать результат без начальных нулей.

1200 => 12



Используйте только те способы, которые проходили. Найти решение с использованием срезов, циклов, обратной итерации (наверняка есть ещё что-то) легко, но засчитываться оно не будет.


olegkrasnov98: А какие способы вы проходили? Вдруг напишу, а не засчитают)
YKR4: обратная итерация это типо итерация метода reversed()?

Ответы

Ответ дал: YKR4
1

Ответ:

Предложу несколько вариантов решений, тк не уверен, что понял правильно.

1.

x = int(input('number: '))

if not 1000<x<9999:

   raise ValueError('число не удовлетворяет требованиям')

str_x = list(str(x))

str_x.reverse()

print(''.join(str_x))

2. Строковой метод

x = input('number: ')

if not 1000<int(x)<9999:

   raise ValueError('число не удовлетворяет требованиям')

print(x[::-1])

Объяснение:

1. Пользователь вводит данные, если число не удовлетворяет требованиям, вызывается ошибка. Далее создаю массив со всеми цифрами числа, переворачиваю его и вывожу, как строку.

2.  Я создал ту же проверку, что и в 1 варианте, и просто вывел срез, который выводит строку с шагом -1, т.е. обратную последовательность.

Вас заинтересует