These are important to know from each other, so I will do my best to explain the difference between them. I will be using the Steem blockchain as an example, but the general ideas can be applied to most or all other blockchains as well.
Let's begin with the testnet. As the name implies, this version of the blockchain is used to test stuff, like for example new features such as hardforks. Before we got Hardfork 20, lots of people tried out the new features on the testnet to give developers feedback before we moved it to the mainnet.
It's important to keep in mind that the testnet is not "real", so you are encouraged to try to break things there. It will reset often, and it is usually created from a snapshot of the mainnet at a certain point. So you can give away all your Steem on the testnet, and it won't affect you for real, since it will be reset when they take a new snapshot from the mainnet.
The next testnet will likely be to test out SMTs, so you can go there and create as many SMTs you want without the fear of wasting coins, ruining your reputation etc. So go there and try to break things, and make sure to give feedback of your experience, especially if you encounter any bugs or unexpected behavior from the blockchain.
The mainnet is the real blockchain chain. It's the one you posted this question to, and the one I'm answering on right now. In other words, this is the real blockchain that you are using all the time, and we generally don't like to make changes on this without testing them on the testnet first.
I hope this was a clear explanation, and that you know the difference now. Let me know if you have any further questions about the testnet or the mainnet.
A test net is an environment to test the white paper in a safe environment experimenting and developing . This is a perfect place to show investors what is capable. This is a prototype of what will become the mainnet.
The mainnet is the real thing running on a blockchain after all the tests have been completed on the testnet. The mainnet will normally launch when ready as it is open for business accepting mass adoption.
What is important with a mainnet is it lets everyone know that the developers have delivered what was promised in the white paper which results in more value.