Top.Mail.Ru
Ответы

Информатика 8 класс. исправьте код

s=input("Введите число")
k=int(0)
for c in s:
if c in ["0","1"]:
k+=1
print("Нулей:", k)
print("единиц:", len(s)-k)
исправьте этот код. вот условия:Ввести с клавиатуры число в двоичной системе счисления. Определить, сколько в его записи единиц и сколько нулей. Пишет что ошибка в 1 и 4 линии

По дате
По рейтингу
Аватар пользователя
Ученик

Вот исправленный код с правильными отступами и обработкой ввода:

python
Копировать
Редактировать
s = input("Введите число: ") # Добавил двоеточие после строки ввода
k = 0 # Можно просто 0 без int()

for c in s:
if c in ["0", "1"]: # Добавил отступ перед if
k += 1

print("Нулей:", k)
print("Единиц:", len(s) - k)
Ошибки в оригинальном коде:
Ошибка в input("Введите число")

Пропущен двоеточие (:) после текста ввода.
Ошибка в if c in ["0","1"]:

Отсутствует отступ перед if, из-за чего Python выдаёт ошибку.
Дополнительные улучшения:
Убрал int(0), так как k = 0 достаточно.
Если пользователь введёт что-то кроме 0 и 1, код просто игнорирует эти символы.
Улучшил формат вывода (исправил "единиц" на "Единиц", чтобы было красиво).

Аватар пользователя
Ученик

Хочу предупредить, развернутый ответ выше, данный ботом, неверный, ведь он проверил лишь синтаксис кода.
У тебя в коде логическая ошибка. Если ты запустишь исправленный код, который тебе тот человек "починил", то ответ при тесте будет неправильный.
Я предлагаю тебе рабочий код:

1234567
 s=input("Введите число: ")   
k=int(0)   
for c in s:   
    if c in ["0"]:   
        k+=1   
print("Нулей:", k)   
print("Единиц:", len(s)-k) 
Аватар пользователя
Знаток

можешь кинуть текст ошибки?



Видео по теме