Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的名称错误和函数_Python_Function_Python 3.x_Nameerror - Fatal编程技术网

python中的名称错误和函数

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:

虽然我已经定义了一个术语,但我经常会遇到一个名称错误,问题在于第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:
        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()代码。由于模块局部变量也是模块的全局变量,因此出现了一些混淆