电影游戏是由两个人玩的游戏,流程如下。第一位玩家为电影命名。然后,第二个播放器为新电影命名,该电影的标题以第一个播放器命名的电影的最后一个字母开头。
游戏中我们将忽略定冠词“ 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()
答案 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变量上使用的。