我已经创建了一个代码来计算字母的数字命运数,我的代码是正确的还是有问题的。我只使用python 3 IDLE。 ERROR ='局部变量' counter'在转让前引用'
def NNA(name):
counter
for i in name:
if i == 'a' or i == 'i' or i == 'j' or i == 'q' or i == 'y':
counter = 1
elif i == 'b' or i == 'k' or i == 'r':
counter += 2
elif i == 'c' or i == 'g' or i == 'l' or i == 's':
counter += 3
elif i == 'd' or i == 'm' or i == 't':
counter += 4
elif i == 'h' or i == 'e' or i == 'n' or i == 'x':
counter += 5
elif i == 'u' or i == 'v' or i == 'w':
counter += 6
elif i == 'o' or i == 'z':
counter += 7
elif i == 'p' or i == 'f':
counter += 8
print(counter)
NNA('guru prasath')
答案 0 :(得分:3)
1)如果在初始化时没有将其设置为数字,则无法递增计数器:counter = 0
2)您的代码很难阅读,您可以使用更简单明了的方式:
i in 'aijky'
如果我在你的字母串中,那就是真的
def NNA(name):
counter = 0
for i in name:
if i in 'aijky':
counter += 1
elif i in 'bkr':
counter += 2
答案 1 :(得分:1)
你没有初始化变量,python跳过空变量声明,试试
counter = 0