Olympic Symbol

import turtle

tr = turtle.Turtle()

tr.pensize(5)

tr.color("blue")

tr.penup()

tr.goto(-110, -25)

tr.pendown()

tr.circle(45)

tr.color("black")

tr.penup()

tr.goto(0, -25)

tr.pendown()

tr.circle(45)

tr.color("red")

tr.penup()

tr.goto(110, -25)

tr.pendown()

tr.circle(45)

tr.color("yellow")

tr.penup()

tr.goto(-55, -75)

tr.pendown()

tr.circle(45)

tr.color("green")

tr.penup()

tr.goto(55, -75)

tr.pendown()

tr.circle(45)


Page Switching

import tkinter as tk

from tkinter import ttk

LARGEFONT =("Verdana", 35)

class switchApp(tk.Tk):

    def __init__(self, *args, **kwargs):

        tk.Tk.__init__(self, *args, **kwargs)

        container = tk.Frame(self)

        container.pack(side = "top", fill = "both", expand = True)

        container.grid_rowconfigure(0, weight = 1)

        container.grid_columnconfigure(0, weight = 1)

        self.frames = {}

        for F in (StartPage, Page1, Page2):

            frame = F(container, self)

            self.frames[F] = frame

            frame.grid(row = 0, column = 0, sticky ="nsew")

        self.show_frame(StartPage)

    def show_frame(self, cont):

        frame = self.frames[cont]

        frame.tkraise()

class StartPage(tk.Frame):

    def __init__(self, parent, controller):

        tk.Frame.__init__(self, parent)

        label = ttk.Label(self, text ="Startpage", font = LARGEFONT)

        label.grid(row = 0, column = 4, padx = 10, pady = 10)

        button1 = ttk.Button(self, text ="Page 1",

        command = lambda : controller.show_frame(Page1))

        button1.grid(row = 1, column = 1, padx = 10, pady = 10)

        button2 = ttk.Button(self, text ="Page 2",

        command = lambda : controller.show_frame(Page2))

        button2.grid(row = 2, column = 1, padx = 10, pady = 10)

class Page1(tk.Frame): 

    def __init__(self, parent, controller):

        tk.Frame.__init__(self, parent)

        label = ttk.Label(self, text ="Page 1", font = LARGEFONT)

        label.grid(row = 0, column = 4, padx = 10, pady = 10)

        button1 = ttk.Button(self, text ="StartPage",

                            command = lambda : controller.show_frame(StartPage))

        button1.grid(row = 1, column = 1, padx = 10, pady = 10)

        button2 = ttk.Button(self, text ="Page 2",

                            command = lambda : controller.show_frame(Page2))

        button2.grid(row = 2, column = 1, padx = 10, pady = 10)

class Page2(tk.Frame):

    def __init__(self, parent, controller):

        tk.Frame.__init__(self, parent)

        label = ttk.Label(self, text ="Page 2", font = LARGEFONT)

        label.grid(row = 0, column = 4, padx = 10, pady = 10)

        button1 = ttk.Button(self, text ="Page 1",

                            command = lambda : controller.show_frame(Page1))

        button1.grid(row = 1, column = 1, padx = 10, pady = 10)

        button2 = ttk.Button(self, text ="Startpage",

                            command = lambda : controller.show_frame(StartPage))

        button2.grid(row = 2, column = 1, padx = 10, pady = 10)

app = switchApp()

app.mainloop()


EMI calculator

from tkinter import *

class EmiCalculator:

    def __init__(self):

        window = Tk() 

        window.title("Loan Calculator") 

        Label(window, text = "Annual Interest Rate").grid(row = 1,

                                        column = 1, sticky = W)

        Label(window, text = "Number of Years").grid(row = 2,

                                    column = 1, sticky = W)

        Label(window, text = "Loan Amount").grid(row = 3,

                                column = 1, sticky = W)

        Label(window, text = "Monthly Payment").grid(row = 4,

                                    column = 1, sticky = W)

        Label(window, text = "Total Payment").grid(row = 5,

                                    column = 1, sticky = W)

        self.annualInterestRateVar = StringVar()

        Entry(window, textvariable = self.annualInterestRateVar,

                    justify = RIGHT).grid(row = 1, column = 2)

        self.numberOfYearsVar = StringVar()

        Entry(window, textvariable = self.numberOfYearsVar,

                justify = RIGHT).grid(row = 2, column = 2)

        self.loanAmountVar = StringVar()

        Entry(window, textvariable = self.loanAmountVar,

            justify = RIGHT).grid(row = 3, column = 2)

        self.monthlyPaymentVar = StringVar()

        lblMonthlyPayment = Label(window, textvariable =

                        self.monthlyPaymentVar).grid(row = 4,

                        column = 2, sticky = E)

        self.totalPaymentVar = StringVar()

        lblTotalPayment = Label(window, textvariable =

                    self.totalPaymentVar).grid(row = 5,

                    column = 2, sticky = E)

        btComputePayment = Button(window, text = "Compute Payment",

                                command = self.computePayment).grid(

                                row = 6, column = 2, sticky = E)

        window.mainloop() 

    def computePayment(self):

        monthlyPayment = self.getMonthlyPayment(

        float(self.loanAmountVar.get()),

        float(self.annualInterestRateVar.get()) / 1200,

        int(self.numberOfYearsVar.get()))

        self.monthlyPaymentVar.set(format(monthlyPayment, '10.2f'))

        totalPayment = float(self.monthlyPaymentVar.get()) * 12 \

                                * int(self.numberOfYearsVar.get())

        self.totalPaymentVar.set(format(totalPayment, '10.2f'))

    def getMonthlyPayment(self, loanAmount, monthlyInterestRate, numberOfYears):

        monthlyPayment = loanAmount * monthlyInterestRate / (1

        - 1 / (1 + monthlyInterestRate) ** (numberOfYears * 12))

        return monthlyPayment;

        root = Tk() 

