Всем, привет.
Помогите, пожалуйста, с задачей.
Код написан, но программа падает с ошибкой, при определённых вводимых данных.
(язык Python)
Спасибо!
def change(summ, n):
~~num_count = 0
~~temp = n
~~while temp > 0:
~~~~num_count += 1
~~~~temp = temp // 10
~~last_digit = n % 10
~~first_digit = n // 10 ** (num_count - 1)
~~between_digits = n % 10 ** (num_count - 1) // 10
~~n = last_digit * 10 ** (num_count - 1) + between_digits * 10 + first_digit
~~print('Изменённое число:', n)
~~summ += n
~~return summ
number = int(input('\nВведите первое число: '))
summa = 0
if abs(number) > 99:
~~summ = change(summa, number)
else:
~~print('В первом числе должно быть не менее трех цифр.')
n = int(input('\nВведите второе число: '))
if abs(n) > 999:
~~summ = change(summ, n)
else:
~~print('Во втором числе должно быть не менее четырех цифр.')
if abs(n) > 999 or abs(number) > 99:
~~print('\nСумма чисел:', summ)
else:
~~print('\nОшибка, попробуйте снова.')
gvozdb27:
условие: Вы всё так же работаете в конторе по разработке игр и смотрите различные программы прошлого горе-программиста. В одной из игр для детей, связанной с мультяшной работой с числами, вам нужно было написать код по следующим условиям: программа получает на вход два числа. В первом числе должно быть не меньше трёх цифр, во втором числе — не меньше четырёх, иначе программа выдаёт ошибку. \
Если всё нормально, то в каждом числе первая и последняя цифра меняются местами, а затем выводится их сумма. И тут вы натыкаетесь на программу, которая была написана прошлым программистом и которая как раз решает такую задачу! Однако старший программист сказал вам немного переписать этот код, чтобы он не выглядел так ужасно. Да и вам самим становится, мягко говоря, не по себе от него.
Разбейте приведённую ниже программу на функции. Повторений кода должно быть как можно меньше. Также сделайте, чтобы в основной части программы был только ввод чисел, затем изменённые числа и вывод их суммы.
У Вас в основной части программы есть переменная summa, а есть переменная summ. По логике действий, это должна быть одна переменная - но у Вас почему-то это не так
Вероятно, в 25 строке ~~summ = change(summ, n) Вы пытаетесь передать в функцию переменную summ, которой нет в области видимости, ведь объявили Вы ее впервые в теле if . Опять же, все дело в том, что у Вас почему-то вместо одной переменной summa, которой будет присваиваться значение, возвращаемое функцией change, и которая в эту функцию и должна передаваться [что неоптимально, но речь сейчас о другом]
переменных две
не совсем понятно, можно прям в коде указать?\
Что указать в коде? Причину, почему ошибка возникает? Так я уже указал, 25 строка ~~summ = change(summ, n), в функцию передается переменная, которой нет в области видимости.
И первопричину указал - вместо одной переменной summa, объявленной в основной части программы, у Вас возникает, почему-то, 2: summa и summ, что приводит также и к ошибке реализации алгоритма
а скиньте, пжлст, входные данные
Ответы
Ответ дал:
1
Ответ:
Объяснение:
в 27 строке неопознанное имя summ
из за этого вся ошибка
поменяйте на summa
там где summ = cange(summa, n)
Приложения:
Вас заинтересует
2 года назад
2 года назад
3 года назад
3 года назад
8 лет назад
8 лет назад
9 лет назад
9 лет назад