How to start learning Python for Machine Learning without spending money?
There is plenty of material on the internet in the form of blog posts. This, together with the philosophy of learning by doing, leads me to the following advice: google "python XXX tutorial" where XXX stands for a basic machine learning algorithm and, for a few of the first results, use Google Colab to mimic what the tutorial explains.

Whatever you don't understand, you look up in google (e.g. what is Google Colab, loops in python, python named arguments, etc).

The main python libraries used in ML probably are scikit-learn and pandas. The online documentation of these and any other library used in the tutorials will probably be very useful to understand what each piece of code does.

Some ML algorithms you may want to explore are:


Linear regression
Logistic regression
k-nearest neighbors
k-means


When going through the tutorials, you will probably find many important transversal concepts, e.g. difference between classification, regression and clustering, data split in train/validation/test sets, performance measures like accuracy, the ROC curve, the area under it; look up in google any term you don't understand, the first results or their wikipedia pages will probably give you a basic understanding of them.