d = int(input("Please Enter any Number: "))
a = 0
def product_of_digits(Number):
d= str(Number)
for integer in d:
s = 0
k = []
while s < (len(d)):
print (int(d[s])*int(d[s+1])*int(d[s+2])*int(d[s+3])*int(d[s+4]))
s += 1
print (product_of_digits(a))
ответ
У вас есть несколько проблем в вашем коде. Начнем в порядке исполнения:
print(product_of_digits(a))
- Если предположить, чтоproduct_of_digits
должна возвращать произведение цифр числа вы передаете, то это будет всегда возвращать0
, так как вы пройтиa
(которая равна нулю) вместо введенного пользователем номера (d
).for integer in d
-for
Петли повторяют элементы чего-то, а не индексы. В этом случае он будет перебирать символы в строкеd
. Это означает, что на каждой итерацииinteger
будет представлять собой одну цифру.s = 0
- В каждой итерации цикла вы устанавливаете его на ноль.- Аналогично
s += 1
в конце циклаfor
не вызовет никакого эффекта, так как в начале следующей итерацииs
снова будет равен нулю. Вероятно, вы указали, что эта строка находится внутри циклаwhile
(для этого он имеет неправильный уровень отступов). while s < (len(d))
- Итак, внутри цикла, где вы повторяете цифры числа, вы хотите снова перебрать цифры? Почемуint(d[s]) * int(d[s+1]) …
- Статическое умножение пяти цифр здесь приводит к поражению цели обработки каждого числа - вместо тех чисел, которые имеют 5 цифр.d[s+4]
- Для этого необходимо, чтобыs
был нижеlen(d)-5
, но вы делаете итерацию, покаs
не будетlen(d) - 1
.print()
- Вы должны вернуть свою функцию, а не печатать ее.
Возможное решение может выглядеть следующим образом:
def product_of_digits (number):
product = 1
for digit in str(number):
product = product * int(digit)
return product
print(product_of_digits(d))
Другое хорошее решение: 'return itertools.reduce (lambda x, y: int (x) * int (y), str (число), 1)' – zondo
@zondo на основе того, как выглядит вопрос, я сомневаюсь, что парень ожидается использовать лямбда в своей домашней работе. –
@AmitGold: Вот почему я сказал * другое * хорошее решение. Я не предлагаю заменить это. – zondo
- 1. Как написать программу в python, чтобы получить список ввода пользователя и суммировать все элементы в нем
- 2. Python: как распечатать мобильный номер пользователя AD?
- 3. как принять номер ввода int от пользователя и в то же время сохранить вход пользователя?
- 4. Измените программу, чтобы принять номер телефона с любым количеством букв.
- 5. Как я могу закончить программу в python
- 6. Как написать программу, которая отвечает на ввод пользователя? (Python)
- 7. Как написать программу в python, чтобы сгенерировать все n чисел цифр только с 4 и 7 в качестве их цифр?
- 8. Как я могу написать программу на японском языке в Паскале?
- 9. Как я могу написать эту программу?
- 10. Python-Click: Как я могу написать команду щелчка, чтобы принять любой из двух аргументов?
- 11. как я могу написать на общий класс для всех Repository
- 12. Как еще я могу проверить пользователя на программу?
- 13. Получите серийный номер всех жестких дисков и разделов в нем
- 14. Как я могу распечатать входные данные пользователя на C#?
- 15. Как я могу написать свою программу инвентаризации, чтобы она читала и записывала в текстовый файл?
- 16. Я пишу программу, чтобы найти число 3 в факториале заданного числа. Вход от пользователя - это номер
- 17. Я хочу создать текстовый файл с именем, исходящим от пользователя, и написать в нем?
- 18. Могу ли я использовать идентификатор пользователя как номер счета
- 19. Как принять разные типы данных от пользователя в java
- 20. Как я могу ускорить свою программу python?
- 21. Как я могу остановить мою программу python от сбоя
- 22. распечатать список без '' в нем
- 23. Как написать запрос, чтобы найти недостающий номер?
- 24. Как написать суперфакториальную программу?
- 25. принять ввод от пользователя и цвет дисплея
- 26. Как я могу использовать Python для входа на сайт и выполнения действий в нем?
- 27. Изменить программу ниже, чтобы принять как буквы, так и цифры
- 28. Найти номер с максимальными цифрами в нем
- 29. Как я могу «переопределить» [], чтобы принять два аргумента в C++?
- 30. мне нужно форматировать текстовое поле, чтобы принять номер, как ###, ###, ###
Вы должны смотреть на [itertools.reduce()] (https://docs.python.org/3/library/functools .html # functools.reduce). – zondo