【发布时间】:2014-06-14 20:15:24
【问题描述】:
我正在编写一个简单的程序来计算一个随机加法数学问题,并要求用户输入答案。
当用户输入答案时,计算机从左到右输入输入的键。我希望输入做相反的事情:从右到左。
http://euclidmagazine.com/2010/12/why-do-we-carry-in-addition/
当然,加法的工作方式是首先添加最右侧的列 - 个位数,然后是十位和百位等。
例如,如果我在上面输入这个加法问题的答案 (635),然后按顺序输入(6 然后 3 然后 5),我希望 6 出现在 9 + 6 下,那么当我键入 3 我希望它把 6(向左)移到 5 + 7 下,然后 3 会出现在 9 + 6 下,然后当我输入 5 时,它会将 6 移到 3 + 2 下,移动 3在 5 + 7 下,然后将 5 放在 9 + 6 下。
我可以为此使用替代输入功能或模块吗?还是你拥有的超级秘技?谢谢。
这是我的代码:
# MAIN
def main():
keepGoing = "Y"
while keepGoing == "Y":
keepGoing = "N"
entranceMessage()
number1, number2 = calculateProblem()
userInput = getInput(number1, number2)
calculateResults(userInput, number1, number2)
keepGoing = input("Would you like to try another problem? \
(Enter \"Y\" for \"Yes\", or any other key for \"No\".): ")
exitMessage()
# DISPLAY OPENING MESSAGE
def entranceMessage():
print()
print("2. Math Quiz (Page 235)")
print("This program will prompt you to answer a series of random mathematical problems.")
# INPUT
def getInput(number1, number2):
print("Answer the following math problem: ")
print("")
if (number1 < 10):
print(" ", number1)
else:
print(" ", number1)
if (number2 < 10):
print("+ ", number2)
else:
print("+", number2)
print("_____")
print(" ")
result = (number1 + number2)
if (result >= 100):
userInput = float(input(" "))
elif ((result >= 10) and (result < 100)):
userInput = float(input(" "))
elif ((result >= 0) and (result < 10)):
userInput = float(input(" "))
return userInput
# PROCESS
def calculateProblem():
import random
number1 = random.randint(1, 100)
number2 = random.randint(1, 100)
return number1, number2
# OUTPUT
def calculateResults(userInput, number1, number2):
result = (number1 + number2)
if (userInput == result):
print()
print("Correct!")
else:
print()
print("Sorry, the answer is:", result)
# DISPLAY CLOSING MESSAGE
def exitMessage():
print("Thank you. Exiting the program..")
# CALL THE MAIN FUNCTION
main()
如果您注意到在我的代码中的函数“getInput”(最后一个 If-elif)中,最后我有一种方法可以将初始光标置于与答案相关的正确对齐位置,但是(A)这种提供了答案的线索,(B)这不是我想要的。
【问题讨论】:
-
只是为了清楚起见。你是单独读一个整数还是每个数字?如果您有 wohle 数字,则问题只是反转数字并右对齐输出文本。
-
不,我要求用户输入,我希望它实时做我想做的事情。
-
如果您注意到在我的代码中的函数“getInput”(最后一个 If-elif)中,最后我有一种方法可以将初始光标置于与什么有关的正确对齐位置答案是,但是(A)这种提供了答案的线索,(B)这不是我想要的。
-
您的格式需要一个额外的缩进或 4 个空格 ;)
-
你的意思是第三条 elif 线?不,我的随机数生成器每个最多只能生成 100 个。另外它们是整数,所以没有小数。