区块链Python语法错误(Snakecoin)

2024-04-28 11:58:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码好像出错了。一个语法错误,具体来说。我不知道如何修复它,红色突出显示在引号上方。如果答案很简单,那么我很抱歉,因为我在Python和编码方面不是最棒的。在

import hashlib as hasher
import datetime as date

class Block:
  def __init__(self, index, timestamp, data, previous_hash):
    self.index = index
    self.timestamp = timestamp
    self.data = data
    self.previous_hash = previous_hash
    self.hash = self.hash_block()

  def hash_block(self):
    sha = hasher.sha256()
    sha.update(str(self.index) + 
               str(self.timestamp) + 
               str(self.data) + 
               str(self.previous_hash))
    return sha.hexdigest()

def create_genesis_block():
  return Block(0, date.datetime.now(), "Genesis Block", "0")

def next_block(last_block):
  this_index = last_block.index + 1
  this_timestamp = date.datetime.now()
  this_data = "Hey! I'm block " + str(this_index)
  this_hash = last_block.hash
  return Block(this_index, this_timestamp, this_data, this_hash)

blockchain = [create_genesis_block()]
previous_block = blockchain[0]

num_of_blocks_to_add = 20

for i in range(0, num_of_blocks_to_add):
  block_to_add = next_block(previous_block)
  blockchain.append(block_to_add)
  previous_block = block_to_add
  print 'Block #{} has been added to the blockchain!'.format(block_to_add.index)
  print "Hash: {}\n".format(block_to_add.hash)

错误在这一行,红色突出显示在结束引号上:

^{pr2}$

我直接从this网站上得到这个。 (如果这是格式错误,请原谅,我是新来的这个网站。)


Tags: toselfadddatadatetimeindexdefhash
2条回答

将行改为:

print('Block #%s has been added .... blockchain' %(block_to_add.index))

它会起作用的。 下一个打印行也会出现相同的错误。因此,在整个代码中进行相应的更改。在

如果您使用的是python2.7或更高版本,那么应该使用print作为函数。 以下是用法示例:

print('Block #{} has been added to the blockchain!'.format(block_to_add.index))

相关问题 更多 >