01 Исправление / дополнение кода
Ошибка.
Попробуйте повторить позже
Дополните фрагмент из программы на Python, которая выводит все числа в отрезке [8, 44]:
x = 8 while (...): print(x) x = x + 1
В ответ запишите условие внутри цикла while. Старайтесь соблюдать стиль кода, в котором переменные, знаки и операторы разделены между собой одним пробелом.
Ответом может служить один из следующих вариантов:
x != 45
x <= 44
x < 45
- x != 45
- x <= 44
- x < 45
- x<45
Ошибка.
Попробуйте повторить позже
Дополните фрагмент из программы на Python, которая вводит с клавиатуры число, пока не введено чётное или оканчивающееся на 5 число:
while (...):
x = int(input())
В ответ запишите условие внутри цикла while. Старайтесь соблюдать стиль кода, в котором переменные, знаки и операторы разделены между собой одним пробелом.
Ответом может служить один из следующих вариантов:
x % 2 != 0 or x % 10 != 5
x % 10 != 5 or x % 2 != 0
- x % 2 != 0 or x % 10 != 5
- x % 10 != 5 or x % 2 != 0
Ошибка.
Попробуйте повторить позже
КрУтОй пРоГрАмМиСт написал функцию подсчёта суммы цифр в числе, но забыл про число r:
s = 0
r = ???
while num > 0:
s += num % r
num //= r
return s
print(sum_digit(555))
Напишите, чему должно быть равно значение переменной r, чтобы программа посчитала сумму числа 555 верно (и выдала ответ 15). В ответ запишите только одно число.
Мы можем получать каждую последнюю цифру числа через операцию
Ошибка.
Попробуйте повторить позже
Укажите название параметра функции print, который задает разделитель при выводе аргументов
Таким параметром явлется sep. Например: print(3, 4, sep=’*’) выведет 3*4
Ошибка.
Попробуйте повторить позже
Укажите название параметра функции print, который задает символ окончания строки при выводе аргументов
Таким параметром является end. Например: print(3, 4, end=’!’) выведет 3 4!
Ошибка.
Попробуйте повторить позже
Какие параметры sep и end нужно указать в программе (вместо ???), чтобы получилась строка: "4 * 5 = 20". В ответ запишите сначала параметр sep, потом параметр end через пробел. Важно: программа должна быть синтаксически верной после замены ???.
a = 4 b = 5 c = 20 print(a, b, sep=???, end=???) print(c)
Между 4 и 5 должен возникнуть знак ’ * ’, поэтому sep=’ * ’. После вывода 4 и 5 нужно закончить строку на символ ’ = ’, чтобы следующий вывод был после него
- ' * ' ' = '
- " * " " = "
- ' * ' " = "
- " * " ' = '
Ошибка.
Попробуйте повторить позже
У Бараша наступил творческий кризис. Он решил отвлечься от поэзии и окунуться с головой в программирование, тем более что лишние морковки никому еще не вредили. Бараш хотел написать программу, которая находит сумму чисел от до включительно, но что-то пошло не так и его программа работает неправильно. Найдите количество символов, которые нужно дописать, чтобы программа работала правильно. Пробелы считать не нужно.
n = input() s = 0 for i in range(1, n): s += i print(s)
n = int(input()) # используем int(), иначе это n будет строкой s = 0 for i in range(1, n + 1): # range(1, n) идет до n - 1 s += i print(s)
Ошибка.
Попробуйте повторить позже
Выдаст ли ошибку следующая программа?
count = 0 summa = 0 i = 0 while i < 102: summa += i count -= 1 if i % 3 == 0: count += 3 i += 1 print(summa / count)
Если программа не выдаст ошибку, то напишите в ответе 0, иначе напишите тип ошибки, которую выдаст программа.
В данной программе каждое число кратное трем увеличивает счетчик на , каждое число уменьшает счетчик на . Всего чисел кратных будет , получается, что , тип ошибки: ZeroDivisionError
Ошибка.
Попробуйте повторить позже
Какой тип ошибки выдаст следующая программа?
def f(a, i): return a[i] + f(a, i + 1) a = [1, 2, 3, 4, 5] print(f(a, 0))
Функция складывает элементы массива, но граница складывания не указана, программа будет обращаться каждый раз к правому элементу, пока не выйдет за пределы массива.
Ошибка.
Попробуйте повторить позже
Ярослав написал следующую программу для поиска суммы чисел от до включительно.
summa = 0 for i in (1, 100): summa += i print(summa)
Есть ли ошибка в данном коде? Если программа написана правильно, то в ответе напишите , иначе напишите исправленную строчку целиком.
Ярослав забыл, что для обозначения диапазона нужно писать range.
Ошибка.
Попробуйте повторить позже
Какую ошибку выдаст следующая программа и как следует исправить строку, выдающую ошибку?
summa = 0 for i in range(100): summa += i if i % 2 == 0: summa -= 2 * i print(summa) for j in range(1000): if j % 100 == 0: summs *= 2 print(summa)
В ответе через пробел напишите тип ошибки и исправленную строчку.
В программе используется неизвестная переменная summs, ее следует заменить на summa.
Ошибка.
Попробуйте повторить позже
Родион написал следующую программу:
f = open("1.txt") n = int(f.readline()) print(n + 1)
Данная программа выдала ошибку: ValueError: invalid literal for int() with base 10: ’127.12’.
Какую строчку кода и как следует переписать, чтобы программа работала корректно и выдавала .
В ответе напишите номер строчки и ее исправленный вид через пробел.
Ошибка говорит о том, что в файле содержится строка с точкой, точку превратить в int нельзя, но можно превратить в вещественное число, если написать float.
Ошибка.
Попробуйте повторить позже
Какую ошибку выдаст следующий код?
from functools import cache def moves(heap): a, b = heap return (a - 1, b), (a // 2, b), (a, b - 1), (a, b // 2) @cache def game(heap): if sum(heap) <= 12: return ’END’ elif any(game(x) == ’END’ for x in moves(heap)): return ’P1’ for s in range(100, 3, -1): if game((9, s)) == ’V1’: print(s)
В ответе напишите тип ошибки.
Когда любая из переменных или дойдет до , операция деления на будет приводить числа из пары в пару (застревание в рекурсии).
Ошибка.
Попробуйте повторить позже
Стасян хотел найти сумму целых чисел, записанных в файл, но что-то пошло не так, его код выдает ошибку. Какой тип у данной ошибки и как ее исправить?
f = open("1.txt") a = [] for i in f: a.append(i) summa = 0 for i in range(len(a)): summa += a[i] print(summa)
В ответе укажите тип ошибки и исправленную строчку.
Стасян забыл, что необходимо из строк сделать числа, когда достаешь их из файла.
Ошибка.
Попробуйте повторить позже
Сколько ошибок в следующей программе и какая из них будет найдена питоном первой?
def f(): for i in range(100): if i % 10 == 0 print(1) f() x = f() print(x)
В ответе укажите через пробел количество ошибок и тип первой ошибки, которую выдаст программа.
- if i % 10 == 0 — отсутствует двоеточие
- _f() — лишний пробел
- функция ничего не возвращает и имеет точки выхода, но постоянно вызывает саму себя
Ошибка.
Попробуйте повторить позже
Сколько ошибок в следующей программе и какая из них будет найдена питоном первой?
def f(a): return a * b def g(b): return b c = [0] for i in range1, 10): c[i] = f(i) + g(i) print(c + "hello")
В ответе укажите количество ошибок и тип первой ошибки, которую выдаст программа.
- return a * b — непонятно, что такое b
- range1, 10): — не хватает скобки
- c[i] i > 0 — обращение к несуществующему индексу
- print(c + "hello") — сложение массива и строки