我正在做一个幸运的名字数字游戏,我可以通过一个定制的函数从名字中得到数字,但是我不能把它们加在一起。你知道吗
到目前为止我的代码是:
num = 0
def main():
name = input('Please enter your name: ')
for letter in name:
if letter == 'a' or letter == 'j' or letter == 's':
num = num + 1
if letter == 'b' or letter == 'k' or letter == 't':
num = num + 2
if letter == 'c' or letter == 'l' or letter == 'u':
num = num + 3
if letter == 'd' or letter == 'm' or letter == 'v':
num = num + 4
if letter == 'e' or letter == 'n' or letter == 'w':
num = num + 5
if letter == 'f' or letter == 'o' or letter == 'x':
num = num + 6
if letter == 'g' or letter == 'p' or letter == 'y':
num = num + 7
if letter == 'h' or letter == 'q' or letter == 'z':
num = num + 8
if letter == 'i' or letter == 'r':
num = num + 9
getDigitSum()
def getDigitSum(num):
sum = 0
while num > 0:
num, remainder = divmod(num, 10)
sum += remainder
return sum
main()
这其中有几个明显的错误:
每次for循环运行后都不会保存num。因为调用
getDigitSum(num)
时没有参数,所以应该有一个错误。即使它确实可以工作(也就是说,您将getDigitSum()
更改为getDigitSum(num)
),它仍然无法工作,因为num在每次运行后都不会被保留。TL:DR;将main中的getDigitSum()
行更改为num = getDigitSum(num)
。在这段代码中你没有输出任何东西。程序结束后,不会打印总和。因此,在更改行
getDigitSum()
之后,还应该在for循环后面的print(sum)
中包含main()
。因此,您的代码如下所示:
在提问之前,请先阅读StackOverflow的Asking Guidelines。你知道吗
getDigitSum
是一个函数,它接受一个参数num
,并返回一个数字。你知道吗您不仅没有向它传递任何参数,而且也没有将其返回值存储在任何地方。你知道吗
将
getDigitSum()
替换为print(getDigitSum(num))
之类的内容。你知道吗我也很确定这一行不应该在for循环中,但我并不完全理解程序的规则。你知道吗
将来,您应该阅读StackOverflow的Asking Guidelines。你的问题不能很好地描述你的问题,格式也不太好,所以很难理解。你知道吗
相关问题 更多 >
编程相关推荐