Free hosting is good if you are just starting out and not really sure about what you need to do and don't expect more than 10-20 visitors a day. One good free hosting would be 000webhost. Do note that they will temporarily takedown your website if you receive high amounts of traffic.
Obviously Paid hosting is best
If you are looking for the hosting offers then you have to try https://www.wizzhosting.co.uk/ . I have been using this from last two years and i have great services and offers.
There are many free and paid web hosting providers available on the web, Free web hosting is the best but they will not provide full access like as a paid hosting, So I will recommend paid hosting cause they provide full panel access.