2014-07-21 76 views
-1

我是一个相当新的程序员,目前我已经被分配了一个项目来创建一个循环计算器,即使在你使用其中一个计算器功能之后,它仍会继续下去,直到你做出选择。我的计算器目前的问题是,每当我尝试在Pydev上测试我的函数时,都会有无休止的终止。我已经解决了第一个问题,Pydev将我的一个变量(选择)当作未使用读取的,因此我使用了“ctrl + 1”技巧,并且摆脱了未使用的变量警告。关于如何能够运行此程序并使其不断循环的任何提示?Pydev程序不断终止

def main():  
    loop=1 
    choice=0 # @UnusedVariable 
    while loop == 1: 
     print("Welcome to Calculator Function!") 
     print("Your options are:") 
     print(" ") 
     print("1/) Addition") 
     print("2/) Subtraction") 
     print("3/) Multiplication") 
     print("4/) Division") 
     print("5/) Quit CalculatorFunction.py") 
     print(" ") 

    choice = int(raw_input("Choose your option: ").strip()) 
    if choice == 1: 
     add1 = input("Add what: ") 
     add2 = input("To what: ") 
     print add1, "+", add2, "=", add1+add2 
    elif choice == 2: 
     sub2 = input("Subtract what: ") 
     sub1 = input("From what: ") 
     print sub1, "-", sub2, "=", sub1-sub2 
    elif choice == 3: 
     mult1 = input("Multiply what: ") 
     mult2 = input("To what: ") 
     print mult1, "*", mult2, "=", mult1*mult2 
    elif choice == 4: 
     div2= input("Divide what: ") 
     div1= input("From what: ") 
     print div1, "/", div2, "=", div1/div2 
    elif choice == 5: 
     loop = 0 
     print"Thank you for using CalculatorFunction.py have a good day!" 
    else: 
     print"No selection made, please try again."  


if __name__ == '__main__': 
    main() 
+0

* “不断终止” *?我会说它永远不会终止; 'loop == 1'无限期地保持为'真'。 – jonrsharpe

+0

它看起来像你想要的是[REPL](http://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop)(read-eval-print loop)。目前,我能看到的最明显的问题是除了'while'循环中的打印以外,你什么都没有。如果您正确复制了缩进,则while循环应该永远运行,除了提示之外什么也不打印。 –

+0

另外,你是(危险地)混合'input'和'raw_input'。如果你使用的是足够早的python版本,而'raw_input'是一个选项,那么你应该不会**使用'input'。当然,角落案例会让你的生活方式更容易,没有特别的缺点,但这些非常非常罕见,一个好的经验法则是假装他们不存在,直到你更有知识。 –

回答

0

您的if - else块在while循环之外,这就是为什么它不起作用。这里是正确缩进代码:

def main():  
    loop=1 
    choice=0 # @UnusedVariable 
    while loop == 1: 
     print("Welcome to Calculator Function!") 
     print("Your options are:") 
     print(" ") 
     print("1/) Addition") 
     print("2/) Subtraction") 
     print("3/) Multiplication") 
     print("4/) Division") 
     print("5/) Quit CalculatorFunction.py") 
     print(" ") 

     choice = int(raw_input("Choose your option: ").strip()) 
     if choice == 1: 
      add1 = input("Add what: ") 
      add2 = input("To what: ") 
      print add1, "+", add2, "=", add1+add2 
     elif choice == 2: 
      sub2 = input("Subtract what: ") 
      sub1 = input("From what: ") 
      print sub1, "-", sub2, "=", sub1-sub2 
     elif choice == 3: 
      mult1 = input("Multiply what: ") 
      mult2 = input("To what: ") 
      print mult1, "*", mult2, "=", mult1*mult2 
     elif choice == 4: 
      div2= input("Divide what: ") 
      div1= input("From what: ") 
      print div1, "/", div2, "=", div1/div2 
     elif choice == 5: 
      loop = 0 
      print"Thank you for using CalculatorFunction.py have a good day!" 
     else: 
      print"No selection made, please try again."  



if __name__ == '__main__': 
    main() 

这对pydev很有效。

+0

谢谢,我早先修好了它,但看起来这个工作比我以前做的工作少。 – StackXchangeT

+0

您应该在eclipse中试用调试器。作为一名新的程序员,调试是一项非常有用的学习技能。 – user2963623

+0

我今天真的看着那个!我还有很多东西需要学习,我将再次编辑程序,以便向用户询问他们想要执行多少功能,并且程序将在用计算器执行这些功能后终止。 @ user2963623 – StackXchangeT

0

感谢您关于“缩进”和其他一些事情的提示,我终于想出了该程序的作品,谢谢大家的意见。我做了什么来解决我的直接终止问题是修复缩进。然后为了让程序不断循环,如果没有做出选择,我添加了继续,实质上终止程序的唯一方法是选择列出为“5”的选项quit。

def main() 
    loop=1 
    choice=0 # @UnusedVariable 
    while loop == 1: 
     print(" ") 
     print("Welcome to Calculator Function!") 
     print("Your options are:") 
     print(" ") 
     print("1) Addition") 
     print("2) Subtraction") 
     print("3) Multiplication") 
     print("4) Division") 
     print("5) Quit CalculatorFunction.py") 
     print(" ") 

     choice = int(raw_input("Choose your option: ").strip()) 
     if choice == 1: 
      add1 = int(raw_input("Add what: ")) 
      add2 = int(raw_input("To what: ")) 
      print add1, "+", add2, "=", add1+add2 
     elif choice == 2: 
      sub2 = int(raw_input("Subtract what: ")) 
      sub1 = int(raw_input("From what: ")) 
      print sub1, "-", sub2, "=", sub1-sub2 
     elif choice == 3: 
      mult1 = int(raw_input("Multiply what: ")) 
      mult2 = int(raw_input("To what: ")) 
      print mult1, "*", mult2, "=", mult1*mult2 
     elif choice == 4: 
      div2= int(raw_input("Divide what: ")) 
      div1= int(raw_input("From what: ")) 
      print div1, "/", div2, "=", div1/div2 
     elif choice == 5: 
      loop = 0 #Ends the program 
      print"Thank you for using CalculatorFunction.py have a good day!" 
     else: 
      print"No selection made, please try again." 
      continue #loops the program 

如果 == '主要': 的main()