Zachary Levi in “Shazam!,” which earned $53.5 million over the weekend in North America and nearly $156 million worldwide. Credit