假设所有ASCII码都设置为变量(a=97、b=98等)。你知道吗
word = eval(input("What would you like to say? "))
key = 174
print (word)
changedword = (', '.join(str(I + key) for I in word))
print ("Your encrypted string is:" + changedword)
ans1 = input("Would you like to decrypt this?")
print (ans1)
if (ans1 == "yes"):
print (changedword)
decryptedword = (', '.join(str(I - key) for I in changedword))
ans2 = input(decryptedword + " was your decrypted number list. Do you
want to translate to ASCII code?")
if (ans2 == "yes"):
print (', '.join(str(chr(I)) for I in decryptedword))
当运行这个代码时,我得到一个错误
TypeError: unsupported operand type(s) for -: 'str' and 'int'
参考第11行 我知道str和int是不同的,但是在我第一次使用它时它就起作用了,我不知道如何解决这个问题。任何帮助都将不胜感激。你知道吗
我知道它经常引用加密,我也知道它不是真正的加密,但我对这个还不熟悉,我只是在玩。你知道吗
所有额外的打印都是为了我自己的测试。你知道吗
就像你在问题中说的,问题是:
key
是int,但changedword是此行的str:迭代changedword
for I in changedword
,因此I
也是str类型。你知道吗所以你的问题是
I - key
当你试图从str中减去int时如果要使用ascii值进行加减运算,请使用函数
ord(c)
,其中c
是字符串中的单个字符。如果要将其转换回字符,请使用函数chr(a)
,其中a
是ascii int相关问题 更多 >
编程相关推荐