-1

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

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

我试过这个:

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"

它没有用

4

5 回答 5

2

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

不确定这是否 100% 正确,请随意编辑,但它确实有效。根据他的(假设)初学者水平对其进行编码。这是假设您已经学习了方法、while 循环、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"

归功于该方法的这个答案。

Python中的数字和方法

于 2013-11-05T09:22:03.907 回答
2

蟒蛇代码是:

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
于 2015-04-21T12:10:32.640 回答
2

您在这里有两个问题:

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

再试一次,然后返回结果。不要忘记包括错误消息和您认为发生的事情。

于 2013-11-05T09:35:08.767 回答
1

基本上我会为此使用生成器函数

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

然后可以使用这个列表来总结sum

生成器看起来像这样:

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

生成器会在 for 语句之前创建元素的列表(因此是列表括号),因此您也可以使用以下方法获取双精度:

[ 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]

于 2013-11-05T09:53:59.507 回答
1
  1. 首先,您需要使用诸如int(raw_input("Please enter a number:\n"))输入返回整数之类的东西。
  2. 您可以使用 + 来获得两个整数的和,而不是使用 sum 。现在您的输入是整数,这将起作用。
于 2013-11-05T09:49:13.137 回答