2024-09-27 21:29:06 发布
网友
我得到这个错误“TypeError:无法将'int'对象隐式转换为str”
plaintext= input("Enter the plaintext:") length = len(plaintext) print ("The length is:", length) for i in range(0,(len(plaintext)-1) E[i]= (15*plaintext[i]+20)%26; print (E[i])
plaintext是str,所以plaintext[i]也是一个字符串(一个字符)。乘以15,你又得到了一个str(15个字符)。如果您尝试添加一个20,解释器假设您想将20转换为str,并将其附加到现有的str。但是它并没有实现从int到str的隐式转换,它告诉您这一点。在
plaintext
str
plaintext[i]
20
int
你可能想用
(15 * (ord(plaintext[i]) - ord('A')) + 20) % 26
你的问题不清楚你的真实意图,所以我们得猜测一下。在
plaintext是字符串,plaintext[i]也是字符串。15*plaintext[i]乘以字符串,您正试图用+20向字符串添加一个整数。所以只要:
15*plaintext[i]
+20
15*int(plaintext[i])+20 #if plaintext is a string of decimals, don't know what exactly you want
或者我猜你在做一些类似加密的事情,这样你需要用ord把一个字符转换成整数,然后用它的逆chr:
plaintext
是str
,所以plaintext[i]
也是一个字符串(一个字符)。乘以15,你又得到了一个str
(15个字符)。如果您尝试添加一个20
,解释器假设您想将20
转换为str
,并将其附加到现有的str
。但是它并没有实现从int
到str
的隐式转换,它告诉您这一点。在你可能想用
你的问题不清楚你的真实意图,所以我们得猜测一下。在
plaintext
是字符串,plaintext[i]
也是字符串。15*plaintext[i]
乘以字符串,您正试图用+20
向字符串添加一个整数。所以只要:或者我猜你在做一些类似加密的事情,这样你需要用ord把一个字符转换成整数,然后用它的逆chr:
^{pr2}$相关问题 更多 >
编程相关推荐