【发布时间】:2017-08-15 09:44:48
【问题描述】:
我刚启动 python,遇到了一个愚蠢的错误,但我不明白为什么它不起作用
def encryption(str1):
i = 0
for x in str1:
if (x >= 'a' and x <= 'z' or x >= 'A' and x <= 'Z'):
str1[i] = str1[i] + 3 % 26 #str[i] = x + 3 % 26
i+=1
return str1
当我执行程序时出现此错误:
TypeError:字符串索引必须是整数,而不是 str。
有人能解释一下为什么 str[i] - 23 被认为是 str 吗?对我来说,我只是在修改 char 的 ascii 值。
【问题讨论】:
-
这不是 C,尝试
ord(str1[i])获取字符的 ASCII 值。为什么要将索引与x混合?并且错误似乎在其他地方...... -
并在发布前修正缩进。
-
记住字符串是不可变的
-
我混合了两者,因为我基本上只尝试了 x 然后只是 str1[I] 然后我扭曲了两者等等...... ^^