【发布时间】:2015-09-17 08:26:05
【问题描述】:
我正在编写一些代码,它调用 API 来获取最新的比特币块哈希值。我将哈希转换为十进制,然后希望获取前两位数字并将它们添加到列表中,前提是它们的大小足够小。我添加了一个 if else 语句,您可以看到它是正确的,但是它从未执行过,我不知道为什么。我对 python 比较陌生,所以请放轻松。
from __future__ import print_function
import blocktrail, time, csv, sys
class Bit():
def __init__(self, key, secret, net, retry_fail=1, update=10,max_fail=10):
self.hash_list = []
self.seen = set()
self.key = "x"
self.secret = "x"
self.net = "BTC"
self.key = key
self.retry_fail = retry_fail
self.update = update
self.max_fails = max_fail
def connect(self):
return blocktrail.APIClient(api_key="x", api_secret="x", network="BTC", testnet=False)
address = client.address('x')
def run(self):
while True:
if not self.max_fails:
break
try:
client = self.connect()
latest_block = client.block_latest()
except blocktrail.exceptions.MissingEndpoint as e:
self.max_fails -= 1
print("Error: {}\n sleeping for {} second(s) before retrying".format(e.msg, self.retry_fail))
time.sleep(self.retry_fail)
continue
hashc = latest_block['hash']
hashcdec = int(hashc, 16)
strhashcdec = str(hashcdec)
hashcdecn = strhashcdec[0:2]
print(hashcdec)
while True:
if hashcdecn < 100:
self.hash_list.append(hashcdecn)
self.seen.add(hashcdecn)
print(self.hash_list)
else:
print(hashcdecn)
print("number is too big")
sys.exit()
else:
time.sleep(self.update)
Bit("key","secret","net").run()
【问题讨论】:
-
我可以在这里看到两个
ifs。你指的是哪一个? -
这里有两个
if语句。你怎么知道if表达式应该是真的?
标签: python if-statement bitcoin