This is very much a work in progress as I am still learning Python; some bits of coding are slightly cobbled together and may be less efficient than they could be, I've left some print() components in ...