With training, you're playing one of the strongest cards: delivering value to many people at the same time, where your time required scales sub-linearly with the number of people.
Consequently, the more people, the more value to the customer, the more they can realistically pay you and still get good value for their money. Win/win.
You're not going to make a high rate if you're "a Python instructor", because there's quite a few of those.
You will if you're "the you Python instructor", and the customer thinks you're worth that rate, because having their people trained by you is worth the premium.
And that's where testimonials, referrals, previous track record, etc. come into play. Selling that version of you to a customer.
And granted, some of them won't ever be interested in that. They just want a Python trainer at minimum cost. But if you can afford to be choose and pass on opportunities, the higher end work is out there.
It means 20 minutes of theory, 20 minutes of practice, 10-minute break. It can be 25 + 25 + 5, or something along these lines. I never do more than 25. The bottom line is that people are getting bored after more than 20 minutes of theory.
Good luck!