Yes, that is true. However, if you create another variable with the same name within an inner scope, such as a function definition, the global variable by that name will still exist, but will not be visible within that inner scope, except with the use of some particular coding gymnastics, which are not covered in this post. So while you do have a global variable named txt, that name refers only to the local variable when it is used within the draw function.
If, however, you declare txt as global within the function, the name, whether used within the function or in the global scope, will refer to the global variable by that name, and no local variable by that name will be created within that particular function.
That may seem like an arbitrary rule, at first, but I think it is a good language feature.