Variable scope refers to the visibility and lifetime of variables. Local variables defined inside a function are only visible and accessible within that function. They are destroyed when the function exits. Global variables defined outside of functions can be accessed by any function, but it is generally better practice to pass variables between functions rather than using global variables. When updating a global variable within a function, the global keyword must be used to specify that the variable refers to the global one rather than creating a local one of the same name.