gpt4 book ai didi

python - 如何将整数中的数字相加

转载 作者:行者123 更新时间:2023-12-01 04:28:44 26 4
gpt4 key购买 nike

我是一名 Python 初学者(GCSE)。我正在尝试将数字相加为整数。我的变量 FNT 每次都会以不同的数字出现(取决于我之前输入的内容),然后我需要这些数字自行相加。例如。 FNT=19 我现在需要这个号码来做到这一点- 1+9=10 1+0=1 数字需要不断相加,直到成为一位数,但每次的数字可能不同。非常感谢所有帮助,但是,正如我所说,我是一个完全的初学者,可能无法理解任何太复杂的东西,所以有人知道如何做到这一点吗?

最佳答案

有两种方法:数学方法和利用字符串在 Python 中可迭代这一事实的方法。

  • 数学方法使用模(%)和整除(//)将数字分解为数字:

    number = int(input('What number do you want to start with? '))

    while number > 9:
    decompose_helper, number = number, 0
    while decompose_helper: # != 0 is implied
    number += decompose_helper % 10
    decompose_helper = decompose_helper // 10

    print('Result is', number)

    您可以使用 divmod 改进此代码功能:

    number = int(input('What number do you want to start with? '))

    while number > 9:
    decompose_helper, number = number, 0
    while decompose_helper: # != 0 is implied
    decompose_helper, remainder = divmod(decompose_helper, 10)
    number += remainder

    print('Result is', number)
  • 可迭代字符串方式:

    number = input('What number do you want to start with? ')

    while len(number) > 1:
    number = str(sum(int(digit) for digit in number))

    print('Result is', number)

这些代码都不处理输入验证,因此如果用户输入整数以外的内容,代码将会崩溃。您可能需要处理这个问题。

<小时/>

我建议使用数学方法,因为它更快。计时(删除输入打印)是:

>>> timeit.timeit('math_way("4321234123541234")', setup='from __main__ import math_way', number=10000)
0.06196844787336886
>>> timeit.timeit('str_way("4321234123541234")', setup='from __main__ import str_way', number=10000)
0.10316650220192969

关于python - 如何将整数中的数字相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32724245/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com