
Dear Ian Cordasco,
So as a maintainer/contributor to three of those I agree. But they're external dependencies which I sense is something you don't want.
The reality is that you can compile this code with some standard library modules and they'll give you the feedback you want. If you were to run this code you'd get a NameErrors for the first line where you expect a warning and you would get a SyntaxError for the second else statement after the first. pyflakes and flake8 turn those into error codes for you. So really, python already comes with the warnings on because doing
$ python test.py
Would first result in a SyntaxError (because of your else following the first else) and then once that's been fixed, you'd get a NameError.
Disclaimer: I didn't actually run the code so I may have the order of errors wrong, but I think this is roughly correct.
I am sorry..I mean: #!/usr/bin/python word = raw_input("Enter line : ") if word == "hello": print ("You enter \'hello\'") else: if world == "buy": #Error! should be word not world print "Buy" else: dasdas We will not have a problem with else. Okay, we can split this example: The first part is: #!/usr/bin/python *word* = raw_input("Enter line : ") if *word* == "hello": print ("You enter \'hello\'") else: if *world* == "buy": *#Error! should be word not world* print "Buy" *"NameError: name 'world' is not defined" - only in case if the word != 'hello'*!! The second one: #!/usr/bin/python *word* = raw_input("Enter line : ") if *word* == "hello": print ("You enter \'hello\'") else: if *word* == "buy": #Now correct! print "Buy" else iamnotfunction *#Error* *"NameError: name 'iamnotfunction' is not defined" only in case if word != 'hello' and word != "buy"*!! So I can type whatever I want in else block and someone can detect it after the several years.. And the first thing that I have to do programming in Python is to download analyser tool..I understand the importance of static analyser tools, but in this case (to check simple things like a variables and functions names) it is like "To use a sledge-hammer to crack a nut.". Many thanks! - Eduard PS. Within C++ or other languages I should use static analyser tools to check real bug-prone situation, but in new, modern Python I should use third-party tools to check the real simple errata. Maybe I do not understand something..