我仍然是python的新手,我正在做一个关于路径和文件的项目。不幸的是,我无法发布该项目的代码,否则我可能遇到麻烦。所以我做了一个类似于我希望用我的代码执行的练习题,我想知道是否有人可以帮助我,因为我已经被困在这几天了。
好的,我想要做的是在验证第一个输入并输入第二个输入后打印列表L中包含第二个输入的所有句子。防爆。如果我有一个名为
的列表dog_sentences = ['dogs are cute', 'dogs are loyal', 'hi cat', 'dogs rule']
如果我的第二个输入是单词dog。我希望它打印出列表中包含单词dog的所有句子。所以我想打印出来的是以下内容。
dogs are cute
dogs are loyal
dogs rule
这就是我希望能够在shell中打印的内容。所以这些是我所做的实践问题,并且尝试过两种不同的方式。
这是清单:
L=['hi there', 'it was nice to say hi', 'saying hi this many times is awkward',
'hey I can also say hola', 'no need to say hi']
第一种方式:
while True:
match = input().strip()
for sentence in L:
if match == 'Next' + ' ' + 'step':
print('match')
new_word_match = input().strip()
if new_word_match in sentence:
print(sentence)
break
else:
print('error')
但是在shell中它只是打印出列表中的第一个句子,然后每次点击进入时都会继续输出错误。
第二种方式:while True:
match = input().strip()
for sentence in L:
print(sentence)
if match == 'Next' + ' ' + 'step':
print('match')
new_word_match = input().strip()
if new_word_match in sentence:
print(sentence)
break
else:
print('error')
shell只会给我最后一句“没必要打个招呼”。但我想要打印的是
hi there
it was nice to say hi
saying hi this many times is awkward
no need to say hi
如果有人能帮助我,我会非常感激,并提前非常感谢你。
答案 0 :(得分:0)
l = ["god is there", "human are there", "nobody there"]
string = str(raw_input("which word r u lookin for: "))
for i in range(0, len(l)):
if(string in str(l[i])):
print(l[i])
即使我是Python的新手......希望它有所帮助
答案 1 :(得分:0)
如果您不需要重复此过程。下面的代码应该有效:
input1 = input().strip()
match_string = "Next Step"
if input1 == match_string:
input2 = input().strip()
for sentence in sentences:
if input2 in sentence:
print(sentence)
如果你需要重复一遍:
while True:
input1 = input().strip()
match_string = "Next Step"
if input1 == match_string:
input2 = input().strip()
for sentence in sentences:
if input2 in sentence:
print(sentence)
....some condition to break out....
答案 2 :(得分:0)
我不确定我理解你的问题。我也是Python的新手,也可能无法看到全貌。这就是我想出来的。
searched_words = input("word you want to see in text: ")
for i in L:
if searched_words in i:
print(i)
如果你想连续循环:
ans = True
while ans == True:
searched_words = raw_input("word you want to see in text: ")
for i in L:
if searched_words in i:
print(i)
check = raw_input("Do you wish to continue searching for words in the list(y/n)?")
if check == 'n':
ans = False
希望这有帮助
答案 3 :(得分:0)
改为使用正则表达式模块(用document.ready
表示)。例如:
re
import re
dog_sentences = ['dogs are cute', 'dogs are loyal', 'hi cat', 'dogs rule']
for i in range(0, len(dog_sentences)):
m = re.match("dogs", dog_sentences[i])
if m is not None:
print dog_sentences[i]
首先导入正则表达式模块,这是该程序所必需的。然后,import re
将启动for i in range(0, len(dog_sentences)):
循环,以帮助您搜索列表中的每个项目。 for
用作列表的长度。由于最后一个数字比编写的数字少一个,因此使用len()
搜索列表将非常有用。
dog_sentences[i]
第一个参数是您要在字符串中找到的字符串或模式,这是您的下一个项目。如果没有匹配,则m = re.match("dogs", dog_sentences[i])
等于m
。
None
如果匹配(if m is not None:
print dog_sentences[i]
不等于m
),则打印包含其中字符串的相应项目。