Найти - Пользователи
Полная версия: помогите понять че надо то в задании (см. в теме) [решено]
Начало » Python для новичков » помогите понять че надо то в задании (см. в теме) [решено]
1
AD0DE412
Составить программу, которая позволяет найти произведение цифр некратных трем четырехзначного числа (3 балла).

блин может это я туплю но не как не могу понять что хотя то
может кто распарсит это задние?

произведение цифр понятно x * y
не кратных трем понятно x % 3 != 0, y % 3 != 0
но откуда и куда четырехзначное число?
doza_and
Число имеет вид abcd
где a,b,c,d некоторые цифры.
Оставить цифры не кратные 3
перемножить то что осталось.
Vigi
 from functools import reduce
print(reduce(lambda x, y: x * y, [int(i) for i in input() if int(i) % 3 != 0]))
py.user.next
AD0DE412
блин может это я туплю но не как не могу понять что хотя то
может кто распарсит это задние?
Вообще, для любой задачи ты применяешь следующий алгоритм:

Перед решением дано: то-то и то-то
Нужно получить: то-то и то-то

Так ты формируешь предусловие и постусловие алгоритма. Предусловие нужно максимально ослабить по деталям в нём, а постусловие нужно максимально усилить по деталям в нём.

Например:
Допустим, у тебя сначала в задаче сформулировано так “дан текст на русском, а нужно получить этот текст прописными буквами”. Ты делишь эту задачу на предусловие и постусловие.
Предусловие
Дано: текст на русском
Постусловие
Получить: текст прописными буквами
Сначала ослабляешь предусловие
Дано: текст на каком-то языке
Ещё дальше ослабляешь предусловие
Дано: текст какой-то
Вроде достаточно ослабил, хотя дальше можно ослабить до вообще любой строки, хоть до бинарных данных. Так и сделаем.
Дано: строка с какими-то данными
Предусловие ослаблено максимально, дальше можно переходить к работе с постусловием.
Дальше усиливаешь постусловие
Получить: текст с русскими прописными буквами
У нас поменялось предусловие и понятие “текст” видоизменилось
Получить: исходную строку с русскими буквами, переведёнными в прописные
В итоге у тебя получилось
Дано: строка с какими-то данными
Получить: исходную строку с русскими буквами, переведёнными в прописные
Тут получилось максимально слабое предусловие и максимально сильное постусловие.

Вот теперь ты можешь взять предусловие и постусловие и, объединив их в одно предложение, придумать через это предложение имя алгоритму, сократив всё предложение до пары-тройки слов.
Поступает строка с какими-то данными и получается исходная строка с русскими буквами, переведёнными в прописные.
->
переводит русские буквы в прописные
Дальше из декларативной формы, которая отвечает на вопрос "что делает функция?“ , мы переводим имя функции в императивную форму, которая отвечает на вопрос ”что сделать функции?"
переводит русские буквы в прописные
->
перевести русские буквы в прописные
Дальше переводим это на английский язык
перевести русские буквы в прописные
->
capitalize_cyrillic_letters

Так у тебя задача “дан текст на русском, а нужно получить этот текст прописными буквами” превратилась в функцию
capitalize_cyrillic_letters(string) -> string
Естественно, когда ты это умеешь делать, это происходит за несколько секунд всё. А когда ты не умеешь этого делать, то ты тупишь и не можешь сообразить, что вообще придумать и как это назвать, потому что придумать можно много чего и назвать это можно кучей всяких способов.


Дальше твоя задача
AD0DE412
Составить программу, которая позволяет найти произведение цифр некратных трем четырехзначного числа (3 балла).
Когда мы умеем всё это делать, мы просто ищем, что дано и что получить. Всё это быстро в голове разворачивается и генерируется имя функции.

Что дано? Четырёхзначное число.
Что получить? Произведение цифр исходного числа, каждое из которых не кратно трём.
Имя функции:
digits_notdiv3_multiply(number) -> number


tags: precondition postcondition
AD0DE412
всем спасибо
ps doza_and просто вытащили из тупняка … спасиб
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB