所以我在Python中构建了一个简单的计算器,用户输入两个数字和一个运算符,然后给出答案。他们还可以选择再次运行计算器。我想对答案进行编号,以便每个答案都显示“答案1等于x”,“答案2等于x”等,具体取决于计算器运行的次数。每次我尝试格式化计数器来计算迭代次数时,它都不会起作用而且只是一遍又一遍地将它们标记为“答案1”。任何帮助将不胜感激。我是Python的新手。
answer = "y"
while ((answer == "Y") or (answer == "y") or (answer == "Yes") or (answer == "yes")):
numones = input ("Give me a number: ")
numtwos = input ("Give me another number: ")
numone = float(numones)
numtwo = float(numtwos)
operation = input ("Give me an operation (+,-,*,/): ")
counter = 0
for y in answer:
counter += 1
if (operation == "+"):
calc = numone + numtwo
print ("Answer " + str(counter) + " is " + str(calc))
elif (operation == "-"):
calc = numone - numtwo
print ("Answer " + str(counter) + " is " + str(calc))
elif (operation == "*"):
calc = numone * numtwo
print ("Answer " + str(counter) + " is " + str(calc))
elif (operation == "/"):
calc = numone / numtwo
if (numtwo != 0):
print ("Answer " + str(counter) + " is " + str(calc))
else:
print ("You can't divide by zero.")
else:
print ("Operator not recognized.")
answer = input ("Do you want to keep going? ")
if ((answer == "Y") or (answer == "y") or (answer == "Yes") or (answer == "yes")):
print ()
else:
print ("Goodbye.")
break
答案 0 :(得分:3)
删除counter = 0
循环中的while
分配。并将此声明移到while
循环上方。
也行:
for y in answer:
counter += 1
确实令人困惑,肯定是错的,因为如果你得到了“是”'作为答案,你会得到+3的增加。只需增加(counter += 1
)counter
而不添加for
- 循环。