Python code - beginner area and volume calculator
$begingroup$
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" (see code below).
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()
Thanks,
Andre
python
New contributor
$endgroup$
add a comment |
$begingroup$
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" (see code below).
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()
Thanks,
Andre
python
New contributor
$endgroup$
add a comment |
$begingroup$
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" (see code below).
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()
Thanks,
Andre
python
New contributor
$endgroup$
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" (see code below).
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()
Thanks,
Andre
python
python
New contributor
New contributor
New contributor
asked 5 mins ago
Andre HumanAndre Human
1
1
New contributor
New contributor
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
});
});
}, "mathjax-editing");
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "196"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Andre Human is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f214628%2fpython-code-beginner-area-and-volume-calculator%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Andre Human is a new contributor. Be nice, and check out our Code of Conduct.
Andre Human is a new contributor. Be nice, and check out our Code of Conduct.
Andre Human is a new contributor. Be nice, and check out our Code of Conduct.
Andre Human is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Code Review Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f214628%2fpython-code-beginner-area-and-volume-calculator%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown