用于将文本翻译成瑞典语(强盗语言)的Python程序

时间:2015-11-02 13:46:48

标签: python

我刚接触python,我正在尝试编写此程序,但是出现了错误,我无法对其进行排序。

我已经在互联网上看到了其他一些用于执行此操作的程序,但它们都有一些不同的逻辑。

这里我想到的逻辑是,如果字符串a中的任何一个字母是元音,那么我将按原样存储在字符串b中,如果它是一个辅音,那么我'再添加三个字母。

我知道我对字符串做错了但仍然无法弄清楚。

该计划是: -

a = ""
b = ""


def translate(a):
    for i in a:
        if (i == 'a' or i == 'e' or i == 'i' or i == 'o' or i == 'u'):
            b = b + i
        else:
            b = b + i
            b = b + "o"
            b = b + i
          #  b.append("   ")
          #  b[-3] = b[-1] = i
          #  b[-2] = 'o'
    return b
a = input("Enter a string in English : ")
a = a.lower()
string = translate(a)
print("The Sring in spanish language is ", string)

此程序出错: -

amitwebhero@AmitKali:~/python/python_home_work$ python3.5 5.py 
Enter a string in English : amit upadhyay
Traceback (most recent call last):
  File "5.py", line 19, in <module>
    string = translate(a)
  File "5.py", line 8, in translate
    b = b + i
UnboundLocalError: local variable 'b' referenced before assignment

感谢&#39; S

1 个答案:

答案 0 :(得分:0)

“转让之前引用的”局部变量'b'的哪一部分不清楚?您在获得值之前使用变量b

如果您打算修改全局变量b,请使用global b,如下所示:

def translate(a):
   global b
   ....