There are three basic areas of coding for aviation engineers. Software code that runs on flight computers and other avionics equipment, software that formally verifies and creates that code, and scripting to automate informal work tasks. Python has different use cases in all of them.
First, for actual on-airplane software. There are different safety levels here and different required levels of testing. Python would be a nightmare to certify for a critical display, autopilot, or ground-proximity warning unit. C's lack of object-oriented programming and complaints when you abuse variable types may be annoying, but they also lead to easy verification that the software isn't doing something wrong behind your back. On the other hand, I've heard of noncritical systems like in-flight entertainment and maintenance even using systems like Windows NT.
Code generation and formal verification (the kind that's documented to prove to certification authorities that you won't, well, kill anyone), do have to be formally qualified sometimes. You can't just write a Python script to test all your software by simulation, formal methods, etc, then say to certification authorities that your Python script showed no problems. To be more specific, DO-330 provides guidance that if you're using a tool to replace DO-178 processes (like testing, code generation, or configuration control), then that tool needs to either be formally qualified or its output needs to be checked (yes, even if the output is more fool-proof then a human doing the same analysis).
Finally, a lot of engineers' jobs involve scripting, and there are few langugages more popoular right now for scripting than python. By scripting I mean solving problems like:
- What issues am I working on in this area?
- How do I add a description to a hundred files at once?
- Is this criteria statistically different from that criteria?
- How can I pull hundreds of lines of data from our database and dump it into a spreadsheet for my project engineer?
- How can I email my boss every day asking for a promotion?
In these non-critical but quotidian affairs, python scripting can help wrangle lots of complex or repetitive tasks and make them manageable.