我对编程很新。我一直在努力让string.count函数起作用。 这就是我到目前为止所做的:
def trial ():
a = raw_input ("Enter a string:").lower()
print a
b = raw_input ("Enter a substring:").lower()
print b
print "The total character count is:" + a.count('b')
它还没有给我计数。它一直给我<built-in method count of str object at 0x0181B500>
。
我想我做错了什么。我意识到这可能是一个简单的问题,但我是初学者。我读过你必须使用str.count(sub [,start [,end]])但是start和end是什么意思?我读了描述,但我没有真正理解。
任何形式的帮助将不胜感激!
答案 0 :(得分:2)
您尚未保存代码或使用print a.count
而非print a.count()
。前者意味着您在字符串对象中打印count
方法的表示,因此打印输出:
<built-in method count of str object at 0x0181B500>
至于sub,start,end
的含义,我可以推荐the Python documentation for string objects?
string.count(s, sub[, start[, end]])
返回字符串s [start:end]中substring sub出现的次数(非重叠)。开始和结束的默认值以及负值的解释与切片相同。
实质上,这意味着:
"Some long text right about here".count("o",5,9)
仅计算子字符串o
中与"Some long text right about here"[5:9]
等效的"long"
的数量,因此将返回1
。
答案 1 :(得分:2)
您是否正在尝试打印b
a
次'b'
次?通过b
,您将获得字符串中b
字母的出现次数,而不是def trial ():
a = raw_input ("Enter a string:").lower()
print a
b = raw_input ("Enter a substring:").lower()
print b
print "The total character count is:" + str(a.count(b))
变量的内容。此外,您正在尝试连接字符串和int。请进行以下调整。
{{1}}
答案 2 :(得分:1)
您收到的消息来自运行a.count
或b.count
。如果不在对象方法中包含parens,则直接访问方法对象,如消息中所示。
您的算法不正确。 a.count('b')
将返回a中字符“b”的总出现次数。您的打印消息显示它显示“总字符数”。为此,您将使用len()
功能。要获得a
中的字符总数,您将运行len(a)
,而b
则会运行len(b)
。如果您尝试获取len(a) + len(b)
或len(a + b)
的总数,如果您尝试在b
中获取a
的总出现次数,那么你会运行a.count(b)
。
答案 3 :(得分:1)
在这里,我们无法理解您的问题,您不希望计算任何字符或计算单个字符的出现次数。 下面的代码计数没有涉及的字符。
from collections import Counter
str = "Mary had a little lamb"
counter = Counter(str)
print Counter[str]
仅限代码字符
str= raw_input("Enter anything:")
str = "this is string example....wow!!!";
sub = "i";
print "str.count(sub) : ", str.count(sub)
答案 4 :(得分:1)
出于测试目的,将逻辑与I / O分开是很好的做法
例如:
def trial(a, b):
return "The total character count is:" + a.count('b')
现在你可以像这样快速测试
>>> trial("foo bar", "oo")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in trial
TypeError: cannot concatenate 'str' and 'int' objects
哦,对,首选的方法是使用.format()
def trial(a, b):
return "The total character count is: {}".format(a.count('b'))
现在你可以再试一次
>>> trial("foo bar", "oo")
'The total character count is: 1'
您的问题中的代码未生成原始错误。你可能有这样的东西
def trial ():
a = raw_input ("Enter a string:").lower()
print a
b = raw_input ("Enter a substring:").lower()
print b
print "The total character count is:", a.count
答案 5 :(得分:0)
我使用python 3.3.1回答了这个问题。
根据你的例子
def trial () :
a = input ("Enter a string:").lower()
#takes your input in lower case and assign to variable a
print (a)
#print above input (content of a)
b = input ("Enter a substring:").lower()
#takes your input in lower case and assign to variable b
print (b)
#print above input (content of b)
print ("The total character count is:", a.count(b))
#this will give you how many times content of 'b' repeat in content of 'a'.
trial()
str.count(sub,start,end) - &gt; 你的例子'str'等于'a'。 'sub'等于'b'。开始和结束没有给出。因此默认开始是'a'的索引0,默认结束是'a'的最后一个索引。假设你的a ='beautiful_mind_sing'和b ='i'。如果你给a.count(b,1,13)。即使有三个'我的答案也是2因为这里的开始和结束索引是1和13.因此a.count()只搜索索引1到13。这里介于'e'和'd'之间 - &gt; 'B * E * autiful_min * d * _sing'。
附加示例:
first_line='Hello Sandu how are you? Hello Anu how are you? Hello Sa how are you?'
searching_word='are'
print("Number of searching_word 'are' repeate in the first_line is: ", first_line.count(searching_word,3,50))
答案:
first_line中的searching_word'重复次数为:2