Python 名称错误:名称'';没有定义
我正在尝试用Python编写一个脚本,它将使西班牙语动词变位。这是我第一次使用Python编写脚本,所以这可能是一个简单的错误。当我运行脚本时,我输入“yo tener”并收到一个错误: 回溯(最近一次调用):文件“”,第13行,在文件“”中, 第1行,在NameError中:未定义名称“yo”Python 名称错误:名称'';没有定义,python,nameerror,Python,Nameerror,我正在尝试用Python编写一个脚本,它将使西班牙语动词变位。这是我第一次使用Python编写脚本,所以这可能是一个简单的错误。当我运行脚本时,我输入“yo tener”并收到一个错误: 回溯(最近一次调用):文件“”,第13行,在文件“”中, 第1行,在NameError中:未定义名称“yo” 更多信息,请访问: 使用该函数时,将其参数作为Python语句进行计算。我不认为那是你想做的 如果您试图将代词放入共轭形式变量,将动词放入不定式动词变量,只需使用: conjugateForm, i
- 更多信息,请访问:
共轭形式
变量,将动词放入不定式动词
变量,只需使用:
conjugateForm, infinitiveVerb = text.split()
默认情况下,
split()
在空白处拆分,因此不需要使用'
。允许用户访问程序内部的更好方法是将键存储为字符串。那么您根本不需要eval
pronouns = { "yo": 0, "nosotros": 1, "tu"; 2, "el": 3, "ella": 3, "usted": 3 }
同样地
verbs = { "tener": [ "tengo", "tenemos", ... ],
"ser": [ "soy", "somos", ... ],
... }
现在,您可以使用用户的输入作为两个字典的键
(我不知道西班牙语是否有单独的传统,但通常的做法是先列出单数形式,然后列出复数形式,包括第一人称、第二人称和第三人称。您似乎缺少第二人称和第三人称复数。)此外,
eval
也存在安全风险。考虑一下如果用户键入<代码>操作系统('/home /HACK.SH)作为程序的输入会发生什么。
verbs = { "tener": [ "tengo", "tenemos", ... ],
"ser": [ "soy", "somos", ... ],
... }