python3 全局变量如何记录改动最终值?

程序结构类似如下

import sys
...
#全局变量
sls=0

def search(keyword):
    这个方法体是查询某关键词是否有的功能。。。

if __name__ == "__main__":
    result=['关键词1','关键词2','关键词3']
    for f_word in result:
        s_result = search(f_word)
    
    print('\n','共有:',len(result),'个关键词','查到数是:',sls)

目前这个sls怎么在方法中累计并能最终显示正确,不会,求解,感谢!!!

阅读 3.1k
2 个回答

代码

import sys
...
#全局变量
sls=0

def search(keyword):
    if keyword == "关键词1":
        global sls
        sls +=1

    print("当前" , keyword)

if __name__ == "__main__":
    result=['关键词1','关键词2','关键词3','关键词1']
    for f_word in result:
        s_result = search(f_word)
    
    print('\n','共有:',len(result),'个关键词','查到数是:',sls)

执行

当前 关键词1
当前 关键词2
当前 关键词3
当前 关键词1

 共有: 4 个关键词 查到数是: 2

如果在方法中修改,在函数体开头声明global sls表示是全局变量。
或者search方法返回TrueFalse,在for循环中修改。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题