Python 程序可以';不要只返回True和False

Python 程序可以';不要只返回True和False,python,Python,我的问题如下: 你生活在卡特西亚市,那里所有的道路都以完美的网格布局。你提前十分钟到达,没有预约,所以你决定趁机去散散步。该市为市民的手机上提供了一个步行生成应用程序——每次你按下按钮,它都会向你发送一组表示步行方向的单字母字符串(例如['n','s','w','e'])。你总是只为每个字母(方向)走一个街区,你知道穿过一个城市街区需要一分钟,所以创建一个函数,如果应用程序给你的步行正好需要十分钟(你不想早或晚!),那么该函数将返回真值,当然,它会让你回到起点。否则返回false 输入['n',

我的问题如下:

你生活在卡特西亚市,那里所有的道路都以完美的网格布局。你提前十分钟到达,没有预约,所以你决定趁机去散散步。该市为市民的手机上提供了一个步行生成应用程序——每次你按下按钮,它都会向你发送一组表示步行方向的单字母字符串(例如
['n','s','w','e']
)。你总是只为每个字母(方向)走一个街区,你知道穿过一个城市街区需要一分钟,所以创建一个函数,如果应用程序给你的步行正好需要十分钟(你不想早或晚!),那么该函数将返回真值,当然,它会让你回到起点。否则返回false

输入
['n','s','n','s','n','s','n','s','n','s','n','s']
应返回
True
,但我下面的解决方案返回
None

def is_valid_walk(walk):
if not len(walk) == 10:
    return False

elif 'n' in walk:
    if not 's' in walk:
        return False
    elif not walk.count('n') == walk.count('s'):
        return False

elif 's' in walk:
    if not 'n' in walk:
        return False

elif 'e' in walk:
    if not 'w' in walk:
        return False
    elif not walk.count('e') == walk.count('w'):
        return False

elif 'w' in walk:
    if not 'e' in walk:
        return False

else:
    return True

请测试下面的代码

def is_valid_walk(walk):
    if not len(walk) == 10:
        return False
    elif 'n' in walk:
        if walk.count('n') == walk.count('s'):
            return True
        else:
            return False
    elif 's' in walk:
        if walk.count('s') == walk.count('n'):
            return True
        else:
            return False
    elif 'e' in walk:
        if walk.count('e') == walk.count('w'):
            return True
        else:
            return False
    elif 'w' in walk:
        if walk.count('w') == walk.count('e'):
            return True
        else:
            return False

        

walk = ['n', 's', 'n', 's', 'n', 's', 'n', 's', 'n', 's']
print(is_valid_walk(walk))

尝试删除“else”部分。因此,在函数的末尾,返回的结果是,对于任何内部if/elif链,您都没有
else
。我感觉您并不真正理解
else
elif
中的
el
的含义。您似乎希望执行所有
else
elif
块,而不管是执行上一个
if
还是
elif
块。
if
/
elif
链在第一个通过的测试时立即停止-它不会执行任何进一步的
elif
测试,或者如果遇到通过的测试,它不会执行
else
块。您的代码有明显的缩进错误,但正确的缩进应该是什么并不明显。您的问题陈述应该包含有效的Python,以便我们对其进行分析。请修复这个错误(在这个站点的桌面版本上,粘贴你的代码,然后选择它并键入ctrl-K)。我测试了上面的代码,它返回的结果和你期望的一样。