Python coin flipper with GUI

Multi tool use
up vote
4
down vote
favorite
I am doing some simple projects in an attempt to get good at programming, this is my first GUI would love some feedback, and some guidelines.
from tkinter import *
import random
root = Tk()
root.resizable(False, False)
root.title('Coinflipper')
topframe = Frame(root)
topframe.pack()
botframe = Frame(root)
botframe.pack(side=BOTTOM)
midframe = Frame(root)
midframe.pack()
choice = Label(topframe, text="Enter the number of flips: ")
choice.grid(row=1)
ent = Entry(topframe)
ent.grid(row=1, column=2)
clickit = Button(botframe, text="FLIP THE COIN!!!")
clickit.pack()
out = Text(midframe, width=15, height=1)
out2 = Text(midframe, width=15, height=1)
out.grid(row=1, column=1, columnspan=3)
out2.grid(row=2, column=1, columnspan=3)
def flipy(event):
guess = ent.get()
heads =
tails =
if guess == '' or guess == str(guess):
out.delete(1.0, "end-1c")
out.insert("end-1c", 'Invalid')
for flips in range(int(guess)):
out.delete(1.0, "end-1c")
out2.delete(1.0, "end-1c")
random_number = random.randint(1, 2)
if random_number == 1:
heads.append("Heads")
elif random_number == 2:
tails.append("Tails")
out.insert("end-1c", len(tails))
out.insert("end-1c", " -TAILS")
out2.insert("end-1c", len(heads))
out2.insert("end-1c", " -HEADS")
clickit.bind("<Button-1>", flipy)
root.mainloop()
python python-3.x gui tkinter user-interface
New contributor
skyn37 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
up vote
4
down vote
favorite
I am doing some simple projects in an attempt to get good at programming, this is my first GUI would love some feedback, and some guidelines.
from tkinter import *
import random
root = Tk()
root.resizable(False, False)
root.title('Coinflipper')
topframe = Frame(root)
topframe.pack()
botframe = Frame(root)
botframe.pack(side=BOTTOM)
midframe = Frame(root)
midframe.pack()
choice = Label(topframe, text="Enter the number of flips: ")
choice.grid(row=1)
ent = Entry(topframe)
ent.grid(row=1, column=2)
clickit = Button(botframe, text="FLIP THE COIN!!!")
clickit.pack()
out = Text(midframe, width=15, height=1)
out2 = Text(midframe, width=15, height=1)
out.grid(row=1, column=1, columnspan=3)
out2.grid(row=2, column=1, columnspan=3)
def flipy(event):
guess = ent.get()
heads =
tails =
if guess == '' or guess == str(guess):
out.delete(1.0, "end-1c")
out.insert("end-1c", 'Invalid')
for flips in range(int(guess)):
out.delete(1.0, "end-1c")
out2.delete(1.0, "end-1c")
random_number = random.randint(1, 2)
if random_number == 1:
heads.append("Heads")
elif random_number == 2:
tails.append("Tails")
out.insert("end-1c", len(tails))
out.insert("end-1c", " -TAILS")
out2.insert("end-1c", len(heads))
out2.insert("end-1c", " -HEADS")
clickit.bind("<Button-1>", flipy)
root.mainloop()
python python-3.x gui tkinter user-interface
New contributor
skyn37 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
up vote
4
down vote
favorite
up vote
4
down vote
favorite
I am doing some simple projects in an attempt to get good at programming, this is my first GUI would love some feedback, and some guidelines.
from tkinter import *
import random
root = Tk()
root.resizable(False, False)
root.title('Coinflipper')
topframe = Frame(root)
topframe.pack()
botframe = Frame(root)
botframe.pack(side=BOTTOM)
midframe = Frame(root)
midframe.pack()
choice = Label(topframe, text="Enter the number of flips: ")
choice.grid(row=1)
ent = Entry(topframe)
ent.grid(row=1, column=2)
clickit = Button(botframe, text="FLIP THE COIN!!!")
clickit.pack()
out = Text(midframe, width=15, height=1)
out2 = Text(midframe, width=15, height=1)
out.grid(row=1, column=1, columnspan=3)
out2.grid(row=2, column=1, columnspan=3)
def flipy(event):
guess = ent.get()
heads =
tails =
if guess == '' or guess == str(guess):
out.delete(1.0, "end-1c")
out.insert("end-1c", 'Invalid')
for flips in range(int(guess)):
out.delete(1.0, "end-1c")
out2.delete(1.0, "end-1c")
random_number = random.randint(1, 2)
if random_number == 1:
heads.append("Heads")
elif random_number == 2:
tails.append("Tails")
out.insert("end-1c", len(tails))
out.insert("end-1c", " -TAILS")
out2.insert("end-1c", len(heads))
out2.insert("end-1c", " -HEADS")
clickit.bind("<Button-1>", flipy)
root.mainloop()
python python-3.x gui tkinter user-interface
New contributor
skyn37 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
I am doing some simple projects in an attempt to get good at programming, this is my first GUI would love some feedback, and some guidelines.
from tkinter import *
import random
root = Tk()
root.resizable(False, False)
root.title('Coinflipper')
topframe = Frame(root)
topframe.pack()
botframe = Frame(root)
botframe.pack(side=BOTTOM)
midframe = Frame(root)
midframe.pack()
choice = Label(topframe, text="Enter the number of flips: ")
choice.grid(row=1)
ent = Entry(topframe)
ent.grid(row=1, column=2)
clickit = Button(botframe, text="FLIP THE COIN!!!")
clickit.pack()
out = Text(midframe, width=15, height=1)
out2 = Text(midframe, width=15, height=1)
out.grid(row=1, column=1, columnspan=3)
out2.grid(row=2, column=1, columnspan=3)
def flipy(event):
guess = ent.get()
heads =
tails =
if guess == '' or guess == str(guess):
out.delete(1.0, "end-1c")
out.insert("end-1c", 'Invalid')
for flips in range(int(guess)):
out.delete(1.0, "end-1c")
out2.delete(1.0, "end-1c")
random_number = random.randint(1, 2)
if random_number == 1:
heads.append("Heads")
elif random_number == 2:
tails.append("Tails")
out.insert("end-1c", len(tails))
out.insert("end-1c", " -TAILS")
out2.insert("end-1c", len(heads))
out2.insert("end-1c", " -HEADS")
clickit.bind("<Button-1>", flipy)
root.mainloop()
python python-3.x gui tkinter user-interface
python python-3.x gui tkinter user-interface
New contributor
skyn37 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
skyn37 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
skyn37 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
asked 2 days ago
skyn37
283
283
New contributor
skyn37 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
skyn37 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
skyn37 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
up vote
3
down vote
accepted
You are abusing the heads
& tails
lists into making simple counters.
heads =
tails =
for flips in range(int(guess)):
random_number = random.randint(1, 2)
if random_number == 1:
heads.append("Heads")
elif random_number == 2:
tails.append("Tails")
len(tails)
len(heads)
This could be replaced with simply:
heads = 0
tails = 0
for flips in range(int(guess)):
random_number = random.randint(1, 2)
if random_number == 1:
heads += 1
else:
tails += 1
Thank you ! I tend to overcomplicate things for myself. Guess that will go away with practice.
– skyn37
8 hours ago
add a comment |
up vote
0
down vote
Skyn37,
This a great first time GUI setup.
Only saw a few things I would change to make it easier on yourself.
I don't see anything wrong with your Function.
Things that need work:
1.Line 9 to 14: These are unnecessary as you already started using grid. Yet this is good practice. Just not needed for this program.
2.Also try to organize your code better. It helps yourself and also others to quickly identify what the code is doing. I made a few tweaks to your code. Organized it a bit, and made a few minor changes. Placed everything using Grid and Tidied up the GUI a bit.
"""Geometry and Title"""
root.title('Coinflipper')
root.geometry("300x100")
root.resizable(False,False)
"""Labels & Text Box"""
choice = Label(text="How Many Flips: ")
T = Label(text="Tails: ")
H = Label(text="Heads: ")
ent = Entry(root)
out = Text(width=15, height=1)
out2 = Text(width=15, height=1)
"""Grid Positions"""
choice.grid(row=0, column=0, sticky=E)
T.grid(row=1,column=0,sticky=E)
H.grid(row=2,column=0,sticky=E)
ent.grid(row=0, column=1, columnspan=3)
out.grid(row=1, column=1, columnspan=3)
out2.grid(row=2, column=1, columnspan=3)
"""Button Text and Position"""
clickit = Button(text="FLIP THE COIN!!!")
clickit.grid(row=3,column=1)
Overall great work!
New contributor
Alex Cosmo is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
3
down vote
accepted
You are abusing the heads
& tails
lists into making simple counters.
heads =
tails =
for flips in range(int(guess)):
random_number = random.randint(1, 2)
if random_number == 1:
heads.append("Heads")
elif random_number == 2:
tails.append("Tails")
len(tails)
len(heads)
This could be replaced with simply:
heads = 0
tails = 0
for flips in range(int(guess)):
random_number = random.randint(1, 2)
if random_number == 1:
heads += 1
else:
tails += 1
Thank you ! I tend to overcomplicate things for myself. Guess that will go away with practice.
– skyn37
8 hours ago
add a comment |
up vote
3
down vote
accepted
You are abusing the heads
& tails
lists into making simple counters.
heads =
tails =
for flips in range(int(guess)):
random_number = random.randint(1, 2)
if random_number == 1:
heads.append("Heads")
elif random_number == 2:
tails.append("Tails")
len(tails)
len(heads)
This could be replaced with simply:
heads = 0
tails = 0
for flips in range(int(guess)):
random_number = random.randint(1, 2)
if random_number == 1:
heads += 1
else:
tails += 1
Thank you ! I tend to overcomplicate things for myself. Guess that will go away with practice.
– skyn37
8 hours ago
add a comment |
up vote
3
down vote
accepted
up vote
3
down vote
accepted
You are abusing the heads
& tails
lists into making simple counters.
heads =
tails =
for flips in range(int(guess)):
random_number = random.randint(1, 2)
if random_number == 1:
heads.append("Heads")
elif random_number == 2:
tails.append("Tails")
len(tails)
len(heads)
This could be replaced with simply:
heads = 0
tails = 0
for flips in range(int(guess)):
random_number = random.randint(1, 2)
if random_number == 1:
heads += 1
else:
tails += 1
You are abusing the heads
& tails
lists into making simple counters.
heads =
tails =
for flips in range(int(guess)):
random_number = random.randint(1, 2)
if random_number == 1:
heads.append("Heads")
elif random_number == 2:
tails.append("Tails")
len(tails)
len(heads)
This could be replaced with simply:
heads = 0
tails = 0
for flips in range(int(guess)):
random_number = random.randint(1, 2)
if random_number == 1:
heads += 1
else:
tails += 1
answered yesterday
AJNeufeld
3,755317
3,755317
Thank you ! I tend to overcomplicate things for myself. Guess that will go away with practice.
– skyn37
8 hours ago
add a comment |
Thank you ! I tend to overcomplicate things for myself. Guess that will go away with practice.
– skyn37
8 hours ago
Thank you ! I tend to overcomplicate things for myself. Guess that will go away with practice.
– skyn37
8 hours ago
Thank you ! I tend to overcomplicate things for myself. Guess that will go away with practice.
– skyn37
8 hours ago
add a comment |
up vote
0
down vote
Skyn37,
This a great first time GUI setup.
Only saw a few things I would change to make it easier on yourself.
I don't see anything wrong with your Function.
Things that need work:
1.Line 9 to 14: These are unnecessary as you already started using grid. Yet this is good practice. Just not needed for this program.
2.Also try to organize your code better. It helps yourself and also others to quickly identify what the code is doing. I made a few tweaks to your code. Organized it a bit, and made a few minor changes. Placed everything using Grid and Tidied up the GUI a bit.
"""Geometry and Title"""
root.title('Coinflipper')
root.geometry("300x100")
root.resizable(False,False)
"""Labels & Text Box"""
choice = Label(text="How Many Flips: ")
T = Label(text="Tails: ")
H = Label(text="Heads: ")
ent = Entry(root)
out = Text(width=15, height=1)
out2 = Text(width=15, height=1)
"""Grid Positions"""
choice.grid(row=0, column=0, sticky=E)
T.grid(row=1,column=0,sticky=E)
H.grid(row=2,column=0,sticky=E)
ent.grid(row=0, column=1, columnspan=3)
out.grid(row=1, column=1, columnspan=3)
out2.grid(row=2, column=1, columnspan=3)
"""Button Text and Position"""
clickit = Button(text="FLIP THE COIN!!!")
clickit.grid(row=3,column=1)
Overall great work!
New contributor
Alex Cosmo is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
up vote
0
down vote
Skyn37,
This a great first time GUI setup.
Only saw a few things I would change to make it easier on yourself.
I don't see anything wrong with your Function.
Things that need work:
1.Line 9 to 14: These are unnecessary as you already started using grid. Yet this is good practice. Just not needed for this program.
2.Also try to organize your code better. It helps yourself and also others to quickly identify what the code is doing. I made a few tweaks to your code. Organized it a bit, and made a few minor changes. Placed everything using Grid and Tidied up the GUI a bit.
"""Geometry and Title"""
root.title('Coinflipper')
root.geometry("300x100")
root.resizable(False,False)
"""Labels & Text Box"""
choice = Label(text="How Many Flips: ")
T = Label(text="Tails: ")
H = Label(text="Heads: ")
ent = Entry(root)
out = Text(width=15, height=1)
out2 = Text(width=15, height=1)
"""Grid Positions"""
choice.grid(row=0, column=0, sticky=E)
T.grid(row=1,column=0,sticky=E)
H.grid(row=2,column=0,sticky=E)
ent.grid(row=0, column=1, columnspan=3)
out.grid(row=1, column=1, columnspan=3)
out2.grid(row=2, column=1, columnspan=3)
"""Button Text and Position"""
clickit = Button(text="FLIP THE COIN!!!")
clickit.grid(row=3,column=1)
Overall great work!
New contributor
Alex Cosmo is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
up vote
0
down vote
up vote
0
down vote
Skyn37,
This a great first time GUI setup.
Only saw a few things I would change to make it easier on yourself.
I don't see anything wrong with your Function.
Things that need work:
1.Line 9 to 14: These are unnecessary as you already started using grid. Yet this is good practice. Just not needed for this program.
2.Also try to organize your code better. It helps yourself and also others to quickly identify what the code is doing. I made a few tweaks to your code. Organized it a bit, and made a few minor changes. Placed everything using Grid and Tidied up the GUI a bit.
"""Geometry and Title"""
root.title('Coinflipper')
root.geometry("300x100")
root.resizable(False,False)
"""Labels & Text Box"""
choice = Label(text="How Many Flips: ")
T = Label(text="Tails: ")
H = Label(text="Heads: ")
ent = Entry(root)
out = Text(width=15, height=1)
out2 = Text(width=15, height=1)
"""Grid Positions"""
choice.grid(row=0, column=0, sticky=E)
T.grid(row=1,column=0,sticky=E)
H.grid(row=2,column=0,sticky=E)
ent.grid(row=0, column=1, columnspan=3)
out.grid(row=1, column=1, columnspan=3)
out2.grid(row=2, column=1, columnspan=3)
"""Button Text and Position"""
clickit = Button(text="FLIP THE COIN!!!")
clickit.grid(row=3,column=1)
Overall great work!
New contributor
Alex Cosmo is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
Skyn37,
This a great first time GUI setup.
Only saw a few things I would change to make it easier on yourself.
I don't see anything wrong with your Function.
Things that need work:
1.Line 9 to 14: These are unnecessary as you already started using grid. Yet this is good practice. Just not needed for this program.
2.Also try to organize your code better. It helps yourself and also others to quickly identify what the code is doing. I made a few tweaks to your code. Organized it a bit, and made a few minor changes. Placed everything using Grid and Tidied up the GUI a bit.
"""Geometry and Title"""
root.title('Coinflipper')
root.geometry("300x100")
root.resizable(False,False)
"""Labels & Text Box"""
choice = Label(text="How Many Flips: ")
T = Label(text="Tails: ")
H = Label(text="Heads: ")
ent = Entry(root)
out = Text(width=15, height=1)
out2 = Text(width=15, height=1)
"""Grid Positions"""
choice.grid(row=0, column=0, sticky=E)
T.grid(row=1,column=0,sticky=E)
H.grid(row=2,column=0,sticky=E)
ent.grid(row=0, column=1, columnspan=3)
out.grid(row=1, column=1, columnspan=3)
out2.grid(row=2, column=1, columnspan=3)
"""Button Text and Position"""
clickit = Button(text="FLIP THE COIN!!!")
clickit.grid(row=3,column=1)
Overall great work!
New contributor
Alex Cosmo is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
edited yesterday
New contributor
Alex Cosmo is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
answered yesterday


Alex Cosmo
215
215
New contributor
Alex Cosmo is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
Alex Cosmo is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
Alex Cosmo is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
add a comment |
skyn37 is a new contributor. Be nice, and check out our Code of Conduct.
skyn37 is a new contributor. Be nice, and check out our Code of Conduct.
skyn37 is a new contributor. Be nice, and check out our Code of Conduct.
skyn37 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%2f208358%2fpython-coin-flipper-with-gui%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
0sLDKbAJhA kErfpabkElN,IQrn,Kd