Sabach
Подсказку не дадите для дилетанта?
Sabach
но в задании стоит не использовать функции
input и print - это функции.
>>> input
<built-in function input>
>>> print
<built-in function print>
>>>
Видимо, тебе запрещено использовать
методы списка, кортежа и других аналогов массива.
Sabach
Как объединить оба кода, чтобы и введенный массив показывал и нули подсчитывал (желательно через if)?
Во-первых, ты ошибочно думаешь, что их надо объединять. В программировании нужно, наоборот, всё разделять при первой же возможности. Модульная система. Если в одном модуле что-то произошло, то надо его просто изолировать, чтобы вся программа продолжила работать или разрабатываться в прежнем режиме. Это как на подводной лодке или на космической станции - при любом ЧП изолируется отсек (он же модуль).
Поэтому сначала ты должен ввести данные,
и только после этого ты должен работать с данными.
Тут пошёл алгоритм:
1. Ввести данные.
2. Посчитать нули.
3. Вывести результаты.
Каждое действие выполняешь по очереди и следующее действие не начинаешь, пока полностью не закончишь предыдущее.
Сам всё сделаешь? Начни с первого действия и полностью его выполни. Покажи код, чтобы тебе сказали “да, правильно сделал это”. После этого сделай второе действие и полностью его выполни. Покажи код, чтобы тебе сказали “да, правильно сделал это”. Либо тебе скажут на втором действии “нет, неправильно ты это сделал”. Тогда ты станешь переделывать второе действие, но при этом первое действие не будет затронуто этой корректировкой, так как оно выполнено правильно. Это метод отсечений: написал что-то правильно - отложил в сторону, приступил к следующему. Когда у тебя первое действие выполнено правильно, второе действие выполнено правильно, только тогда ты делаешь третье действие. И так же приходишь и показываешь код и тебе говорят “да, правильно сделал это”. Когда у тебя первое действие выполнено правильно, второе действие выполнено правильно, третье действие выполнено правильно, тогда ты правильно выполнил
весь алгоритм. Тут кроется маленький секрет: этот весь алгоритм потом становится одним маленьким действием в другом алгоритме, а тот другой алгоритм сам по себе тоже потом становится одним маленьким действием в ещё каком-то другом алгоритме. И тут кроется ещё один секрет: если тебе надо посчитать нули на сайте, а не в массиве, то ты берёшь готовый алгоритм и заменяешь полностью в нём первое действие, не затрагивая ничего во втором действии и в третьем действии. Это называется переиспользованием (reuse или по-русски реюз) кода - когда вместо написания кода с нуля ты берёшь откуда-то уже написанный ранее код (из другого проекта, из другого решения другой задачи, из кода другого автора другого проекта и тому подобного).
Как только ты начнёшь соблюдать эти элементарные правила и строго следовать им, сразу начнёт всё получаться и с вводом, и с циклами, и с красивым выводом. Всё это связано с тем, что хорошие алгоритмы вставляются в хорошие алгоритмы. Но хорошие алгоритмы пишутся по строгим правилам.
tags: algorithm module reuse