python中的名称错误和函数
虽然我已经定义了一个术语,但我经常会遇到一个名称错误,问题在于第28行的“day”python中的名称错误和函数,python,function,python-3.x,nameerror,Python,Function,Python 3.x,Nameerror,虽然我已经定义了一个术语,但我经常会遇到一个名称错误,问题在于第28行的“day” def today(): day = input("What day is it?") if "sunday" in day: day = 0 elif "monday" in day: day = 1 elif "tuesday" in day: day = 2 elif "wednesday" in day:
def today():
day = input("What day is it?")
if "sunday" in day:
day = 0
elif "monday" in day:
day = 1
elif "tuesday" in day:
day = 2
elif "wednesday" in day:
day = 3
elif "thursday" in day:
day = 4
elif "friday" in day:
day = 5
elif "saturday" in day:
day = 6
else:
today()
today()
days_on_vacation = int(input("How many days will you be on vacation? "))
days_to_add_to_day = days_on_vacation % 7
day += days_to_add_to_day
我已经在函数
today()
中给了day一个值,对吗?为什么有人告诉我它没有定义?在函数中指定的名称是局部变量;它们在功能外部不可见
共享该结果的最佳方式是从函数返回值,以便您可以将其作为调用的结果分配给变量:
def today():
# ...
return day
及
result
变量保存函数返回的值。您也可以在那里自由使用名称day
,但这是一个独立于函数内部的变量
通过使用递归函数调用,您确实使问题复杂化了;然后,您还需要确保将递归调用的结果沿链传回:
def today():
# ...
else:
return today()
return day
然而,这里最好不要依赖递归;一个简单的enless循环会做得更好;从函数返回将自动结束循环:
def today():
while True:
day = input('...')
# ...
else:
# not valid input, restart the loop
continue
# input was valid, return the result
return day
在函数中指定给的名称是局部变量;它们在功能外部不可见 共享该结果的最佳方式是从函数返回值,以便您可以将其作为调用的结果分配给变量:
def today():
# ...
return day
及
result
变量保存函数返回的值。您也可以在那里自由使用名称day
,但这是一个独立于函数内部的变量
通过使用递归函数调用,您确实使问题复杂化了;然后,您还需要确保将递归调用的结果沿链传回:
def today():
# ...
else:
return today()
return day
然而,这里最好不要依赖递归;一个简单的enless循环会做得更好;从函数返回将自动结束循环:
def today():
while True:
day = input('...')
# ...
else:
# not valid input, restart the loop
continue
# input was valid, return the result
return day
在函数中指定给的名称是局部变量;它们在功能外部不可见 共享该结果的最佳方式是从函数返回值,以便您可以将其作为调用的结果分配给变量:
def today():
# ...
return day
及
result
变量保存函数返回的值。您也可以在那里自由使用名称day
,但这是一个独立于函数内部的变量
通过使用递归函数调用,您确实使问题复杂化了;然后,您还需要确保将递归调用的结果沿链传回:
def today():
# ...
else:
return today()
return day
然而,这里最好不要依赖递归;一个简单的enless循环会做得更好;从函数返回将自动结束循环:
def today():
while True:
day = input('...')
# ...
else:
# not valid input, restart the loop
continue
# input was valid, return the result
return day
在函数中指定给的名称是局部变量;它们在功能外部不可见 共享该结果的最佳方式是从函数返回值,以便您可以将其作为调用的结果分配给变量:
def today():
# ...
return day
及
result
变量保存函数返回的值。您也可以在那里自由使用名称day
,但这是一个独立于函数内部的变量
通过使用递归函数调用,您确实使问题复杂化了;然后,您还需要确保将递归调用的结果沿链传回:
def today():
# ...
else:
return today()
return day
然而,这里最好不要依赖递归;一个简单的enless循环会做得更好;从函数返回将自动结束循环:
def today():
while True:
day = input('...')
# ...
else:
# not valid input, restart the loop
continue
# input was valid, return the result
return day
完整的规则是,您分配给任何位置的名称都是本地的,并且在当前本地范围之外不可见,除非
global
或nonlocal
另有规定。这同样适用于类主体和exec()代码。出现了一些混淆,因为模块局部变量也是模块的全局变量。完整的规则是,您分配给任何位置的名称都是局部的,并且在当前局部范围之外不可见,除非全局
或非局部
另有规定。这同样适用于类主体和exec()代码。出现了一些混淆,因为模块局部变量也是模块的全局变量。完整的规则是,您分配给任何位置的名称都是局部的,并且在当前局部范围之外不可见,除非全局
或非局部
另有规定。这同样适用于类主体和exec()代码。出现了一些混淆,因为模块局部变量也是模块的全局变量。完整的规则是,您分配给任何位置的名称都是局部的,并且在当前局部范围之外不可见,除非全局
或非局部
另有规定。这同样适用于类主体和exec()代码。由于模块局部变量也是模块的全局变量,因此出现了一些混淆