对不起,如果这是初学者的错误,但是......我是初学者。这是脚本:
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
答案 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的语法