数学脚本有什么问题?

时间:2015-02-25 22:40:59

标签: python scripting syntax-error

对不起,如果这是初学者的错误,但是......我是初学者。这是脚本:

num1 = input("Num1:");
num2 = input("Num2:");

try:
  val = int(num1)
except ValueError:
   print("ERROR : Num1 is not a number!")

   val2 = inf(num2)
   except ValueError:
     print("ERROR : Num2 is not a number!")
print("Maths");
print(num1 + num2);

脚本的目的是添加两个数字,如果他们输入的数字不是数字,则表示它不是数字。 我一直在犯错,但我不知道为什么。注意:这是Python。

这是我得到的错误:

File "<string>", line 10
except ValueError:
^ SyntaxError: invalid syntax

3 个答案:

答案 0 :(得分:3)

编程就是将(更大的)问题分解为更小的问题

你遇到的第一个小问题是得到整数输入。一个有用的方法是将问题抽象出来

def get_integer(prompt=""):
    while True:
         try:
            return int(raw_input(prompt))
         except:
            print "Invalid input. please try again"

现在,当您需要来自用户的整数时,您可以简单地调用此方法

n1 = get_integer("Enter the first integer:")
n2 = get_integer("Enter The second integer:")

接下来你必须确定如何添加

import operator
def get_operation():
    my_operators = {"+":operator.add,"-":operator.sub}
    while True:
          try:
              return my_operators[raw_input("Enter a + or -:")]
          except KeyError:
              print "Invalid input!"

现在你可以轻松地结合2

 n1 = get_integer("Enter the first integer:")
 n2 = get_integer("Enter The second integer:")
 print get_operation()(n1,n2)
你应该看到像

这样的东西
>>> n1 = get_integer("Enter the first integer:")
Enter the first integer:7
>>> n2 = get_integer("Enter The second integer:")
Enter The second integer:8
>>> print get_operation()(n1,n2)
Enter a + or -:+
15

答案 1 :(得分:1)

您收到错误的原因是对try/except blocks work in Python的基本误解:

num1 = input("Num1:");
num2 = input("Num2:");
try:
  val = int(num1)
except ValueError:
   print("ERROR : Num1 is not a number!")

   val2 = inf(num2)
   except ValueError:
     print("ERROR : Num2 is not a number!")
print("Maths");
print(num1 + num2);

您的错误指向第10行:

   except ValueError:

没有相应try块的除外块。一个except&#39;捕获&#39;在try块中发生的错误,因为此try没有except,所以它是#34;语法错误&#34;,这会阻止代码运行。< / p>

您可以通过在try周围添加val2作为整数来更正它:

try:
    val2 = inf(num2)
except ValueError:
    print("ERROR : Num2 is not a number!")

重要的是,这不会修复您的代码,因为人们已经声明inf是一个未声明的函数,并且需要:

try:
    val2 = int(num2)
except ValueError:
    print("ERROR : Num2 is not a number!")

答案 2 :(得分:-1)

num1 = input("Num1:");
num2 = input("Num2:");

try:
  val = int(num1)
except ValueError:
   print("ERROR : Num1 is not a number!")


try:
  val = int(num1)
except ValueError:
   print("ERROR : Num2 is not a number!")

print("Maths")
print(num1 + num2)

你得到了什么样的错误? 一定要检查python的语法