获取TypeError:只能将str(不是“int”)连接到str

问题描述 投票:2回答:5

我是编码的新手,所以我决定使用unicode为测试目的制作某种密码,我已经通过在Unicode中添加数字来做到这一点,所以这有点秘密。我一直在收到这个错误,但我不知道如何解决它。有什么解决方案吗?这是代码:

while True:
    try:
        message = int(input("Enter a message you want to be decrypt: "))
        break
    except ValueError:
        print("Error, it must be an integer")
secret_string = ""
for char in message:
    secret_string += chr(ord(char - str(742146))                      
print("Decrypted", secret_string)
q = input("")
python unicode
5个回答
7
投票

Python的工作方式与JavaScript有点不同,例如,连接的值需要是int或str ...

所以例如下面的代码会抛出一个错误:

print( "Alireza" + 1980)

像这样:

Traceback (most recent call last):
  File "<pyshell#12>", line 1, in <module>
    print( "Alireza" + 1980)
TypeError: can only concatenate str (not "int") to str

要解决此问题,只需将str添加到您的数字或值,如:

print( "Alireza" + str(1980))

结果如下:

Alireza1980

2
投票

而不是使用“+”运算符

print( "Alireza" + 1980)

使用逗号“,”运算符

print( "Alireza" , 1980)

1
投票

改变secret_string += str(chr(char + 7429146))

secret_string += chr(ord(char) + 7429146)

ord()将字符转换为其Unicode整数等价物。然后chr()将此整数转换为其Unicode字符等效项。

另外,7429146数字太大了,应该小于1114111


0
投票

问题是你正在做以下事情

str(chr(char + 7429146))

其中char是一个字符串。您不能使用字符串添加int。这会导致错误

也许如果你想获得ascii代码并添加一个常数。如果是这样,你可以做ord(char)并将其添加到一个数字中。但同样,chr可以取0到1114112之间的值


0
投票

用这个:

print("Program for calculating sum")
numbers=[1, 2, 3, 4, 5, 6, 7, 8]
sum=0
for number in numbers:
    sum += number
print("Total Sum is: %d" %sum )
© www.soinside.com 2019 - 2024. All rights reserved.