【问题标题】:How to add up a variable?如何添加一个变量?
【发布时间】:2013-12-04 18:45:07
【问题描述】:

我想知道如何总结他们为 n 输入的数字,即使它是输入而不是 int。我试图平均他们输入的所有数字。

n=print("Enter as many numbers you want, one at the time, enter stop to quit. ")
a=0
while n!="stop":
    n=input("Start now ")
    a+=1

【问题讨论】:

  • 那么问题不应该是:“如何从输入中读取 int?” (其中有很多相关问题。)求和位是a+=n
  • 不一定,这看起来像 Python 3(print 是一个函数)。
  • stackoverflow.com/q/19615427/2864740(有 Python 2 和 3 的答案)
  • 这似乎是关于 Python 2.x 或 3.x 的混淆;确保添加适当的标签。
  • @user2864740 我认为你不会在这里使用a+=n;似乎海报正在使用a 来计算输入的数量(最好使用下面建议的列表)

标签: python int sum


【解决方案1】:

在 Python 2.x 中 input() 将输入评估为 Python 代码,因此从某种意义上说,它会返回一些您可以接受的整数,但也可能会导致错误如果用户输入了无效的内容。 raw_input() 将接受输入并将其作为 string 返回 -> 将其评估为 int 并将它们加在一起。

http://en.wikibooks.org/wiki/Python_Programming/Input_and_Output

【讨论】:

  • 什么是“将其评估为 int”?对来说,这没有意义。刚刚有人告诉我这是一个字符串。
  • Python3 中没有,这里看起来是这样。
【解决方案2】:

您最好使用list 来存储数字。以下代码适用于 Python v3.x,因此如果您想在 Python v2.x 中使用它,只需将 input 替换为 raw_input

print("Enter as many numbers you want, one at the time, enter stop to quit. ")
num = input("Enter number ").lower()
all_nums = list()
while num != "stop":
    try:
        all_nums.append(int(num))
    except:
        if num != "stop":
            print("Please enter stop to quit")
    num = input("Enter number ").lower()

print("Sum of all entered numbers is", sum(all_nums))
print("Avg of all entered numbers is", sum(all_nums)/len(all_nums))

sum & lenlists 上的内置方法,完全按照他们的名字说的做。 str.lower() method 将字符串完全转换为小写。

【讨论】:

  • while num.lower() != 'stop' 怎么样?这将解释您的三个以及任何其他奇怪的案例问题。
  • @thumbtackthief 我确实考虑过这一点,但最后不知何故搞砸了。代码需要大量编辑。谢谢!
【解决方案3】:

这是一种可能性。 try-except 块的重点是使其不易损坏。 if n != "stop" 的要点是在用户输入“stop”时不显示错误消息(不能转换为int

n=print("Enter as many numbers you want, one at the time, enter stop to quit. ")
a=0
while n!="stop":
    n=input("Enter a number: ")
    try:
        a+=int(n)
    except:
        if n != "stop":
            print("I can't make that an integer!")

print("Your sum is", a)

【讨论】:

  • 数字必须是整数吗?小数呢?
  • 此代码会将任何内容截断为整数。所以不,输入的数字不必是整数,但如果可能,它将被强制。
  • 抱歉——我不清楚。我的意思是,根据最初的问题,用户似乎可以输入小数,在这种情况下,您不想将它们转换为整数。
  • “我如何总结他们为 n 输入的数字,即使它是输入而不是 int。” - 操作。诚然,如果它可以容纳浮点数或其他数字类型,这段代码会更健壮,但我认为越简单越好,因为 OP 似乎是初学者。
  • 没错,我只是不清楚 OP 正在寻找什么以及 int 是故意的还是他/她不知道更好。
猜你喜欢
  • 2011-07-25
  • 2020-12-20
  • 1970-01-01
  • 1970-01-01
  • 2014-05-30
  • 2017-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多