【发布时间】:2021-09-19 23:02:22
【问题描述】:
我有以下代码(开发中)并且遇到了错误。据我所知,我正在将文本传递给 SHA256 函数,但它表明它是一个元组。
from hashlib import sha256
MAX_NONCE=10000
def SHA256(text):
return sha256(text.encode("ascii")).hexdigest() #returns a hash value
def mine(blockno,transactions,previous_hash,prefix):
nonce=1
text=str(blockno)+transactions+previous_hash+str(nonce)
new_hash=SHA256(text)
print(new_hash)
#STARTING POINT OF THE PROGRAM
transaction ="""
STUFF HERE
"""
difficulty=3
newhash = mine(7,transaction,"F823482798723897293874982734982F",difficulty)
错误
Traceback (most recent call last):
File "main.py", line 24, in <module>
newhash = mine(7,transaction,"F823482798723897293874982734982F",difficulty)
File "main.py", line 11, in mine
new_hash=SHA256(text)
File "main.py", line 5, in SHA256
return sha256(text.encode("ascii")).hexdigest() #returns a hash value
UnicodeEncodeError: 'ascii' codec can't encode character '\xa3' in position 29: ordinal not in range(128)
repl.it https://replit.com/@teachyourselfpython/WiltedLawngreenInvocation#main.py
【问题讨论】:
-
text=str(blockno)+transactions,previous_hash+str(nonce)是错字吗?似乎与中间的,同为+ -
是的,请参阅更新 :)
-
如果只是拼写错误,您可以删除问题。如果你现在有一个完全不同的错误,也许可以问一个不同的问题,而不是把这个问题改得面目全非。
-
我用固定的错字运行了你的代码,它运行良好。我认为这个问题值得删除。
-
更新了问题以反映当前的错误