I'm a newbie coder. I find it troublesome to declare a variable in 1 function and not be able to access it in other functions. I have to make many of my variables global just to get my code to work. But a lot of people say that the global state is evil. I don't understand the purpose of having limited scope, anyway.
Scope seems to encourage developers to declare same-name variables in different places.
def func1():
string = 'hello world'
...
def func2():
string = 'hello universe'
...
Without the need to distinguish variables in different functions, developers name their variables vague and less-meaningful names. Wouldn't it be better to have more specific variable names?
def func1():
world_string = 'hello world'
...
def func2():
universe_string = 'hello universe'
...
Why is limiting access to variables outside of the block that it's defined in, i.e. scope, a good thing to have in programming languages? As a newbie, I find it convenient to make every variable a global variable. Why is that bad in bigger projects?