mining theory – Process for finding nonce

Assume we have a transaction in hex (tx_hex) and we want to find a nonce such that

SHA-256(SHA-256(nonce|| tx_hex)) = new_transaction_id (‘||’ denotes concatenation)

first bits consist of 32 zeros. I understand that this nonce can be found only by brute force.

However, I cannot figure out how you check this condition in practice. new_transaction_id is in hex, so is that equivalent to checking that its first 8 digits are 0?

And if so to find the nonce, I just have to try every possible number (let’s say up to 32 bits) for the first 8 digits of new_transaction_id to be 0?

That is my code BTW

def mine(self, tx_hex):
    for i in range(1,4294967295):
        nonce = hex(i)(2:)
        new_tx = self.add_nonce(nonce, tx_hex)
        sha = self.get_tx_id(new_tx)
        print(sha(:2))
        if sha(:8) == '00000000':
            print('Nonce:', i)
            break