Skip to content

TangoMan75/python-lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

GH language GH release GH license GH stars Python CI Visitors

πŸ”¬ TangoMan Python Lab

#python #vanilla #back-end #training #interview #technical-interview

πŸ”¬ TangoMan Python Lab is a Python coding project for practicing common interview questions and coding challenges.

There are various Python scripts in the root directory that implement different algorithms and solutions to coding problems:

  1. πŸ”„ Ackermann

Implements the Ackermann function, which is a classic example of a recursive function that can be used to test compilers and illustrate the concept of recursion.

  1. πŸ” BinarySearch

Implements binary search to find an element in a sorted array. Binary search is an efficient algorithm for searching sorted data sets and relies on the divide-and-conquer technique.

  1. βž• Factorial

Calculates factorials recursively. Factorials are used in combinatorics and provide good examples of recursive functions.

  1. πŸ”’ Fibonacci

Generates Fibonacci numbers recursively. The Fibonacci sequence illustrates recursion and has applications in mathematics and nature.

  1. πŸ’¬ FizzBuzz

Prints numbers 1 to 100, but prints "Fizz" for multiples of 3, "Buzz" for multiples of 5, and "FizzBuzz" for multiples of both. This is a common interview screening question.

  1. πŸ‘‹ HelloWorld

Prints "Hello World!" - the traditional first program for beginner programmers.

  1. ❄️ MinTemperature

Finds minimum temperature value from temperature data. Demonstrates algorithms for finding minimum/maximum values.

  1. πŸ”„ Palindrome

Checks if a string is a palindrome. Palindromes illustrate recursion and string manipulation.

  1. βœ”οΈ Perfect

Checks if a number is a perfect number, where the number equals the sum of its divisors. Interesting math and recursion example.

  1. πŸƒ Poker

Evaluates poker hands. Involves evaluating combinations and ranks of cards.

  1. πŸ₯‡ PrimeNumbers

Checks if a number is prime, where a natural number greater than 1 has no positive divisors other than 1 and itself.

  1. πŸ”„ Rot13

Encodes/decodes a string using the ROT13 cipher, a simple letter substitution cipher. Basic encryption example.

  1. πŸ”‘ SimpleJWT

Implements JSON Web Token (JWT) encoding and decoding.

  1. πŸ’Ή Stocks

Return an array holding the names of the top three stocks with the best average performance given two separate arrays containing stocks names and prices.

  1. πŸ”’ Syracuse

Implements the Syracuse algorithm/sequence. Interesting recursion and number theory example.

  1. πŸ’Έ Taxes

Calculates taxes on French incomes based on specified brackets.

  1. πŸ—οΈ TowerOfHanoi

Implements the Tower of Hanoi algorithm. A classic algorithm that illustrates recursion and dynamic programming.

  1. πŸ”„ VonNeumann

Generates Von Neumann ordinal numbers. Illustrates generating recursive sequences.

βœ… Unit Tests

The tests/ directory in each folder contains unittest test cases for testing the implementations of each algorithm.

πŸ“‘ unittest Documentation

unittest documentation is available here: https://docs.python.org/3/library/unittest.html

πŸš€ Github Actions

This project uses Github Actions for continuous integration and testing. The .github/workflows directory contains YAML workflow definitions for:

  • Linting: Runs pylint to check code style and quality on every push and pull request.
  • Testing: Runs the Python unit tests on Ubuntu, against python versions 3.8 3.9 and 3.10.

The workflows help maintain code quality and ensure the tests pass on multiple python versions.

🌟 Inspiration

The following YouTube videos inspired TangoMan Python Lab project:

πŸ’» Dependencies

TangoMan Python Lab requires the following dependencies:

  • Python3

🐍 Python3

🐧 Install Python3 (Linux)

On linux machine enter following command

$ sudo apt-get install --assume-yes python3

🏁 Install Python3 (Windows)

Download and install latest version from here python.org

🍎 Install Python3 (OSX)

You can install python through the Homebrew package manager. Homebrew will install python-pip as well.

$ brew install python

🐍 Pylint

install pylint globally with pip

sudo pip install --upgrade pylint

Pylint documentation https://github.com/pylint-dev/pylint


🐍 Autopep8

install autopep8 globally with pip

sudo pip install --upgrade autopep8

Autopep8 documentation https://github.com/hhatto/autopep8


πŸš€ Installation

⚑ Step 1: Simply enter following command in your terminal

$ sh entrypoint.sh install

πŸ”₯ Usage

Run sh entrypoint.sh to print help

Run tests:

sh entrypoint.sh unit

Lint code:

sh entrypoint.sh lint

Fix lint errors:

sh entrypoint.sh lint --fix

Uninstall:

sh entrypoint.sh uninstall

🀝 Contributing

Thank you for your interest in contributing to TangoMan Python Lab.

Please review the code of conduct and contribution guidelines before starting to work on any features.

If you want to open an issue, please check first if it was not reported already before creating a new one.

πŸ“œ License

Copyrights (c) 2024 "Matthias Morin" <mat@tangoman.io>

License Distributed under the MIT license.

If you like TangoMan Python Lab please star, follow or tweet about it:

GitHub stars GitHub followers Twitter

... And check my other cool projects.

About

TangoMan Python Lab is a Python coding project for practicing common interview questions and coding challenges.

Topics

Resources

Code of conduct

Contributing

Stars

Watchers

Forks

Used by

Contributors

Languages