我是编码的新手,所以我道歉 - 我确信只有if语句和语句才能找到这个解决方案。
我有一个用户输入的10个字符串列表,我想测试是否有任何单词以'ly。'结尾。
list = []
ly= 'ly'
for l in range(10):
us = [str(input("Enter a subject: "))]
list.append(us)
for a in list:
if ly in a:
print (a, "is an adverb")
else:
print (a)
我的代码目前只会说是副词;然而,它不会迅速说是一个副词。任何帮助将不胜感激。
答案 0 :(得分:1)
您的主要问题是list
list
list
,而str
us = [str(input("Enter a subject: "))]
为str
,因为这一行:
list
这些括号正在包裹foo
以生成一个元素barly
。因此,如果您输入ly
,list
,然后[["foo"], ["barly"], ["ly"]]
,(我们将跳过所有10个),您会得到["foo", "barly", "ly"]
:
in
当你可能期望的时候:
list
问题是in
检查是检查str
包装的ly
检查,而不是"ly"
,所以它只匹配实际list
(因为"ly"
位于us = input("Enter a subject: ") # If this is Python 2, use raw_input, not input
),但不是其他任何内容(因为它们不等于ly
)。
删除括号以使其成为:
if ly in a:
然后确保您进行后缀检查(不只是if a.endswith("ly"):
在字符串中的任何位置),将{{1}}更改为{{1}}。
答案 1 :(得分:0)
您只需要迭代您的数组并检查某些字符串是否以'结束。您可以使用this。
str.endswith(suffix[, start[, end]])
更改您的代码:
for a in list:
if a.endswith(ly):
print (a, "is an adverb")
else:
print (a)
答案 2 :(得分:0)
ly = 'ly'
wordlist = [input("Enter a subject: ") for i in range(10)]
for a in wordlist:
print(a, "is an adverb" if a.endswith(ly) else "")
答案 3 :(得分:0)
您的代码目前存在两个问题。
您想使用str.endswith,例如if a.endswith(ly)
us = [str(input("Enter a subject: "))]
list.append(us)
us是包含输入字符串的列表,而不仅仅是输入的字符串。然后,您将此列表添加到另一个列表中。相反,你的代码应该是
us = str(input("Enter a subject: "))
(没有周围的括号)