我刚接触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
答案 0 :(得分:0)
“转让之前引用的”局部变量'b'的哪一部分不清楚?您在获得值之前使用变量b
。
如果您打算修改全局变量b
,请使用global b
,如下所示:
def translate(a):
global b
....