电影游戏-在电影开头跳过“ The”

时间:2019-05-30 17:30:05

标签: python

电影游戏是由两个人玩的游戏,流程如下。第一位玩家为电影命名。然后,第二个播放器为新电影命名,该电影的标题以第一个播放器命名的电影的最后一个字母开头。

游戏中我们将忽略定冠词“ the”,因此,如果玩家将电影命名为“ Her Alibi”,则下一位玩家可以将电影定名为“ The Incredibles”,因为冠词“ the”将被忽略。

如何从电影标题中删除“ The”?

def userInput(lastInput):
    if lastInput == None:
            return str(input("Enter a movie title: ")).lower()
    if lastInput[:4] == "The ": # doesn't work
        lastInput = lastInput[4:] # doesn't work
    while True:
        userChoice = str(input("Enter a movie title: ")).lower()
        if userChoice[0] == lastInput[-1]:
            return userChoice
        else:
            print("\nInvalid input, what would you like to do?")
            instructions()

3 个答案:

答案 0 :(得分:0)

在您提到 THE 的情况下,您可以用空字符串替换部分字符串, 采用 以下代码从字符串

中删除您想要的单词
str="The Incredibles"
str.replace("The","")

答案 1 :(得分:0)

考虑使用正则表达式

import re
a = r'^(\bthe\b)'
sts  = ['the incredibles', 'theodore', 'at the mueseum', 'their words' ]
for i in sts:
    b = re.sub(a,'', i)
    print(b)

我使用的正则表达式似乎有效,但是您可能希望使用此链接https://regex101.com/r/pX5sD5/3

测试更多示例

答案 2 :(得分:0)

您可以这样做:

if lastInput.lower().startswith("the "): lastInput = lastInput[4:]

使用字符串的startswith()方法,您可以直接测试第一个单词(包括其后的空格)。为了支持各种大小写,将字符串转换为小写(使用lower())仅允许您对大写/小写变体的任意组合(例如“ The”,“ the”,“ THE”)进行一次测试。 。

我还注意到您没有将此排除逻辑应用于userChoice变量,这是我希望在其中使用它而不是在lastInput变量上使用的。