首页 > 编程知识 正文

python自定义函数,python类中函数互相调用

时间:2023-05-04 19:55:55 阅读:135826 作者:220

count调用函数find,以确定在从指定索引开始的单词中可以找到多少个字符。 请参见“代码”。

困惑的部分:

使用函数" count "可以获得以下程序输出:

可以看到几个输出是重复的。

如果不从发现中删除印刷品,如何避免这种情况? 有可能吗,还是我必须删除它?

我知道这两个函数会是更简单的函数,但我想知道如何使用另一个函数调用函数。

必须也提到变量计数的值是正确的。唯一的问题是重复的输出。

代码:

effind(word,letter,index ) :

start_ind=index

wileindex(Len ) word ) :

if word[index]==letter:

打印' % sfoundatindex % s ' % (letter,index ) )。

返回索引

索引=1

else:

print ' % sisnotfoundinstring ' % s ' whenstartingfromindex % s ' % (letter,word,start_ind )

返回- 1

efcount(word,letter,index ) :

count=0

无线xlen (word ) :

iffind(word,letter,index )!=-1:

count =1

index=find(word,letter,index ) 1

print ' % sisshown % stime sin ' % s ' % (letter,count,word )

count('Banana ',' a ',0 ) ) ) )。

解决方法:

在while循环中,每次迭代都有两个find ()调用。

iffind(word,letter,index )!=-1:

count =1

index=find(word,letter,index ) 1

每次打印时:

打印' % sfoundatindex % s ' % (letter,index ) )。

find ) )的值进行计算并保存,从而“memoize”。

ound=find(word,letter,index ) ) )。

if found!=-1:

count =1

索引=found 1

这是一个更优雅的问题解决方案:

word='banana '

letter='a '

occurences=[(index,value ) for index,valueinenumerate(word ) if value==letter]

for occurence in occurences:

print 'Letter ',letter,' has been found at index ',index

print 'Letter ',letter,' has been found a total of ',len((occurences ),' times.'

标签: python,python-2-7

资料来源: https://codeday.me/bug/2019 05 19/1136404.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。