[英]How Can I represent my data in Python?
我正在尝试编写我的第一个Python程序-一个将解析源文件(javascript)并创建某种类型的交叉引用报告的程序。
我想为所有变量和函数保存以下信息:
不能保证每个变量只声明一次。 (我有一些清理工作要做。)
谁能建议我遍历输入文件时如何保存详细信息?
我的操作系统是Win 10,我正在使用3.6
听起来您正在开始漫长的旅程。 如果要解析源代码文件,则必须首先将其标记化。 这是一个标记简单算术表达式的函数,以帮助您入门。
OPERATORS = '+', '-', '*', '/'
def tokenize(expression):
def state_none(c):
if c.isdecimal():
self.token = c
self.state = state_number
elif c in OPERATORS:
self.token = 'operator', c
self.token_ready = True
def state_number(c):
if c.isdecimal():
self.token += c
else:
self.char_consumed = False
self.token = 'number', self.token
self.token_ready = True
self.state = state_none
def interpret_character(c):
self.token_ready = False
self.char_consumed = True
self.state(c)
class self:
token_ready = False
token = None
char_consumed = True
state = state_none
for c in expression:
self.char_consumed = False
while not self.char_consumed:
interpret_character(c)
if self.token_ready:
yield self.token
if self.state == state_number:
yield 'number', self.token
def main():
for x in tokenize('15+ 2 * 378 / 5'):
print(x)
# ('number', '15')
# ('operator', '+')
# ('number', '2')
# ('operator', '*')
# ('number', '378')
# ('operator', '/')
# ('number', '5')
if __name__ == "__main__":
main()
但实际上,请动手:编写一些代码来打开文件,遍历字符,并对它们执行某些操作(将它们分组为标记)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.