我需要创建一个用户将以任意数字输入的程序,然后尝试猜测这些数字的总和。
我如何总结数字,然后比较他的猜测?
我试过了:
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"
并且它没有用
答案 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"
相信这个方法的答案。
答案 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)
int(raw_input("Please enter a number:\n"))
之类的内容,以便输入返回一个整数。 答案 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]