Python 需要弄清楚为什么字符串函数不是';t在我的条件句中执行
编写一个名为“string\u type”的函数,该函数接受一个 参数并确定它是什么类型的字符串 如果字符串为空,则返回“empty” 如果字符串是单个字符,则返回“character” 如果字符串表示单个单词,则返回“word”。 如果字符串没有空格,则为单个单词 如果字符串是一个完整的句子,则返回“句子”。 如果字符串包含空格,则它是一个句子,但最多包含一个句点 如果字符串是段落,则返回“段落”。这个 如果字符串同时包含空格和空格,则为段落 多个句点(我们不担心其他标点符号) 如果字符串是多个段落,则返回“page”。 如果字符串包含任何换行符,则该字符串为段落 字符(“\n”) 我可以使用Python 3的内置字符串函数(例如,len、count等) 我已经能够在不同的条件下编写函数。起初,我试着按照问题中列出的顺序做条件,但是,我没有得到与我的测试用例相匹配的答案。然后我颠倒了顺序,从一个条件开始检查字符串是否是页面,然后是段落,等等Python 需要弄清楚为什么字符串函数不是';t在我的条件句中执行,python,string,function,count,conditional-statements,Python,String,Function,Count,Conditional Statements,编写一个名为“string\u type”的函数,该函数接受一个 参数并确定它是什么类型的字符串 如果字符串为空,则返回“empty” 如果字符串是单个字符,则返回“character” 如果字符串表示单个单词,则返回“word”。 如果字符串没有空格,则为单个单词 如果字符串是一个完整的句子,则返回“句子”。 如果字符串包含空格,则它是一个句子,但最多包含一个句点 如果字符串是段落,则返回“段落”。这个 如果字符串同时包含空格和空格,则为段落 多个句点(我们不担心其他标点符号) 如果字符串是多
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
#sentence (instead of word)
#empty (instead of sentence)
#paragraph
#page
我一直在调整我的单词和句子条件,但是,我还没有弄明白如何纠正。如果您能解释我做错了什么以及如何修复,我们将不胜感激。您在字符串中搜索空格的位置是错误的
elif a_string.count("") >= 1
这将尝试在输入中找到空的sting“
”,它显然会找到
该部分(和其他部分)应为:
elif a_string.count(" ") >= 1
请注意,它是
”
-空格 在字符串中搜索空格的位置是错误的
elif a_string.count("") >= 1
这将尝试在输入中找到空的sting“
”,它显然会找到
该部分(和其他部分)应为:
elif a_string.count(" ") >= 1
请注意,它是
”
-空格 谢谢你对空白处的澄清,这确实会有所不同。当我为空格重新编写代码时,除了我的句子之外,所有的东西都可以工作,而不是为一个句子得到一个句子,我得到的是空的。我很难理解为什么条件不能执行。你说的是第四个例子,对吗?那个“句子”以结尾代码>不是一个
-这就是为什么你会得到空的,我一开始就错过了。我纠正了我的条件,现在一切都正常了。再次感谢您的指导!谢谢你对空白处的澄清,这确实会有所不同。当我为空格重新编写代码时,除了我的句子之外,所有的东西都可以工作,而不是为一个句子得到一个句子,我得到的是空的。我很难理解为什么条件不能执行。你说的是第四个例子,对吗?那个“句子”以结尾代码>不是一个
-这就是为什么你会得到空的,我一开始就错过了。我纠正了我的条件,现在一切都正常了。再次感谢您的指导!