Programmers spend a lot of time on the command line, and all of us have our favorite Linux shells, or debate the merits of MS-DOS vs. PowerShell (hint: use PowerShell), but there is a niche area in the open source community dedicated to building better terminal emulators with bells, whistles, and plugins, and some of them can change the way you approach command line interfaces.
Many months ago I came across Hyper, which is a fully extensible terminal emulator written in Electron by the same people who brought you Zeit. It is built on open standards, you can customize key mappings, colors, and behaviors, and you can even install plugins for added bells and whistles. It also allows for multiple tabs.
Hyper lets you pick between DOS, PowerShell, and Bash (which includes Bash on Windows), but you need to select your shell in the configuration file. There currently isn't a way to switch shells easily and intuitively, and one of the most requested features is to be able to choose your shell per tab, so you can have multiple tabs open, but with different shells.
Luckily, there's a script for that. GitHub user legowerewolf put together a batch script that can be used in conjunction with Hyper in order to prompt the user for their preferred shell on a per window/per tab basis.
You set your shell to an empty string, signifying the default shell. For Windows, this would be the DOS shell (i.e., CMD). You then set the shell arguments to point to the batch file, and when you reload Hyper, you'll receive the shell selection menu. It even includes Python as a shell option.
I've cloned the Gist here in the event the original ever goes away.