A script is a .py file that contains multiple Python commands that are usually run sequentially. Scripts are usually used to conduct a specific task, or solve a specific problem. Scripts often use functions and other programming tools that are contained in modules.
A module is also a .py file, and also contains multiple Python commands. However, usually these commands are organized into functions and other organizational bundles like classes, and the commands are not run sequentially. Instead the commands are run in an on-demand basis, where the module user (often a script) specifies which of the module's functions and/or commands should be executed, and at what point(s) in the script. Modules do not conduct specific tasks or solve specific problems. Instead, their functions and classes are meant to be general-use tools that can be used to solve a variety of problems.
As an example, consider a simple task like downloading the forecasted maximum temperature for today from your favorite weather website. A script for conducting this task would access the website, download the relevant data, then report the result to you, possibly by printing the forecasted maximum temperature to the screen of your computer. The script might also use a variety of modules, including especially a web-access module, which contains functions for accessing websites and downloading relevant data from them. In this case, the module's functions would allow you to access not only your favorite weather website, but any website.
You can therefore think of scripts as a specific-purpose sequence of commands, and modules as a general-purpose set of programming tools.