I'm a beginner coder, doing it solely for fun, having started coding about two months ago with Python. I have a working piece of code for calculating area and volume of different geometric shapes, using user input of "radius".
As I have said, the code works but I would like to know how I can improve it to be shorter, faster and more efficient. Essentially, I think it would be instructive to compare my rank amateur code to the code that an experienced software developer would produce to accomplish the same result.
from tkinter import *
from tkinter import ttk
import sys
root = Tk()
pi = 3.141
# Option Box
var = StringVar(root)
var.set("Functions")
lbl_title = Label(root, text = "GEOMETRIC SHAPES AND VOLUMES")
lbl_title.grid(row = 0, column = 0, columnspan = 2, padx =5, pady = 10)
lbl_choose = Label(root, text = "Choose a function and hit OK:")
lbl_choose.grid(row = 1, column = 0, padx = 5, pady = 0, sticky = W)
box = ttk.OptionMenu(root, var, "Circle Circumference", "Circle Area", "Sphere Volume",
"Rectangle Area", "Rectangle Prism Volume", "Cone Volume")
box.grid(row = 2, column = 0, padx=5, pady=5, sticky= W)
# Separator
line1 = ttk.Separator(root, orient = HORIZONTAL)
line1.grid(row = 4, column = 0, columnspan = 3, sticky = EW) # Note separator sticky EW!
#txt_data_in = Text(root, height = 1, width = 30, bg = "Light Grey")
#txt_data_in.grid(row = 5, column = 0, padx = 5, sticky = W)
# Functions
def circ_circumf(r):
print("\nThe circumference of the circle is: " + str(2*pi*r) + " units.")
def circ_area(r):
print("\nThe area of the circle is: " + str(pi*r**2) + " units.")
def sphere_vol(r):
print("\nThe volume of the sphere is: " +str(4/3 * pi * r**3) + " units.")
def rect_area(l,w):
pass
def rect_prism_vol(l, w, h):
pass
def cone_vol(r, h):
pass
def exit():
sys.exit()
# Main Function
def main():
if var.get() == "Circle Circumference":
r = int(input("Enter the radius of the circle in the units of your choice: "))
circ_circumf(r)
elif var.get() == "Circle Area":
r = int(input("Enter the radius of the circle in the units of your choice: "))
circ_area(r)
elif var.get() == "Sphere Volume":
r = int(input("Enter the radius of the sphere in the units of your choice: "))
sphere_vol(r)
# Function Button
butt1 = ttk.Button(root, text = "OK", command = main)
butt1.grid(row = 2, column = 1, padx = 5, sticky = W)
# Exit Button
butt2 = ttk.Button(root, text = "Exit", command = exit)
butt2.grid(row = 6, column = 0, padx = 5, pady = 5, sticky = W)
root.mainloop()