Python 尝试在if语句之外调用函数

Python 尝试在if语句之外调用函数,python,Python,我正在做一些Python练习,遇到了一个令人沮丧的错误: line 18, in <module> modulo() NameError: name 'modulo' is not defined 使modulo接受一个参数,在if语句之外定义它 def modulo(num): answer = int(num) % 2 if answer == 0: print("Your number, " + num + " is even.") elif a

我正在做一些Python练习,遇到了一个令人沮丧的错误:

line 18, in <module>
    modulo()

NameError: name 'modulo' is not defined

使
modulo
接受一个参数,在if语句之外定义它

def modulo(num):
  answer = int(num) % 2
  if answer == 0:
    print("Your number, " + num + " is even.")
  elif answer > 0:
    print("Your number, " + num + " is odd.")
  else:
    print("Error. Please try again.")

number = input("Please enter a number: ")

if number.isdigit():
    modulo(number)
else:
    print("Please try again")

使
modulo
接受一个参数,在if语句之外定义它

def modulo(num):
  answer = int(num) % 2
  if answer == 0:
    print("Your number, " + num + " is even.")
  elif answer > 0:
    print("Your number, " + num + " is odd.")
  else:
    print("Error. Please try again.")

number = input("Please enter a number: ")

if number.isdigit():
    modulo(number)
else:
    print("Please try again")

您应该在if语句之外编写函数,在这种情况下,函数将仅在
number.isdigit()
True
时定义。您应该在if语句之外编写函数,在这种情况下,函数将仅在
number.isdigit()时定义
True

函数在if语句内部定义,但在外部使用。如果if语句从未运行,那么这将不起作用。@rdas谢谢!天哪,那太愚蠢了。通过在if语句中调用它修复了它。我很欣赏这种快速的响应。只是一个一般性的建议,python有作用域,在作用域内定义的东西在它之外是无法访问的。这意味着,例如,函数中使用的变量对于函数之外的任何对象都是不可访问的,对于定义,必须先运行这些变量,然后才能调用它们。快乐编码!该函数在if语句内部定义,但在外部使用。如果if语句从未运行,那么这将不起作用。@rdas谢谢!天哪,那太愚蠢了。通过在if语句中调用它修复了它。我很欣赏这种快速的响应。只是一个一般性的建议,python有作用域,在作用域内定义的东西在它之外是无法访问的。这意味着,例如,函数中使用的变量对于函数之外的任何对象都是不可访问的,对于定义,必须先运行这些变量,然后才能调用它们。快乐编码!非常感谢。对于python来说,这帮了大忙。谢谢!对于python来说,这有很大帮助。