EmiCalculator()



Bubble sort visualizer

import pygame

pygame.init()

win = pygame.display.set_mode((500, 400))

pygame.display.set_caption("Bubble sort")

x = 40

y = 40

width = 20

height = [200, 50, 130, 90, 250, 61, 110,

            88, 33, 80, 70, 159, 180, 20]

run = True

def show(height):

    for i in range(len(height)):

        pygame.draw.rect(win, (255, 0, 0), (x + 30 * i, y, width, height[i]))

while run:

    execute = False

    pygame.time.delay(10)

    keys = pygame.key.get_pressed()

    for event in pygame.event.get():

        if event.type == pygame.QUIT:

            run = False

    if keys[pygame.K_SPACE]:

        execute = True

    if execute == False:

        win.fill((0, 0, 0))

        show(height)

        pygame.display.update()

    else:

        for i in range(len(height) - 1):

            for j in range(len(height) - i - 1):

                if height[j] > height[j + 1]:

                    t = height[j]

                    height[j] = height[j + 1]

                    height[j + 1] = t

                win.fill((0, 0, 0))

                show(height)

                pygame.time.delay(50)

                pygame.display.update()

pygame.quit()


Age Calculator

from tkinter import *

from tkinter import messagebox

def clearAll() :

    dayField.delete(0, END)

    monthField.delete(0, END)

    yearField.delete(0, END)

    givenDayField.delete(0, END)

    givenMonthField.delete(0, END)

    givenYearField.delete(0, END)

    rsltDayField.delete(0, END)

    rsltMonthField.delete(0, END)

    rsltYearField.delete(0, END)

def checkError() :

    if (dayField.get() == "" or monthField.get() == ""

        or yearField.get() == "" or givenDayField.get() == ""

        or givenMonthField.get() == "" or givenYearField.get() == "") :

        messagebox.showerror("Input Error")

        clearAll()

        return -1

def calculateAge() :

    value = checkError()

    if value == -1 :

        return

    else :

        birth_day = int(dayField.get())

        birth_month = int(monthField.get())

        birth_year = int(yearField.get())

        given_day = int(givenDayField.get())

        given_month = int(givenMonthField.get())

        given_year = int(givenYearField.get())

        month =[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

        if (birth_day > given_day):

            given_month = given_month - 1

            given_day = given_day + month[birth_month-1]

        if (birth_month > given_month):

            given_year = given_year - 1

            given_month = given_month + 12

        calculated_day = given_day - birth_day;

        calculated_month = given_month - birth_month;

        calculated_year = given_year - birth_year;

        rsltDayField.insert(10, str(calculated_day))

        rsltMonthField.insert(10, str(calculated_month))

        rsltYearField.insert(10, str(calculated_year))

if __name__ == "__main__" :

    gui = Tk()

    gui.configure(background = "light green")

    gui.title("Age Calculator")

    gui.geometry("525x260")

    dob = Label(gui, text = "Date Of Birth", bg = "light green")

    givenDate = Label(gui, text = "Given Date", bg = "light green")

    day = Label(gui, text = "Day", bg = "light green")

    month = Label(gui, text = "Month", bg = "light green")

    year = Label(gui, text = "Year", bg = "light green")

    givenDay = Label(gui, text = "Given Day", bg = "light green")

    givenMonth = Label(gui, text = "Given Month", bg = "light green")

    givenYear = Label(gui, text = "Given Year", bg = "light green")

    rsltYear = Label(gui, text = "Years", bg = "light green")

    rsltMonth = Label(gui, text = "Months", bg = "light green")

    rsltDay = Label(gui, text = "Days", bg = "light green")

    resultantAge = Button(gui, text = "Resultant Age", fg = "Black", bg = "light blue", command = calculateAge)

    clearAllEntry = Button(gui, text = "Clear All", fg = "Black", bg = "light blue", command = clearAll)

    dayField = Entry(gui)

    monthField = Entry(gui)

    yearField = Entry(gui)

    givenDayField = Entry(gui)

    givenMonthField = Entry(gui)

    givenYearField = Entry(gui)

    rsltYearField = Entry(gui)

    rsltMonthField = Entry(gui)

    rsltDayField = Entry(gui)

    dob.grid(row = 0, column = 1)

    day.grid(row = 1, column = 0)

    dayField.grid(row = 1, column = 1)

    month.grid(row = 2, column = 0)

    monthField.grid(row = 2, column = 1)

    year.grid(row = 3, column = 0)

    yearField.grid(row = 3, column = 1)

    givenDate.grid(row = 0, column = 4)

    givenDay.grid(row = 1, column = 3)

    givenDayField.grid(row = 1, column = 4)

    givenMonth.grid(row = 2, column = 3)

    givenMonthField.grid(row = 2, column = 4)

    givenYear.grid(row = 3, column = 3)

    givenYearField.grid(row = 3, column = 4)

    resultantAge.grid(row = 4, column = 2)

    rsltYear.grid(row = 5, column = 2)

    rsltYearField.grid(row = 6, column = 2)

    rsltMonth.grid(row = 7, column = 2)

    rsltMonthField.grid(row = 8, column = 2)

    rsltDay.grid(row = 9, column = 2)

    rsltDayField.grid(row = 10, column = 2)

    clearAllEntry.grid(row = 12, column = 2)

    gui.mainloop()