加上数字之和

时间:2013-11-05 09:16:33

标签: python sum

我需要创建一个用户将以任意数字输入的程序,然后尝试猜测这些数字的总和。

我如何总结数字,然后比较他的猜测?

我试过了:

userNum = raw_input("Please enter a number:\n")

userGuess = raw_input("The digits sum is:\n")

if sum(userNum, userGuess):
    print"Your answer is True"
else:
    print "Your answer is False"

并且它没有用

5 个答案:

答案 0 :(得分:2)

假设您是Python的新手并且已经阅读了基础知识,那么您将使用控制流语句来比较总和和猜测。

不确定这是否100%正确,随时编辑,但它的工作原理。根据他的(假设)初学者级别对其进行编码。假设您已经研究了方法,而循环,raw_input和控制流语句。是的,评论中提到了更简单的方法,但我怀疑他的研究map这是代码;

def sum_digits(n):
    s = 0
    while n:
        s += n % 10
        n /= 10
    return s
sum_digits(mynumber)
mynumber = int(raw_input("Enter a number, ")) 

userguess = int(raw_input("Guess the digit sum: "))
if sum_digits(mynumber) == userguess:
    print "Correct"
else:
    print "Wrong"

相信这个方法的答案。

Digit sum method in Python

答案 1 :(得分:2)

这里有2个问题:

  • raw_input()不返回整数,它返回一个字符串。你不能添加字符串并获得int。你需要找到一种方法将字符串转换为整数,然后添加它们。
  • 在使用sum()时,您正在使用+

再试一次,然后回复你的结果。不要忘记包含错误消息以及您认为发生的事情。

答案 2 :(得分:2)

python代码是:

def digit_sum(n):
  string = str(n)
  total = 0
  for value in string:
      total += int(value)
  return total

并且代码不使用API​​:

def digit_sum1(n):
  total=0
  m=0
  while n:
      m=n%10
      total+=m
      n=(n-m)/10    
return total

答案 3 :(得分:1)

  1. 首先,您需要使用int(raw_input("Please enter a number:\n"))之类的内容,以便输入返回一个整数。
  2. 您可以使用+来获取两个整数的总和,而不是使用sum。现在,您的输入是一个整数。

答案 4 :(得分:1)

基本上我会为这个

使用生成器函数

它将遍历通过raw_input('...')获得的字符串,并创建单个整数的列表

然后可以使用sum

对此列表进行总结

生成器看起来像这样:

sum([ int(num) for num in str(raw_input('Please enter a number:\n')) ])

生成器在for语句之前创建元素的列表(因此列表括号),因此您也可以使用double:

[ 2 * int(num) for num in str(raw_input('Please enter a number:\n')) ]

[ int(num) for num in str(123) ]会产生[1,2,3]

但是,

[ 2 * int(num) for num in str(123) ]会产生[2,4,6]