Python coin flipper with GUI
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
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
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
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
New contributor
New contributor
asked 2 days ago
skyn37
283
283
New contributor
New contributor
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
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
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
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
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
edited yesterday
New contributor
answered yesterday
Alex Cosmo
215
215
New contributor
New contributor
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