gender_predictor_tutorial.py
# importing everything from tkinter from tkinter import * # the requests will be used for making requests to the API import requests # tkinter message box to display errors from tkinter.messagebox import showerror def predict_gender(): # executes when code has no errors try: # getting the input from entry entered_name = name_entry.get() # making a request to the API, the user's entered name is injected in the url response = requests.get(f'https://api.genderize.io/?name={entered_name}').json() # getting name from the response name = response['name'] # getting gender from the response gender = response['gender'] # getting probability from the response probability = 100 * response['probability'] # adding name to the label that was empty, the name is being uppercased name_label.config(text='The name is ' + name.upper()) # adding gender to the label that was empty, the gender is being uppercased gender_label.config(text='The gender is ' + gender.upper()) # adding probability to the label that was empty probability_label.config(text='Am ' + str(probability) + '%' + ' accurate') # executes when errors are caught # KeyError, ConnectionTimeoutError except: showerror(title='error', message='An error occurred!! Make sure you have internet connection or you have entered the correct data') # colors for the application gold = '#dca714' brown = '#31251d' # creating the main window window = Tk() # defining the demensions of the window, width(325), height(300), 500+200 center the window window.geometry('325x300+500+200') # this is the title of the application window.title('Gender Predictor') # this makes the window unresizable window.resizable(height=FALSE, width=FALSE) """The two frames""" # this is the top frame inside the main window top_frame = Frame(window, bg=brown, width=325, height=80) top_frame.grid(row=0, column=0) # this is the bottom frame inside the main window bottom_frame = Frame(window, width=300, height=250) bottom_frame.grid(row=1, column=0) # the label for the big title inside the top_frame first_label = Label(top_frame, text='GENDER PREDICTOR', bg=brown, fg=gold, pady=10, padx=20, justify=CENTER, font=('Poppins 20 bold')) first_label.grid(row=0, column=0) # the label for the small text inside the top_frame second_label = Label(top_frame, text='Give me any name and i will predict its gender', bg=brown, fg=gold, font=('Poppins 10')) second_label.grid(row=1, column=0) """below are widgets inside the top_frame""" # the name label label = Label(bottom_frame, text='NAME:', font=('Poppins 10 bold'), justify=LEFT) label.place(x=4, y=10) # the entry for entering the user's name name_entry = Entry(bottom_frame, width=25, font=('Poppins 15 bold')) name_entry.place(x=5, y=35) # the empty name label, it will be used to display the name name_label = Label(bottom_frame, text='', font=('Poppins 10 bold')) name_label.place(x=5, y=70) # the empty gender label, it will be used to display the gender gender_label = Label(bottom_frame, text='', font=('Poppins 10 bold')) gender_label.place(x=5, y=90) # the empty probability label, it will be used to display the gender probalility probability_label = Label(bottom_frame, text='', font=('Poppins 10 bold')) probability_label.place(x=5, y=110) # the predict button predict_button = Button(bottom_frame, text="PREDICT", bg=gold, fg=brown, font=('Poppins 10 bold'), command=predict_gender) predict_button.place(x=5, y=140) window.mainloop()Join 50,000+ Python Programmers & Enthusiasts like you!
Email address Subscribe This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.Ethical Hacking with Python EBook
Web Security with Python EBook
Cryptography with Python EBook
Practical Python PDF Processing EBook
Real-Time Traffic Monitoring System with YOLOv9 eBook
Mastering YOLO: Build an Automatic Number Plate Recognition System
© 2026 The Python Code. All rights reserved.