hashlib.md5() TypeError: Unicode-les objets doivent être codées avant le hachage

Je suis nouveau sur le codage et ont couru dans un problème d'essayer de coder une chaîne de caractères.

>>> import hashlib
>>> a = hashlib.md5()
>>> a.update('hi')
Traceback (most recent call last):
  File "<pyshell#22>", line 1, in <module>
    a.update('hi')
TypeError: Unicode-objects must be encoded before hashing
>>> a.digest()
b'\xd4\x1d\x8c\xd9\x8f\x00\xb2\x04\xe9\x80\t\x98\xec\xf8B~'

(A) est maintenant considéré comme être codé?

Deuxième question: Lorsque j'exécute le code ci-dessus dans un script, j'obtiens cette erreur:

import hashlib
a = hashlib.md5()
a.update('hi')
a.digest()

Traceback (most recent call last):
Fichier "C:/Users/User/Desktop/Logger/Encoding practice.py", ligne 3, dans
un.mise à jour ("salut")
TypeError: Unicode-les objets doivent être codées avant le hachage

Pourquoi le code de travail dans la coquille et non le script?
Je travaille avec Windows et Python 3.4

Grâce.

OriginalL'auteur Shahab | 2014-12-17