![]() |
VOOZH | about |
We’re so glad you’re here. You can expect all the best TNS content to arrive Monday through Friday to keep you on top of the news and at the top of your game.
Check your inbox for a confirmation email where you can adjust your preferences and even join additional groups.
Follow TNS on your favorite social media networks.
Become a TNS follower on LinkedIn.
Check out the latest featured and trending stories while you wait for your first TNS newsletter.
Python is a dynamic, strongly typed, interpreted language. These terms sound abstract and intimidating at first, but they’re easily understandable and contribute to why the language is, dare I say, “user-friendly.” Let’s break ‘em down and simplify.
Programming languages fall into one of two camps — dynamic or static. Static languages are C, C++, Java and Go. One of the defining characteristics of static languages is that variable types must be defined in the source code. Once the developer defines a variable as a certain data type ( i.e., if the cat variable is a string), it’s a string forever(rrrrr). Once the variable is defined at compile time, it can’t be changed at runtime.
With dynamic languages, the interpreter infers variable types at runtime (more on the interpreter and runtime later). This changes what we can do and can’t do, significantly. Dynamic languages include Python, JavaScript, Ruby, PHP.
This means Python variable assignments can be as simple as:
Python’s runtime will read Mooney and assign the appropriate memory without previously being told that Mooney is a string.
vs C++
Another characteristic of a dynamic language is the value’s ability to change — within the same data type and to a different data type without throwing an error.
The code above returns the following results
Mooney
Seth
[Seth, Mooney]
This refers to directly to memory and how it can or can’t be changed. Though values of Python values can change, they can’t change in unexpected ways without throwing errors. Here’s the best way to explain:
Integer + integer = success
String + string = success
Integer + string = error
You can change variable types but they need an explicit conversion.
Python’s runtime makes this possible. Python’s runtime refers to the tools used to write and run Python code. The runtime is the software stack responsible for the installation and running of application code and dependencies. Runtimes include the command line, integrated development environments (IDEs) like VS Code or Jupyter Notebook, and web servers like Django and Flask. The runtime includes CPython — Python’s default bytecode interpreter. CPython’s main purpose is to read code written by (mostly) humans and turn it into machine-readable code.
CPython reads and interprets Python source code and executes line by line (hence the interpreted language). Before execution, CPython compiles the Python source code into bytecode. The Python Virtual Machine (PVM) is what executes the code. Since CPython handles Python code execution, it also manages Python memory management. This includes memory allocation and garbage collection. CPython provides a standard library that includes modules and packages for tasks such as I/O, networking, and data manipulation.
For a deeper understanding of how Python’s interpreter works under the hood, check out this video. Python’s under the hood tools allow for flexible and expressive programming. This makes it well suited for the tasks the language is known for such as scripting, web development, and data analysis.