这些是操作的指令:记号化功能未按预期运行 - 的Python
写功能tokenize(input_string)
该取含有表达的字符串并返回令牌的列表。这种小语言的令牌将被空白分隔,所以任何时候输入字符串中都有一个空格(或者一行空格),我们想要分割它。
你不应该使用内置的字符串操作分裂,而是应该用我们到目前为止开发的工具构建你的代码。
当一切都说过和做过,例如,运行在这个字符串标记生成器: tokenize("2 2 + 3 4/.5 0.2 3.2 + - COS")
应该返回: ['2', '2', '+', '3', '4', '/', '.5', '0.2', '3.2', '+', '-', 'COS']
这是我的代码:
def tokenize(input_string):
tokens = []
token = ""
for char in input_string:
if char == " " and input_string[-1] != char and token != "":
tokens.append(token)
token = ""
elif input_string[-1] == char:
tokens.append(token + char)
elif char != " ":
token += char
return tokens
我的代码适用于给定的示例和类似的参数,但是当我运行类似于: tokenize("pi load store load")
我得到: ['pi', 'load', 'loa', 'store', 'load']
有什么错误吗?试图用打印语句在功能的各个部分找到它无济于事。任何关于如何更好地组织if语句的建议都将不胜感激。先谢谢您的帮助。
首先解决您的缩进。 –
你问问什么是错误,但你没有说出你用'tokenize(“pi load store load”)看到的东西' –
'input_string [-1]'不是你认为的那样 – kdopen