Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有没有忽略语法输入的方法?_Python_String_Input - Fatal编程技术网

Python 有没有忽略语法输入的方法?

Python 有没有忽略语法输入的方法?,python,string,input,Python,String,Input,下面是一些用于在句子中查找关键字的系统代码,我正在使用.split()扩展来完成此任务。它工作正常,但当我输入相同的关键字时,例如“Hello”,输入中的句号与代码不匹配,因此返回错误。我的问题是,有没有一种方法允许语法输入,例如.Upper()和.Lower()允许大写字母等 input1 = input("Input 'Hello'") response = input1.split() if "Hello" in response: print("Howdy!") 输出错误: "

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

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

if "Hello" in response:
   print("Howdy!")
输出错误:

"Hello." is not defined.

您不需要特别使用
split
,中的
操作符将检查一个字符串是否是另一个字符串的子字符串。您可以使用以下选项:

input1 = input("Input 'Hello'").lower()

if "hello" in input1:
   print("Howdy!")

无论大小写或标点符号如何,只要用户的输入中包含“hello”
,它都会返回消息。

您不需要使用“split”,特别是--中的
操作符将检查一个字符串是否是另一个字符串的子字符串。您可以使用以下选项:

input1 = input("Input 'Hello'").lower()

if "hello" in input1:
   print("Howdy!")

无论大小写或标点符号如何,只要用户输入中包含“hello”(你好),它都会返回消息。

如果要使用正则表达式执行此操作,可以执行以下操作:

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!")
它首先过滤掉所有的东西,而不是一个单词,然后进行比较

但是,正如蟑螂合唱团所提到的,如果你知道用户将输入什么(虽然不包括单词中间的周期等)

,使用<代码>。
有关详细信息,请参阅。

如果要使用正则表达式执行此操作,可以执行以下操作:

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!")
它首先过滤掉所有的东西,而不是一个单词,然后进行比较

但是,正如蟑螂合唱团所提到的,如果你知道用户将输入什么(虽然不包括单词中间的周期等)

,使用<代码>。
请参阅以了解更多信息。

您可以
.strip()
非字母,或使用正则表达式。谢谢,它在我的代码中会放在哪里?这不是解释正则表达式的正确位置,因为
。strip()
输入1。strip(“.!?”)
将删除句号,在
input1
的开头和结尾加上感叹号和问号。哦,我需要一种即使用户输入“Hello!!!!”一个带有语法字符的输入,也能让“Howdy”打印出来的东西。您可以
.strip()
非字母,或使用正则表达式。谢谢,它会在我的代码中出现在哪里?这不是解释正则表达式的正确位置,因为
.strip()
input1.strip(“.!?”)
将删除
input1
开头和结尾处的句号、感叹号和问号。哦,我需要一个即使输入“Hello!!”也能打印“你好”的东西有语法字符的输入唯一的问题是,如果有人输入的不仅仅是“hello”,它将返回并出错,就像有人输入“hello system”,你使用的是什么版本的Python?如果它是2.7,你应该使用
raw_input
而不是
input
。是的,我用的是3.5Oh-你的意思是如果包含任何其他单词,你不希望消息返回?我只希望消息返回,即使用户输入句号或感叹号。例如,用户可以输入:“Hello system!”并返回“Howdy”。唯一的问题是,如果有人输入的不仅仅是“Hello”,它将返回并出错,就像有人输入“Hello system”,那么您使用的Python版本是什么?如果它是2.7,你应该使用
raw_input
而不是
input
。是的,我用的是3.5Oh-你的意思是如果包含任何其他单词,你不希望消息返回?我只希望消息返回,即使用户输入句号或感叹号。例如,用户可以输入“Hello system!”并返回“Howdy”