There are three main geographical zones in Peru: the coast, the Andes, and the Amazon jungle.
The coast is generally dry, with cool to cold nights and warm to hot days. During the winter months, there is often mist and light drizzle. In the southern deserts, there is essentially no precipitation. Expect to use a lot of sun block and light clothing during the day but warm clothing at night. Bring a swimsuit and sandals for the beach and a good hat! In Lima, temperatures range on average between 12°C/54°F and 28°C/82°F during the year.
High mountain areas
The Andes have two main seasons, the summer rainy season from Oct-May and the dry winter season from June-September. During the rainy season expect rainfall almost every day, either intermittent showers or a good torrential down pour in the afternoon. The ground gets pretty muddy in the countryside and slippery. Temperatures ranges from the 40s °F at night to the 60s °F during the day, or 5°C to 15°C.
Dressing in layers is recommended because temperatures change quickly and unexpectedly. If the sun is out and there are few clouds, it can get very warm again and feel hotter than the actual temperature. Don't be fooled into leave your warm jacket at home though! If a storm comes up, and they can be sudden and unexpected, the temperature drops rapidly and you'll freeze without extra layers in reserve.
For this reason, we recommend dressing in pants as opposed to shorts! You will also avoid unnecessary sunburns this way. At altitude, the Andean sun is hot and you burn very, very quickly, sometimes within just 15 minutes. Hats and sunscreen are essential!
The Amazon jungle is wet year-round, but December through April are the wettest months. The temperatures are very warm during the day, but fall off slightly at night. After spending the day in the sun, however, this temperature drop will feel greater than it actually is, and you might find that you want a light jacket or long-sleeve at night. For Iquitos, the biggest city in the jungle, average temperatures range between a high of 30°C/88°F and a low of 21°C/70°F.