繁体   English   中英

如何将用户输入添加在一起?

[英]How do I add the user inputs together?

number = 0

def sumDigits(number):
    while True:
        number = int(input("Please enter a number (enter 0 to exit):"))
        if number == 0:
            sum = number + number
            print("The sum is",sum)
            break

print(sumDigits(number))

输入 0 后,程序输出“总和为 0”,然后在下一行输出“无”。我不确定为什么会出现“无”。

我需要该程序将所有用户输入添加在一起。

您可以制作一个列表,并 append 用户输入该列表的所有值。 然后使用内置的sum function(将列表中的所有值相加),并返回结果。

number = 0
lst = []
def sumDigits(number):
    while True:
        number = int(input("Please enter a number (enter 0 to exit):"))
        lst.append(number)
        if number == 0:
            add = sum(lst)
            return f"The sum is {add}"
            break
            

print(sumDigits(number))

您的程序以前无法运行,因为您只是添加了玩家输入的当前数字,该数字始终0 ,并且您没有返回任何值,这就是您得到None的原因。

另一个旁注:不要命名变量sum ,因为正如我上面所说,它是内置的 function 。

使用另一个变量来保存总数,并在每次循环中添加到它。

def sumDigits(number):
    total = 0
    while True:
        number = int(input("Please enter a number (enter 0 to exit):"))
        if number == 0:
            print("The sum is",total)
            break
        total += number

有多个错误。 首先是如果您执行print(sumDigits(number)) ,则打印 sumDigits function 的返回值。 您可以使用“return”关键字来执行此操作。 其次是行sum = number + number 这里的第一个问题是 sum 是一个内置的 function ,这意味着您不能将其用作变量标识符。 第二个问题是,在这种情况下,总和等于相同的数字乘以 2,而不是两个不同的数字相加。

您想要做的是如下所示:

number = 0

def sumDigits(number):
    while True:
        new_number = int(input("Please enter a number (enter 0 to exit): "))
        if not new_number == 0:
            number += new_number
        else: break

print(sumDigits(number))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM