Please note, the following explanation is a little simplified:
Your variables are stored in the RAM of your computer as long as your program is running. As soon as you restart it, the changes will be lost!
Let's see why: Your program is basically a text file that is taken by the python interpreter and read. For every variable python will allocate a small chunk of RAM memory. As long as your program is running, python can read or write that chunk of memory. That happens if you access the variable.
As soon as python is "done" with your code it will free all the RAM it allocated. That way, other processes can use the RAM. Your variables will be lost.
You shouldn't change that process. The fact that your variables are lost is intended. But there are still ways to store your data.
There are several ways to do this. Read the Python documentation on how to write into a file. You can build a class that writes down all these values when your program terminates and reads them when you start it up again. A simple text file might do or you could search for packages that will do that for you. Pickle might be a start, but there might be better ways to do this.
Alternatively you can build a function that saves your values whenever they change. This can generate a lot of write/read accesses to your hard drive so be careful when you do this.
If you want to make sure that your game is safe from cheating you can think about encoding your stats so you can't edit them with a text editor.
Also, I recommend that you should read more about classes. Currently you use the class Gas within the class Ore. Does that makes sense? Is a Gas an Ore?
Also, do you want to write down every item in the game? How about a dictionary to count your ores?
Also check out pygames. It is a little dated but they have tutorials that might help you.