【发布时间】:2020-04-19 06:11:50
【问题描述】:
我试图计算问题给我的单词中的关键字和标识符,但我不确定它是否正确,所以请帮助我找出我在问题中提出的问题。 问题是这样的:
编写一个程序,读取 Python 源代码文件,并使用两个字典计算文件中每个关键字和每个标识符(变量、类和方法名称)的出现次数:一个用于关键字,另一个用于标识符。您的程序应提示用户输入 Python 源代码文件名。 Python 编程语言中的关键字:False class finally is return None continue for l ambda try True def from nonlocal while and del global not or yield assert else import pass break except with as in elif raise
Python 编程语言中的关键字:
False class finally is return None continue for lambda try
True def from nonlocal while and del global not with as elif
if or yield assert else import pass break except in raise
这是我写的代码:
import tokenize
import keyword
import collections
with open('source.py') as f:
tokens = (token for _, token, _, _, _ in tokenize.generate_tokens(f.readline))
c = collections.Counter(token for token in tokens if keyword.iskeyword(token))
print(c)
【问题讨论】:
-
乍一看,它看起来很合理——您对此有什么特别的顾虑吗?
-
我很快测试了
Counter({'False': 1, 'True': 1}),其中包含True和False的文件,所以它确实有效,这是您预期的输出吗? -
首先,谢谢你们帮助我???? tbh 我并没有真正得到输出应该是什么,但它说我需要两个字典。我应该怎么做,我是否已经这样做了,这是现在最大的担忧
标签: python python-3.x keyword counting identifier