【问题标题】:Problem with adding up two numbers from a list. Python将列表中的两个数字相加时出现问题。 Python
【发布时间】:2020-09-06 19:07:12
【问题描述】:

我对编程真的很陌生(两天大),所以请原谅我的 Python 愚蠢。我最近遇到了从列表中添加数字的问题。我设法想出了这个程序:

list_nums = ["17", "3"]           
num1 = list_nums[0]                            
num2 = list_nums[1]                      
sum = (num1) + (num2)                        
print(sum)
 

问题在于,Python 不是将 num1 与 num2 (17+3=20) 相加,而是将这两个数字结合起来(即“173”)。我该怎么做才能将数字相加而不是合并它们?

【问题讨论】:

  • 它们是字符串。试试:sum = int(num1) + int(num2),或使用list_nums = [17, 3]
  • @GAEfan 用括号括住单个值不会构成元组。

标签: python list numbers combinations add


【解决方案1】:

"17""3"这些是字符串,如果你去掉它们的双引号,它们就会变成整数 173

所以如果你想添加 2 个数字,在 Python 中它们必须是 integerfloat

只需删除列表中的双引号: list_nums = [17, 3]

【讨论】:

【解决方案2】:

您的num1num2 变量包含字符串值'17''3'。用于字符串的运算符 + 用作串联,例如'17' + '3' == '173'。如果您需要从中取出 20 个,则需要使用数字类型,例如整数。为此,您需要从 17 和 3 文字中删除引号:

list_nums = [17, 3]           
num1 = list_nums[0]                            
num2 = list_nums[1]                      
acc = num1 + num2
print(acc)

...或即时将字符串转换为整数:

list_nums = ["17", "3"]           
num1 = list_nums[0]                            
num2 = list_nums[1]                      
acc = int(num1) + int(num2)
print(acc)

P.S. sum 是 python 内置函数的名称。一般来说,避免覆盖这些名称是个好主意。要避免的其他常用名称:idtypeminmax 等。

【讨论】:

  • 问题已经解决了,但这是一些非常有用的信息,我肯定会在未来使用。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-16
  • 1970-01-01
  • 2021-02-09
  • 1970-01-01
  • 2021-09-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多