Tehran has a moderate public transportation. The best choice for going around is Metro. But we do not suggest it in the rush hours (around 7-9 am and 5-7 pm). Metro is the most rapid and reliable transport vehicle in Tehran but it is not operating 24 hours. Operating time is from 6 am till around 11 pm. Also you can reach some cities around Tehran by Metro, including Karaj, Garmsar [is about to begin]. You can go to Imam Khomeini International Airport by Metro. Find last Metro lines and stations here. Metro is not only a transport vehicle, you can visit artistic works inside the stations.
The other choice is Bus, specially BRT, which is rapid and reliable. BRTs service 24H and its services are on time and acceptable. For more information about lines and servoce times visit its site or you can find more details here.