linuxizer said:
Bottom line: If you're going to Penn's campus, consider the train, as 30th St Station where the line stops is the east border of campus.
Anywhere else, try the shuttles.
If you are going to Penn, get off at University City Station, NOT 30th Street. It is much closer. (The hospital is one block up Spruce Street, med school is a block further, and there are hotels nearby)
For Jefferson, get off at Market East Station, for Drexel get off at Suburban Station, and for Temple get off at Temple Station. All of these are within 3 blocks, except for Temple, which I am not sure about- I have not been to that part of town, and if my first time was at midnight I WOULD be in a cab.
All of the aforementioned stops are on the R1 line, the regional rail line that stops at every terminal in the airport every 20 minutes.
If your flight gets in at midnight, and you are staying at a hotel, you may want to consider an airport hotel. Prices are comparable / cheaper to those in Center City, many have shuttles, and safety would be a null issue in the morning.