蟒蛇。用户输入(1)要列出的字符串。用户输入(2)查找第一个用户输入中是否有单词

时间:2016-04-08 12:35:25

标签: python python-3.x

编辑代码是显示原始句子/列表中第二个输入变量的位置,如果输入第二个输入,它总是返回13

我的代码需要有一个用户输入,然后转换为一个列表。我完成了那部分。我需要获取第二个用户输入的帮助,然后查找第二个用户输入是否在第一个用户输入的句子中。我正在处理的代码如下:

  sent = str(input("Sentence:"))
  sent.split()
  lkupwrd = str(input("What word do you want to look up?"))
  print (sent.index(lkupwrd))

5 个答案:

答案 0 :(得分:1)

使用分割功能的输出。要获取所有出现的lookupword列表,您可以使用列表推导。有关详细信息,请访问:https://docs.python.org/2/tutorial/datastructures.html#list-comprehensions

sent = str(input("Sentence:"))
sent = sent.split(' ')
lkupwrd = str(input("What word do you want to look up?"))
if lkupwrd in sent:
    print 'The word is in the sentence'
    print [i for i in range(len(sent)) if sent[i] == lkupwrd]
else:
    print 'The word is not in the sentence

答案 1 :(得分:0)

sent.split()

split()方法返回列表。您需要将返回值分配给变量才能使用它。该方法不会修改字符串对象。

sent = sent.split()

但是,我建议为str对象和列表对象使用不同的变量名。我发现它可以更容易地跟踪名称的含义以及对它们有效的操作。

答案 2 :(得分:0)

您可以使用in

sent = input("Sentence:").split()
lkupwrd = str(input("What word do you want to look up?")).lower()

wordList = [word.lower() for word in sent]

if lkupwrd in wordList:
    print([i for i,j in enumerate(wordList) if j == lkupwrd])

您无需在str上使用sent,因为input()无论如何都会转换为str

更多信息:list comprehensionsinput()enumerate()lower()

修改

这是enumerate()的简单示例:

myList = ["a","b","c","d","e"]

myListEnumerated = enumerate(myList)

print(list(myListEnumerated))

输出:

[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e')]

如您所见,您可以使用enumerate()查找每个元素的索引。上面代码中的ij对应于列表中每个元素的索引和值。

答案 3 :(得分:0)

这对您有何帮助:

s = input("Sentence: ")
l = input("What word do you want to look up? ")
w = s.split()
if l in w:
    print "found @ {}".format(s.index(l))
else:
    print "not found"

<强>更新

如果您希望它不区分大小写,请将两行更改为:

w = s.lower().split()

if l.lower() in w:

答案 4 :(得分:0)

您的代码中有一些冗余步骤。看看以下是否有效,

Sub CreateDailyEmail()

Dim oApp As Object
Dim oMail As Object

Set oApp = CreateObject("Outlook.Application")
Set oMail = oApp.CreateItem(0)

With oMail
    .To = Range("EMAIL_TO")
    .Cc = Range("EMAIL_CC")
    .Subject = Range("EMAIL_SUBJECT")
    .Attachments.Add (Range("PATH"))
    .HTMLBody = "<body style=""font-family: Calibri; font-size: 14px; color: #00f; line-height: 1;""><br />" & RangetoHTML(ActiveWorkbook.Worksheets("Daily").Range("B6:H65")) & "</body" & .HTMLBody
    .Display
End With

Set oMail = Nothing
Set oApp = Nothing

End Sub

无需sentence = input("Sentence: ") word = input("Word: ") if word in sentence: print(sentence.index(word)) 到列表中。但是如果你这样做,代码仍然有用。