如果我在不缩进打印和输入行时运行以下代码,我的代码可以正常工作。这是一个有效的代码示例
def add(a, b):
try:
return float(a) + float(b)
except ValueError:
return print('Not a number')
print ("The first number you want to add?")
a = input("First no: ")
print ("What's the second number you want to add?")
b = input("Second no: ")
result = add(a, b)
print(result)
但是如果我缩进输入和打印行,我会收到一条消息,表示A未定义
def add(a, b):
try:
return float(a) + float(b)
except ValueError:
return print('Not a number')
print ("The first number you want to add?")
a = input("First no: ")
print ("What's the second number you want to add?")
b = input("Second no: ")
result = add(a, b)
print(result)
Traceback (most recent call last):
File "/Users/jlangdon/PycharmProjects/untitled/Stuff.py", line 16, in <module>
result = add(a, b)
NameError: name 'a' is not defined
Process finished with exit code 1
.............为什么我不能缩进打印和输入?谢谢
答案 0 :(得分:1)
因为a
中的b
和result = add(a, b)
未定义。您需要为该函数提供实际值。
示例:
def add(a,b):
try:
return float(a) + float(b)
except ValueError:
print('Not a number')
print ("The first number you want to add?")
a = input("First no: ")
print ("What's the second number you want to add?")
b = input("Second no: ")
result = add(12.3,45.6)
print(result)
答案 1 :(得分:1)
如果你没有缩进,那么:
a = input("First no: ")
创建a
,并且:
b = input("Second no: ")
创建b
如果您缩进a
并且未创建b
,请执行以下操作:
result = add(a, b)
您有错误。
答案 2 :(得分:1)
那是因为...... a
没有定义。怎么会这样?您的代码所做的第一件事是:
result = add(a,b)
但a
没有价值,b
也没有价值。 add
永远不会被召唤。
答案 3 :(得分:0)
因为当您不缩进时a
和b
在result
函数内定义。只有当程序在函数result
内运行时,才需要将其视为一个变量,但结果需要两个参数a和b,这些参数应该在函数外部定义为main
变量而不在内部。 <那就是
追踪(最近一次呼叫最后一次):
文件“/Users/jlangdon/PycharmProjects/untitled/Stuff.py”,第16行,
result = add(a,b)
NameError:名称'a'未定义