不知道为什么我不能在Python中缩进这段代码

时间:2016-02-14 22:05:05

标签: python

如果我在不缩进打印和输入行时运行以下代码,我的代码可以正常工作。这是一个有效的代码示例

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

.............为什么我不能缩进打印和输入?谢谢

4 个答案:

答案 0 :(得分:1)

因为a中的bresult = 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)

因为当您不缩进时abresult函数内定义。只有当程序在函数result内运行时,才需要将其视为一个变量,但结果需要两个参数a和b,这些参数应该在函数外部定义为main变量而不在内部。 <那就是

  
    
      

追踪(最近一次呼叫最后一次):

             

文件“/Users/jlangdon/PycharmProjects/untitled/Stuff.py”,第16行,

             

result = add(a,b)

             

NameError:名称'a'未定义