【问题标题】:How to Add all elements of a python list如何添加python列表的所有元素
【发布时间】:2021-12-28 08:44:40
【问题描述】:

所以基本上我有一个用户输入的列表,我检查所有元素是否为正我输出所有正数,如果它们都是负数,我输出所有负数,但如果它们都是正数和负数,我需要对它们求和全部完成,我不知道如何做这最后一步,这是我的代码,直到现在

stop = "0"
Numbers = []
number = ""
while number != stop:
    number  = input("enter a number ")
    Numbers.append(number)
    print(Numbers)
if all(int(element) >= 0 for element in Numbers):
    print("allpos")
if all(int(element) <= 0 for element in Numbers):
    print("all neg")

【问题讨论】:

  • 做一点小事。保持第一个 if,而不是第二个 if 写 elif,然后添加 else 语句,这将是 sum(Numbers) 就是这样。
  • 非常感谢!

标签: python arraylist


【解决方案1】:

使用sum

print(sum(numbers))

另外,变量名使用小写字符。

stop="0"
number =""
numbers=[]
while number != stop:
    number = input("enter a number ")
    numbers.append(int(number))
print(numbers)
if all(element > 0 for element in numbers):
    print("allpos")
elif all(element < 0 for element in numbers):
    print("all neg")
else:
    print(sum(numbers))

或更清晰的方法:

numbers = [int(x) for x in input("enter list of numbers, separated by space: ").split()]
print(numbers)
if all(element > 0 for element in numbers):
    print("allpos")
elif all(element < 0 for element in numbers):
    print("all neg")
else:
    print(sum(numbers))

【讨论】:

  • 我试过了,它给了我一个 TypeError 不支持的操作数类型 + 'int' 和 'str' 请帮助
  • 在求和之前,您需要确保元素是数字的。您应该在添加数字之前过滤非数字。
  • 但我只输入 5、-2、1.... 之类的数字,我在这里完全是菜鸟,如果这听起来很愚蠢,我很抱歉,我该如何解决这个问题
  • 是的@Tombrown,您应该将输入字符串转换为 int,我将编辑我的答案
  • 非常感谢!!
【解决方案2】:

参考这个:

list_ = [1, 2, -3]

if all(int(element) >= 0 for element in list_):
    print("allpos")

elif all(int(element) <= 0 for element in list_):
    print("all neg")

else: 
    print('sum', sum(list_))

【讨论】:

  • 它给了我一个 TypeError 不支持 + 'int' 和 'str' 的操作类型我该怎么做
  • 这是因为您的列表中有混合数据类型。您需要仅过滤出数值,或将字符串数字转换为数字类型。
  • 但我只输入 5、-2、1.... 之类的数字,我在这里完全是菜鸟,如果这听起来很愚蠢,我很抱歉,我该如何解决这个问题
猜你喜欢
  • 1970-01-01
  • 2019-12-22
  • 1970-01-01
  • 1970-01-01
  • 2019-09-14
  • 1970-01-01
  • 2018-10-16
  • 2019-07-26
  • 1970-01-01
相关资源
最近更新 更多