Je suis novice en codage, alors j’ai décidé de créer une sorte de code secret à des fins de test avec Unicode. C’est ce que j’ai fait en ajoutant des chiffres à Unicode pour que ce soit plutôt secret. J'ai eu cette erreur mais je ne sais pas comment la résoudre. y-a-t'il une solution? Voici le code:
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 fonctionne un peu différemment de JavaScript, par exemple, la valeur que vous concaténez doit être à la fois int ou str ...
Ainsi, par exemple, le code ci-dessous génère une erreur:
print( "Alireza" + 1980)
comme ça:
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
print( "Alireza" + 1980)
TypeError: can only concatenate str (not "int") to str
Pour résoudre le problème, ajoutez simplement str à votre nombre ou à votre valeur, comme suit:
print( "Alireza" + str(1980))
Et le résultat en tant que:
Alireza1980
au lieu d'utiliser l'opérateur "+"
imprimer ("Alireza" + 1980)
Utilisez une virgule "," opérateur
impression ("Alireza", 1980)
Le problème est que vous faites ce qui suit
str(chr(char + 7429146))
où char est une chaîne. Vous ne pouvez pas ajouter un int avec une chaîne. cela provoquera cette erreur
peut-être si vous voulez obtenir le code ASCII et l'ajouter avec un nombre constant. si c'est le cas, vous pouvez simplement faire ord (char) et l'ajouter à un nombre mais encore une fois, chr peut prendre des valeurs comprises entre 0 et 1114112
Changer secret_string += str(chr(char + 7429146))
Pour secret_string += chr(ord(char) + 7429146)
ord()
convertit le caractère en son équivalent entier Unicode. chr()
convertit ensuite cet entier en son équivalent en caractères Unicode.
De plus, 7429146 est trop gros, il devrait être inférieur à 1114111