如何解决TypeError:只能将str(不是“int”)连接到str

新手上路,请多包涵
  • 我决定制作某种密码用于测试 Unicode。
  • 我已经通过向 Unicode 添加数字来做到这一点,所以这将是一种秘密。
  • 我一直收到这个错误,但我不知道如何解决它。
    • 有什么解决办法吗?

原始代码

message = input("Enter a message you want to be revealed: ")
secret_string = ""
for char in message:
    secret_string += str(chr(char + 7429146))
print("Revealed", secret_string)
q = input("")

原始错误

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-182-49ece294a581> in <module>
      2 secret_string = ""
      3 for char in message:
----> 4     secret_string += str(chr(char + 7429146))
      5 print("Revealed", secret_string)
      6 q = input("")

TypeError: can only concatenate str (not "int") to str

更新代码

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("")

原文由 9ae 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 561
1 个回答

Python 的工作方式与 JavaScript 有点不同,例如,您连接的值需要是相同的类型,都是 intstr

因此,例如下面的代码会 引发错误

 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

原文由 Alireza 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题