编写一个名为“ string_type”的函数,该函数接受一个 字符串参数,并确定它是什么类型的字符串。
如果字符串为空,则返回“空”。
如果字符串是单个字符,则返回“字符”。
如果字符串表示单个单词,则返回“单词”。 如果字符串没有空格,则为单个单词。
如果字符串是整个句子,则返回“句子”。 如果字符串包含空格,但最多为一个句点,则为句子。
如果字符串是一个段落,则返回“ paragraph”。的 字符串是一个段落,如果它同时包含空格和 多个句点(我们不会担心其他标点符号)。
如果字符串是多个段落,则返回“页面”。 该字符串是一个段落,如果它包含任何换行符 字符(“ \ n”)。
我可以使用Python 3的内置字符串函数(例如len,count等)
我已经能够编写具有不同条件的函数。最初,我尝试按照问题中列出的顺序来做条件,但是,没有得到与测试用例相匹配的答案。然后我颠倒了顺序,从条件开始,检查字符串是否是页面,然后是段落,等等。
def string_type(a_string):
if a_string.count("\n") >= 1:
return "page"
elif a_string.count("") >= 1 and a_string.count(".") > 1:
return "paragraph"
elif len(a_string) > 1 and a_string.count("") > 1 and a_string.count(".") == 1:
return "sentence"
elif len(a_string) > 1 and a_string.count("") == 0:
return "word"
elif len(a_string) == 1:
return "character"
else:
return "empty"
下面是一些将测试您的功能的代码行。 您可以更改变量的值以测试您的 具有不同输入的功能。
#empty
#character
#word
#sentence
#paragraph
#page
print(string_type(""))
print(string_type("!"))
print(string_type("CS1301."))
print(string_type("This is too many cases!"))
print(string_type("There's way too many ostriches. Why are there so many ostriches. The brochure said there'd only be a few ostriches."))
print(string_type("Paragraphs need to have multiple sentences. It's true.\nHowever, two is enough. Yes, two sentences can make a paragraph."))
运行当前代码时,将得到以下结果:
#empty
#character
#sentence (instead of word)
#empty (instead of sentence)
#paragraph
#page
我一直在调整单词和句子的条件,但是,我还没有弄清楚如何纠正。对于我做错了什么以及如何解决的任何解释,我们都表示赞赏。
答案 0 :(得分:1)
在字符串中搜索空格的位置错误。
elif a_string.count("") >= 1
这将尝试在输入中查找空字符串""
-显然可以找到。
该部分(和其他部分)应该是:
elif a_string.count(" ") >= 1
请注意,它是" "
-空格。