Ruth,
Are you planning on just making rail trips between Venice, Florence and Rome, or will you be making shorter day trips as well? It makes sense to buy tickets for the high speed trains in advance, as you can save some money with that approach. However you must be willing to commit to a specific departure as the tickets are specific to train, date and departure time and can only be used on the one train listed on the ticket.
If you're going to be making any trips on Regionale trains, it's just as easy to buy the tickets locally at the stations. There are no discounts with advance purchase Regionale tickets. With locally purchased tickets, DON'T forget to validate these prior to boarding the train on the day of travel, or you'll risk hefty fines which will be collected on the spot!
As mentioned earlier, for travel on high speed trains you can use either Trenitalia (Freccia) or Italo Treno. Use whichever one has the best prices at the time, and fits your schedule best.
For ticket purchases, you can use.....
- Trenitalia (rail operator)
- Italo Treno (rail operator)
- Trainline.com (they do charge a small fee in some cases, but it's not a large fee - they also have a smartphone app so possible to book tickets on the fly)
- Loco2
- Italia Rail
There may be others as well.