有什么方法可以忽略语法输入吗?

时间:2016-12-08 16:18:42

标签: python string input

下面我有一些代码用于查找句子中关键字的系统,我使用.split()扩展程序完成此任务。它工作正常但是当我输入相同的关键字时,例如" Hello。"我的输入中的句号与代码不匹配,因此返回错误。我的问题是,有没有办法允许.Upper().Lower()等语法输入允许大写字母等?

input1 = input("Input 'Hello'")
response = input1.split()

if "Hello" in response:
   print("Howdy!")

输出错误:

"Hello." is not defined.

2 个答案:

答案 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