Почему пишет ошибку?
Домашнее задание:
Изменить программу так, чтобы вы могли вводить в однострочное текстовое поле
общее количество палочек, с которыми вы будете играть. Заменить компьютер на
второго игрока
from tkinter import*
def player():
n=int(e2.get())
k2.config(text="| "*n)
a=int(e1.get())
if (a==1 or a==2 or a==3) and n>a:
n=n-a
k2.config(text="| "*n)
k3.config(text=n)
b2.config(state="disabled")
b1.config(state="normal")
if n==1:
k3.config(text="Игрок победил!")
b1.config(state="disabled")
b2.config(state="disabled")
def player2():
n=int(e2.get())
k2.config(text="| "*n)
a=int(e1.get())
if (a==1 or a==2 or a==3) and n>a:
n=n-a
k2.config(text="| "*n)
k3.config(text=n)
b2.config(state="normal")
b1.config(state="disabled")
if n==1:
k3.config(text="Игрок 2 победил!")
b1.config(state="disabled")
b2.config(state="disabled")
w=Tk()
w.title("Игра")
k4=Label(w,text="Введите кол-во палочек",font=("arial black",17))
e2=Entry(w,font=("arial black",20),width=18)
k1=Label(w,text="Введите число от 1 до 3",font=("arial black",17))
k2=Label(w,text="| "*n,font=("arial black",20))
k3=Label(w,text=n,font=("arial black",20))
e1=Entry(w,font=("arial black",20),width=18)
b1=Button(w,text="Player 2",font=("arial black",20),width=17,bg="blue",command=player2)
b2=Button(w,text="Player",font=("arial black",20),width=17,bg="white",command=player)
k4.pack()
e2.pack()
k1.pack()
e1.pack()
k2.pack()
k3.pack()
b1.pack()
b2.pack()
def player():
n=int(e2.get())
k2.config(text="| "*n)
a=int(e1.get())
if (a==1 or a==2 or a==3) and n>a:
n=n-a
k2.config(text="| "*n)
k3.config(text=n)
b2.config(state="disabled")
b1.config(state="normal")
if n==1:
k3.config(text="Игрок победил!")
b1.config(state="disabled")
b2.config(state="disabled")
n=int(e2.get())
k2.config(text="| "*n)
a=int(e1.get())
if (a==1 or a==2 or a==3) and n>a:
n=n-a
k2.config(text="| "*n)
k3.config(text=n)
b2.config(state="normal")
b1.config(state="disabled")
if n==1:
k3.config(text="Игрок 2 победил!")
b1.config(state="disabled")
b2.config(state="disabled")
w.title("Игра")
k4=Label(w,text="Введите кол-во палочек",font=("arial black",17))
e2=Entry(w,font=("arial black",20),width=18)
k1=Label(w,text="Введите число от 1 до 3",font=("arial black",17))
k2=Label(w,text="| "*n,font=("arial black",20))
k3=Label(w,text=n,font=("arial black",20))
b1=Button(w,text="Player 2",font=("arial black",20),width=17,bg="blue",command=player2)
b2=Button(w,text="Player",font=("arial black",20),width=17,bg="white",command=player)
k4.pack()
e2.pack()
k1.pack()
e1.pack()
k2.pack()
k3.pack()
b1.pack()
b2.pack()
Ответы на вопрос
Ответ:
character at index. If two are given, the range from "first" to "last" will be deleted. Use delete(0, END) to delete all text in the widget.
import tkinter as tk
def show_entry_fields():
print("First Name: %s\nLast Name: %s" % (e1.get(), e2.get()))
e1.delete(0, tk.END)
e2.delete(0, tk.END)
master = tk.Tk()
tk.Label(master, text="First Name").grid(row=0)
tk.Label(master, text="Last Name").grid(row=1)
e1 = tk.Entry(master)
e2 = tk.Entry(master)
e1.insert(10, "Miller")
e2.insert(10, "Jill")
e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
tk.Button(master,
text='Quit',
command=master.quit).grid(row=3,
column=0,
sticky=tk.W,
pady=4)
tk.Button(master, text='Show', command=show_entry_fields).grid(row=3,
column=1,
sticky=tk.W,
pady=4)
master.mainloop()
tk.mainloop()
The next example shows, how we can elegantly create lots of Entry field in a more Pythonic way. We use a Python list to hold the Entry descriptions, which we include as labels into the application.
import tkinter as tk
fields = 'Last Name', 'First Name', 'Job', 'Country'
def fetch(entries):
for entry in entries:
field = entry[0]
text = entry[1].get()
print('%s: "%s"' % (field, text))
def makeform(root, fields):
entries = []
for field in fields:
row = tk.Frame(root)
lab = tk.Label(row, width=15, text=field, anchor='w')
ent = tk.Entry(row)
row.pack(side=tk.TOP, fill=tk.X, padx=5, pady=5)
lab.pack(side=tk.LEFT)
ent.pack(side=tk.RIGHT, expand=tk.YES, fill=tk.X)
entries.append((field, ent))
return entries
if __name__ == '__main__':
root = tk.Tk()
ents = makeform(root, fields)
root.bind('<Return>', (lambda event, e=ents: fetch(e)))
b1 = tk.Button(root, text='Show',
command=(lambda e=ents: fetch(e)))
b1.pack(side=tk.LEFT, padx=5, pady=5)
b2 = tk.Button(root, text='Quit', command=root.quit)
b2.pack(side=tk.LEFT, padx=5, pady=5)
root.mainloop()
If you start this Python script, it will look like this:
Name and Job: Bernd Klein, Lecturer, Germany