实现规定的单词的识别,每次调用返回单词种类(即助记符)和值。
时间: 2024-05-12 11:20:33 浏览: 45
对于这个任务,需要先定义一些规则来识别单词的助记符和值。以下是一些可能的规则:
1. 如果单词以字母开头且只包含字母和数字,则它是一个标识符,助记符为 ID,值为单词本身。
2. 如果单词以数字开头且只包含数字,则它是一个整数,助记符为 INT,值为单词转换成整数后的值。
3. 如果单词以引号开头且以引号结尾,则它是一个字符串,助记符为 STRING,值为去除引号后的单词。
4. 如果单词为关键字(如if、else、while等),则助记符为关键字本身,值为null。
5. 如果单词为符号(如+、-、*、/等),则助记符为符号本身,值为null。
基于以上规则,可以实现一个单词识别的函数,每次调用返回单词的助记符和值。具体实现如下:
```python
def get_token(word):
keywords = ['if', 'else', 'while', 'for', 'return'] # 关键字列表
symbols = ['+', '-', '*', '/', '=', '==', '!=', '>', '<', '>=', '<='] # 符号列表
if word.isalpha() and word.isalnum(): # 标识符
return 'ID', word
elif word.isdigit(): # 整数
return 'INT', int(word)
elif word[0] == '"' and word[-1] == '"': # 字符串
return 'STRING', word[1:-1]
elif word in keywords: # 关键字
return word, None
elif word in symbols: # 符号
return word, None
else: # 不认识的单词
return None, None
```
这个函数接收一个单词作为参数,返回两个值:助记符和值。如果单词是标识符或字符串,则值为单词本身或去除引号后的单词;如果单词是整数,则值为单词转换成整数后的值;如果单词是关键字或符号,则值为null。如果单词不符合任何规则,则返回两个null值。
阅读全文