Python 2.7和正则表达式:如果语句返回,则为False

一指手套

为了练习正则表达式,我正在尝试创建一个类似于Zork的非常简单的基于文本的游戏。但是我似乎无法使用正则表达式来执行代码。

运动

import re

def userMove():
    userInput = raw_input('Which direction do you want to move?')
    textArray = userInput.split()
    analyse = [v for v in textArray if re.search('north|east|south|west|^[NESW]', v, re.IGNORECASE)]

   print textArray
   print analyse

   movement = 'null'
   for string in analyse:
       if string is 'North' or 'n':
          movement = 'North'
       elif string is 'East'or'e':
          movement = 'East'
       elif string is 'South'or's':
          movement = 'South'
       elif string is 'West'or'w':
          movement = 'West'

print movement

if / elif样品运行

>>> import movement
>>> moves = movement.userMove()
Which direction do you want to move?Lets walk East
['Lets', 'walk', 'East']
['East']
North

如果样品运行

>>> import movement
>>> moves = movement.userMove()
Which direction do you want to move?I`ll run North
['I`ll', 'run', 'North']
['North']
West

如果for循环将不断设置movement为北;并使用if而不是语句elif将其设置为West。使用正则表达式userInput代替textArray导致方法保持movement为null。

编辑在进一步测试和更改代码之后,我确定正则表达式很好,并且这是if语句或for循环的错误

Ben

您的问题在于以下if语句:

if string is 'North' or 'n':
    movement = 'North'
elif string is 'East'or'e':
    movement = 'East'
elif string is 'South'or's':
    movement = 'South'
etc...

它们与您的期望不符。首先,您不应该将字符串与is-进行比较==其次,该语句的评估方式如下:

if (string is 'North') or 'n':
    movement = 'North'

因此,'n'始终True-意味着您的movement变量始终设置为North

尝试以下方法:

if string in ('North', 'n'):
    etc...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

python 2.x和3.x中的正则表达式unicode

来自分类Dev

python中的正则表达式:将2个正则表达式组合为一个

来自分类Dev

Python和正则表达式

来自分类Dev

将Python 3.4的正则表达式“ fullmatch()”移植到Python 2

来自分类Dev

python正则表达式替换中的if语句

来自分类Dev

Python正则表达式:使用或语句

来自分类Dev

Python正则表达式:使用或语句

来自分类Dev

用于检查条件语句python的正则表达式

来自分类Dev

Python正则表达式语句错误

来自分类Dev

python正则表达式在第1行之后找到第1行和值,在第2行之后找到第2行和值...等

来自分类Dev

使用正则表达式(python)将数字分为2或3的大块

来自分类Dev

Python正则表达式在2个边缘情况下失败

来自分类Dev

如何在python textfsm中组合2个正则表达式?

来自分类Dev

python正则表达式“\2”是什么意思

来自分类Dev

Python2:匹配所有名称的正则表达式模式

来自分类Dev

Python 正则表达式匹配模式“X<string1>:X<string2>”

来自分类Dev

正则表达式返回2组

来自分类Dev

正则表达式返回None(python)

来自分类Dev

Python正则表达式返回非捕获组

来自分类Dev

正则表达式返回None(python)

来自分类Dev

Python 3 正则表达式返回意外结果

来自分类Dev

Python 正则表达式是正确的,但返回 None

来自分类Dev

Python正则表达式在Python 2中有效,但在Python 3中无效

来自分类Dev

Python程序和正则表达式

来自分类Dev

Python正则表达式在原处查找和替换

来自分类Dev

python中的正则表达式和输入验证

来自分类Dev

Python正则表达式-获取时间和日期

来自分类Dev

数据硝基和正则表达式(Python)

来自分类Dev

Python正则表达式-匹配,比较和决定

Related 相关文章

热门标签

归档