首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两段几乎相同的代码,但其中一段会在python中产生localunbounderror。

两段几乎相同的代码,但其中一段会在python中产生localunbounderror。
EN

Stack Overflow用户
提问于 2012-10-13 05:20:30
回答 1查看 117关注 0票数 2

因此,我创建了两个随机单词生成器,一个基于二元语法,另一个基于三元语法。在每种情况下,我都设置了一个字典(或者叫做bigrams,它有两个嵌套的字典,或者trigram,它有三个嵌套的字典)...and有很多其他的代码,但是下面这一行在trigram生成器中引起了一个问题:

代码语言:javascript
复制
 #generates random phonemes
 def generate_trigramphoneme(phoneme1, phoneme2):
    rand = random.uniform(0,1)

    **for phoneme3 in trigrams[phoneme1][phoneme2]:**
        rand -= trigrams[phoneme1][phoneme2][phoneme3]

        if rand < 0.0: return phoneme3
    return phoneme3

其中变量"phoneme3“产生局部未绑定错误。

不过,在这里,在我的二元语法生成器(可以正常工作)中,变量"Following“是正确的,并且不会产生错误:

代码语言:javascript
复制
def generate_bigramphoneme(phoneme):
    rand = random.uniform(0,1)
    for following in bigrams[phoneme]:
        rand -= bigrams[phoneme][following]
        if rand < 0.0: return following
    return following

我在eli bendersky的网站上查找了python的非绑定本地错误,这帮助我理解了错误,但我仍然不知道如何摆脱它,或者为什么二元语法代码没有产生错误……

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-13 05:32:34

假设你在某个地方定义了一个trigrams,可能是因为在你的参数中,trigrams[phoneme1][phoneme2]是一个空的迭代器,因此循环永远不会执行,phoneme3也不会被绑定。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12867261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档