-4 python python-3.x
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))
Run Code Online (Sandbox Code Playgroud)
您的代码中存在多个问题.让我们按执行顺序开始:
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))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1340 次 |
| 最近记录: |