The DHT22 is a good choice, especially when connected to a GrovePi+ hat as a Grove sensor (compact, no breadboarding or extra circuitry required). It has an easy-to-use Python library available and excellent accuracy. Having a combo temperature and humidity sensor is quite convenient. A tutorial that walks you through using a DHT22 + GrovePi+ is at
https://github.com/InitialState/grovepi/wiki.
The DHT11 really sucks b/c it has a +/- 1 degree Celsius error. That is too much error that creates a really quantized looking output. If you really want to save $10, the tutorial above shows you how to use a DHT11 too (seriously, don't use this sensor).
The DS18B20 has great accuracy and even comes in a waterproof version. You can also read it with a simple Python script. The downside here is that you will need to throw a pull-up resistor on it, making a breadboard solution likely. It does not include humidity, another downside. A tutorial for hooking up a DS18B20 to a Pi is at
https://github.com/InitialState/piot-10 ... ure-Sensor.
The temperature/humidity sensor on the sense HAT is pretty good too. It has a great Python library making it super easy-to-use. The biggest downside with the sense HAT is the fact that the Pi itself gives off enough heat to skew your temperature readings when the HAT is plugged in that close to the Pi's processor. You really need a GPIO extender to give your board some separation from the Pi (
https://www.adafruit.com/products/1979). A tutorial of using the sense HAT is at
https://github.com/InitialState/wunderg ... sehat/wiki.