Предмет: Информатика, автор: qu3stionmark

В чем ошибка? Напишите правильный код. За правильный код дам 30 баллов. Желательно с объяснениями. Пожалуйста, нужна ваша помощь​

Приложения:

Ответы

Автор ответа: Вованичикчка
0

Программа 1

Ошибка интерпретатора: NameError: name 'inrut' is not defined

Что означает: интерпретатор не нашел определение 'inrut', иными словами, в исходном коде не существует (не определена) такой переменной/функции/класса. Здесь подразумевалась функция для пользовательского ввода input().

Исправление:

a = int(input())

Программа 2

Ошибка интерпретатора: TypeError: not all arguments converted during string formatting

Что означает: интерпретатор воспринял конструкцию (a % b) как оператор форматирования строк (например, "Hello, %s" % name превратится в строку "Hello, Ivan", то есть %s заменится значением переменной name, стоящей после знака процента). При форматировании строк возникает подобная ошибка, если не все аргументы, указанные в сроке форматирования, были переданы. Если взять пример, который выше, и в строку форматирования добавить еще один %s: "Hello, %s %s" % name, то тогда возникнет эта ошибка, потому что в строку форматирования надо подставить два значения, а передали мы только одно name.

Ошибка возникла из-за того, что программист подразумевал деление двух целых чисел с остатком, но перед выполнением задуманного не конвертировал введенные данные из строк в числа, и оператор % между двумя строками воспринялся интерпретатором как оператор форматирования.

Исправление:

a = int(input())

b = int(input())

k = (a % b) // a * b

Программа 3:

Ошибка интерпретатора: ZeroDivisionError: division by zero

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

Исправление:

Первый вариант:

try:

   f = 5

   c = 0

   r = f / c

   print(r)

except ZeroDivisionError:

   print("На ноль делить нельзя")

Второй вариант:

f = 5

c = 0

if c == 0:

   print("На ноль делить нельзя")

r = f / c

print(r)

Похожие вопросы
Предмет: Русский язык, автор: аленкамама
Предмет: Математика, автор: sashazavyalov2206