Q:

What exactly is the difference between public and private IP addresses? 

Everywhere on the Internet the same answer is given, private IP addresses exists only inside your network and public IP addresses are what everyone sees on Internet.  
What exactly do they mean by the Internet?  
I have a home network, on top of which my ISP has their network.  They too connect to an internet exchange which in turn connects to networks outside my country.  And this hierarchy goes on and on.  
At which stage do we say IP addresses in a network are public?  
I went to websites like iplocationfinder and they show my IP and also my ISP's network as private.  Its confusing! 

A:

The definition of internet changed over time.  It used to mean a connection between multiple organisations.  For about 15 years (very, very roughly) its meant a the systems connected to the global network formally called "the Internet" (note capitalisation). 
Private IP addresses are defined (in addition to other standards documents) in RFC1918, which sets asides specific IP address ranges for use within an organisation.  These IP addresses can not be reached directly over the Internet from other organisations and include 10..., 192.168..*  and 172.16-31..   There is additionally 100...* which is used for carrier grade NAT and is a grey area (and is not in RFC1918)
Where machines have an address in the above range, a router uses network address translation to partially allow internet connectivity for the IP address, but the wider Internet does not have knowledge of the internal address or how to route it.  IE the internal IP address can exist in multiple networks and is not accessible from all of the Internet. ( Except where a router substitutes a valid address and "proxies" for it)

