我用Python编写了以下小函数:
def encode(str):
out = ""
for i in str:
ret += str(ord(i.upper()) - 64)
return ret
基本上,我想做的是得到alphabat中字母的编号,并将其连接到“out”字符串。有了这段代码,我在第4行得到了回溯:“str”对象不适用。你知道吗
有人能解释一下它为什么会抛出这个错误,以及我如何修复这个错误吗?(很抱歉,如果已经问过一次这个问题,我找不到它,可能也是因为我对Python和编程非常陌生)
Tags:
正如其他人所说,不要使用
str
作为变量。你知道吗我怀疑这就是你想要的:
这相当于:
您正在寻找
chr()
函数,该函数将数字ASCII/Unicode值转换为1个字符的字符串。运行str()
会将5
转换为"5"
。你知道吗同样在风格上,当迭代一个字符串时,
for c in s
和当迭代一个整数序列时,for i in x
是惯例。你知道吗不要使用预定义的内置名称命名变量。你知道吗
在代码中,
str
不是内置函数。它是您在函数中用作参数的变量。你知道吗另一个问题是,您已经声明了
out
变量,并且使用了ret
,这将给您带来错误。将out = ""
更改为ret = ""
。你知道吗不要调用你的变量
str
,你在跟踪built-in function。你知道吗此外,还需要修复
out
/ret
的命名。你知道吗我个人会将此函数编写如下:
(我没有真正理解
str(ord(...))
的意图,所以我只是从您的代码中复制了它。)相关问题 更多 >
编程相关推荐