1
import sys
import os
print ("Welcome to the Calculator")

def main():
    a = input ("Please enter the first operand: ")
    op = input ("Please enter the operation you wish to perform, +, -, *, / : ")
    b = input ("Please enter the second operand: ")

    a = int(a)
    b = int(b)

    if op == "+":
            ans = (a + b)

            print (ans)

    elif op == "-":
            ans = (a - b)
            print (ans)

    if op == "*":
            ans = (a * b)
            print (ans)

    elif op == "/":
            ans = (a / b)
            print (ans)

    again = input("Would you like to perform another calculation? Y or N?")

    if again == "Y":
            main()

main()

你好,不好意思问了这么多问题。

基本上,我把我的代码放在上面,并在通过双击 .py 文件执行代码时,它会从 CMD 启动它,在提示消息后:“请输入您要执行的操作,+, -, *, / :"

CMD 只是随机关闭自己。这也发生在我所有的 Python 程序中。任何想法为什么?这与我糟糕的代码有关吗?

非常感谢所有回复:)

4

4 回答 4

4

您需要使用raw_input()而不是input()

所以进行以下更改

def main()
    ...
    op = raw_input ("Please enter the operation you wish to perform, +, -, *, / : ")
    ...
于 2013-09-13T20:19:36.060 回答
4

假设您使用的是 python 2,而不是 3.3

问题是inputpython2中的函数执行代码。这意味着当用户输入 , , 之一时,会*引发异常(因为, or or or or不是完整的表达式或语句)并且程序终止,因此 CMD 关闭。+/-+-*/

要检查这一点,请尝试将input调用包装在try...except语句中:

try:
    op = input('... * / - +')
except Exception:
    input('OPS!')   #just to verify that this is the case.

特别是,这是我尝试+在 python2 中输入时得到的:

>>> input('')
+
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1
    +
    ^
SyntaxError: unexpected EOF while parsing

在 python2 中,您应该使用raw_input返回字符串的函数。在 python3raw_input中重命名为input,因此您的程序运行良好并且没有显示您描述的行为。

于 2013-09-13T20:22:13.600 回答
3

试试,在 main() 下,写

input("\n\nPress the enter key to exit: ")

现在它必须等你按回车键才能通过输入并关闭,试试看,希望我有帮助:)

于 2013-09-13T20:14:29.990 回答
2

这与 Windows 如何处理执行有关。默认设置是在程序终止后立即关闭。可能有一个设置来解决这个问题,但一个快速的解决方案是打开命令提示符,cd指向方向,并直接执行你的脚本。

于 2013-09-13T20:14:11.677 回答