编写一个函数getSumOfFirstDigit(numList),它接受一个正数列表并返回列表中所有第一个数字的总和?

2024-05-19 15:20:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做python教程pyschools.com网站,为了回答上述问题,我的方法是将每个整数转换为字符串,颠倒字符的顺序,然后将其转换回整数,除以10,再加上余数。这可能是一个非常混乱的方法来完成这一点,但这是我唯一能想到的方法。在

我的代码如下:

def getSumOfFirstDigit(num): 
    answer=0
    for number in num:
        str(number)
        number[::-1]
        int(number)
        t = number%10
        answer=answer+t
    return answer`

当我用示例:getSumOfFirstDigit([12, 23, 34, 45, 56])运行它时,它返回错误:

^{pr2}$

我认为“str(number)”可以处理错误所说的内容。在


Tags: 方法字符串代码answercomnumber顺序网站
3条回答

当然可以,但你需要用它。在

试试这个:

answer = answer + int(str(number)[0])

或者,您可以做以下操作,而不是执行answer=answer+something:

answer += int(str(number)[0])

这里有一个不同的方法:您可以通过反复将数字除以10直到它小于10来获得第一个数字:

def first_digit(n):
    while n > 9:
        n /= 10
    return n

之后,只需调用sum()函数来完成此工作:

^{pr2}$

讨论

  • 假设:所有数字都是零或正,没有检查负或非数字输入
  • 如果不允许使用sum()函数,请编写一个循环

使用sum、列表切片和生成器表达式:

>>> sum(int(str(n)[0]) for n in [1, 23, 45, 234])
9

相关问题 更多 >