Hello rsalc1, půjdu (půjdeš, etc...) is not perfective. They are irregular imperfective future forms of jít. In other words, you use them where you would use "budu jít," but of course "budu jít" is wrong. Many monosyllabic durative verbs of motion have similar irregular futures, like jet, nést, téct, vést, and vézt. Note that these irregular imperfective forms are not derived from a regular infinitive; that is, there is no infinitive form "půjít." As Jana mentioned, "zajít" has many secondary meanings. However, its "main" meaning is the perfective form of jít. You use it where you would use any perfective verb: to show a completed action. Most of the time, though, the imperfective form is adequate. The perfective form is only necessary if you want to emphasize the completion. Šel jsem za lékařem, když jsem našel dokonalý kaštan. I was going to the doctor... Zašel jsem za lékařem a poradil mi, abych jedl zdravějí. I went to the doctor... I hope this helps you.