Python 计算每个关键字和每个标识符的出现次数

Python 计算每个关键字和每个标识符的出现次数,python,python-3.x,keyword,counting,identifier,Python,Python 3.x,Keyword,Counting,Identifier,我试着数一数问题中的关键词和标识符,但我不确定这是否正确,所以请帮助我找出我在问题中提出的问题。 问题是这样的: 编写一个程序,读入Python源代码文件,并使用两个字典(一个用于关键字,一个用于标识符)统计文件中每个关键字和每个标识符变量、类和方法名称的出现次数。程序应提示用户输入Python源代码文件名。Python编程语言中的关键字:False类最终为return None continue for l ambda try True def from nonlocal while和del

我试着数一数问题中的关键词和标识符,但我不确定这是否正确,所以请帮助我找出我在问题中提出的问题。 问题是这样的:

编写一个程序,读入Python源代码文件,并使用两个字典(一个用于关键字,一个用于标识符)统计文件中每个关键字和每个标识符变量、类和方法名称的出现次数。程序应提示用户输入Python源代码文件名。Python编程语言中的关键字:False类最终为return None continue for l ambda try True def from nonlocal while和del global not或yield assert else导入pass break,除非在elif raise中使用as

Python编程语言中的关键字:

False类最终返回None continue for lambda try 来自非本地while和del global的真def不带as elif if或yield断言else导入除提升外的传递中断

这是我写的代码:


回应您的评论,从技术上讲,c不是字典,而是集合。计数器对象:

print(c, type(c))
输出:

Counter({'False': 1, 'True': 1}) <class 'collections.Counter'>
{'False': 1, 'True': 1} <class 'dict'>
输出:

Counter({'False': 1, 'True': 1}) <class 'collections.Counter'>
{'False': 1, 'True': 1} <class 'dict'>
正如你所看到的,它摆脱了计数器对象

这并不十分漂亮,但如果你只知道应该有两本字典,那么第二位是最正确的


然而,再次阅读您的问题,您似乎需要为1:您已经提供的关键字和2个标识符创建一个字典:标识符是类、函数、变量等实体的名称。它有助于区分一个实体和另一个实体。你能提供你的python文件:source.py吗?

乍一看它看起来很合理-你对它有什么特别的担心吗?我很快对它进行了测试,用一个包含True和False的文件来对抗{'False':1,'True':1},所以它肯定能工作,这是你期望的输出吗?首先,感谢你们两位试图帮助我