如果字符串中有多个点,则使程序返回True?

时间:2015-04-06 02:59:35

标签: python

所以我是编程(和python)的新手,如果字符串有零个或一个点字符(“。”字符),我必须使这个程序返回True,如果字符串包含两个或多个点,则返回False

这是我现在所拥有的,我无法让它为我工作,请纠正我,如果我错了,谢谢!

def check_dots(text):
text = []

for char in text: 
    if '.' < 2 in text:
        return True
    else:
        return False 

4 个答案:

答案 0 :(得分:1)

使用内置Python函数list.count()

if text.count('.') < 2:
    return True

如果不是if-else语句,那么它可以更短

return text.count('.') < 2

此外,您的功能有一些错误。您需要做的就是

def check_dots(text):
    return text.count('.') < 2

答案 1 :(得分:1)

正确和较短的版本将是:

return text.count('.') <= 1

答案 2 :(得分:1)

Python有一个名为count()

的函数

您可以执行以下操作。

if text.count('.') < 2: #it checks for the number of '.' occuring in your string
    return True
else:
    return False

快捷方式是:

return text.count('.')<2

让我们分析一下上述陈述。 在这一部分,text.count('.')<2:它基本上说&#34;我将检查字符串中出现少于两次的句点,并根据出现的次数返回True或False。&#34;因此,如果text.count(&#39;。&#39;)为3,那么3<2将成为False

另一个例子。假设如果字符串长度超过7个字符,则希望它返回False

x = input("Enter a string.")
return len(x)>7

代码段len(x)>7表示程序会检查x的长度。让我们假装字符串长度为9.在这种情况下,len(x)将评估为9,然后评估为9>7,即为真。

答案 3 :(得分:0)

我现在将分析你的代码。

def check_dots(text):
text = [] ################ Don't do this. This makes it a list, 
                         # and the thing that you are trying to 
                         # do involves strings, not lists. Remove it.

for char in text: #not needed, delete
    if '.' < 2 in text: #I see your thinking, but you can use the count()
                        #to do this. so -> if text.count('.')<2:  <- That
                        # will do the same thing as you attempted.
        return True
    else:
        return False