python函数下一行未执行

时间:2015-09-21 04:51:03

标签: python

我写了一个简单的代码来查找数字是偶数还是奇数。

这是我的代码:

print("To find number is even or odd")
print("Enter the number ")
def is_even():
  num=int(input())    
if(num % 2 == 0):
  print("Even")
else:
  print("Odd")

当我运行我的代码时,它显示错误:

查找数字是偶数还是奇数 输入数字

Traceback (most recent call last):
  File "C:/Python34/even.py", line 6, in <module>
    if(num % 2 == 0):
NameError: name 'num' is not defined

有人可以解释为什么即使我将输入替换为任何print语句也不会执行函数之后的下一行也不会被执行。

2 个答案:

答案 0 :(得分:0)

你的缩进搞砸了(记住python有有趣的缩进规则)。此外,您不能在函数标识符中使用下划线。现在,num的范围仅在函数iseven()中,所以外面的任何东西都无法读取它。这是更正后的代码。

print("To find number is even or odd")
print("Enter the number ")
def iseven():
    num=int(input())    
    if(num % 2 == 0):
        print("Even")
    else:
        print("Odd")
iseven()

答案 1 :(得分:0)

您的num变量仅在is_even()函数内定义,因此它是该函数的本地变量,无法在外部访问,而且您永远不会调用该函数。对我来说,看起来你打算在函数内部定义代码的检查部分,如果是这样,你需要在函数内部正确缩进部分,缩进在python中很重要,它用于定义块。如果是这样,你需要在定义它之后调用该函数,否则它将无效 -

print("To find number is even or odd")
print("Enter the number ")
def is_even():
  num=int(input())    
  if(num % 2 == 0):
    print("Even")
  else:
    print("Odd")

is_even()