【发布时间】:2014-05-08 22:12:12
【问题描述】:
这是我应该写的:
- 一个函数countDigits,它将一个整数作为参数并返回其数字的总和(您必须使用for 循环)。例如,数字 123 将返回 6 (1 + 2 + 3)
-
一个 main 函数,它将从 1 开始计算数字,并在总数字(对于所有数字)超过 1,000,000 时结束。因此,如果您想要数字 5 的总位数,您可以添加:
- 1 = 1
- 2 = 2 + 1
- 3 = 3 + 3
- 4 = 6 + 4
- 5 = 10 + 5,所以 15 是总位数。
您的程序将打印超过 1,000,000 之前的数字和位数。使用 while 循环最简单。
我已经为函数countDigits编写了代码,即:
def countDigits():
value=int(input('Enter Integer: '))
str_num= str(value)
total = 0
for ch in str_num:
total += int(ch)
print(total)
但是,我对如何编写 main 函数感到困惑。谁能指出我正确的方向?
编辑
这是我修改后的 countDigits 函数:
def countDigits(value):
str_num= str(value)
total = 0
for ch in str_num:
total += int(ch)
print(total)
【问题讨论】:
-
您的
countDigits函数不对:“countDigits,它将一个整数作为参数并返回其数字的总和” .您正在获取用户输入和打印。 -
修复
countDigits后,如何编写主函数应该会变得很明显,假设您知道如何使用参数调用函数并将返回值分配给变量。 -
“谁能指出我正确的方向?”不是适合 SO 的问题。尝试一些东西,测试它,阅读并理解它给出的输出或错误,并尝试改进它。
-
这是我希望
reduce仍在 Python 中的极少数情况之一...... -
@AdamSmith 它还在
functools
标签: python loops python-3.x