下面我有一些代码用于查找句子中关键字的系统,我使用.split()
扩展程序完成此任务。它工作正常但是当我输入相同的关键字时,例如" Hello。"我的输入中的句号与代码不匹配,因此返回错误。我的问题是,有没有办法允许.Upper()
和.Lower()
等语法输入允许大写字母等?
input1 = input("Input 'Hello'")
response = input1.split()
if "Hello" in response:
print("Howdy!")
输出错误:
"Hello." is not defined.
答案 0 :(得分:3)
您不需要特别使用split
- in
运算符将检查一个字符串是否是另一个字符串的子字符串。您可以使用以下内容:
input1 = input("Input 'Hello'").lower()
if "hello" in input1:
print("Howdy!")
无论案例或标点符号如何,只要用户输入中包含hello
,就会返回一条消息。
答案 1 :(得分:0)
如果您想使用正则表达式执行此操作,可以执行以下操作:
import re
input1 = input("Input 'Hello'").lower() # from asongtoruin's answer
input1 = re.sub(r'[^\w]', '', input1) # replace everything not a word character with empty string
if input1 == "hello":
print("Howdy!")
首先过滤掉所有内容,然后进行比较。
但是像Jasper提到的那样,如果你知道用户将要输入什么,那么使用.strip()
会更简单(虽然这不会涵盖句子中间的句号等)
input1 = input("Input 'Hello'").lower() # from asongtoruin's answer
input1 = input1.strip('.!?') # or try: strip(string.punctuation)
if input1 == "hello":
print("Howdy!")
有关详细信息,请参阅Best way to strip punctuation from a string in Python。