需要弄清楚为什么字符串条件不能在我的条件语句中执行

时间:2019-04-02 16:08:51

标签: python string function count conditional-statements

编写一个名为“ 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

我一直在调整单词和句子的条件,但是,我还没有弄清楚如何纠正。对于我做错了什么以及如何解决的任何解释,我们都表示赞赏。

1 个答案:

答案 0 :(得分:1)

在字符串中搜索空格的位置错误。

elif a_string.count("") >= 1

这将尝试在输入中查找空字符串""-显然可以找到。

该部分(和其他部分)应该是:

elif a_string.count(" ") >= 1

请注意,它是" "-空格。