You can host a website for free with a free web host but the free host will have limitations and will most likely not have mysql installed which most websites these days need to operate.
Plus you'll need a domain and you can't get a free domain.
A domain will cost you around $11.00 per year.
That's less than $1.00 per month very cheap to get started.
I recommend getting a paid web host. You can find web hosting offers on
http://webmasterbabble.com webmaster forum.
There's lots of web hosting offers in the Advertising forums on webmasterbabble webmaster forum.
You can then install wordpress if you want to create a blog. If you want to eventually earn money with your website then it's best to get started using paid web hosting and a proper domain.
Not many websites on free services using free domains or subdomains rank in google.
If you want to look professional and rank your blog or website in google search and other search engines then it's best to pay for a domain and pay for web hosting.