ответ:Можно управлять чем-то вручную, а можно запрограммировать и надеяться, что все сработает как надо. В быту широко используется программное управление для выполнения стандартных операций. Например выбор режим стирки в стиральной машине. При выборе того или иного режима активируется соответствующая программа и удобно.
Точно также производится готовка в мультиварке. Но когда требуется сделать что-то, чего не учитывает программа, делать приходится вручную.
При всей универсальности программа не может учесть всего. Всегда приходится что-то корректировать. Поэтому на практике приходится прибегать к обоим методам. Особенно, когда ручное управление затруднено. Так происходит, например при управлении марсоходом. Радиосигнал идет довольно долго и порулить" марсоходом с земли в реальном времени не получится. Приходится отправлять блок команд и принимать сигнал о их выполнении.
В общем, вручную безусловно лучше, но не всегда возможно.
from tkinter import *
import random
import time
def move(event):
if event.keysym == 'Up':
canvas.move(p, 0, -3)
elif event.keysym == 'Down':
canvas.move(p, 0, 3)
elif event.keysym == 'Left':
canvas.move(p, -3, 0)
elif event.keysym == 'Right':
canvas.move(p, 3, 0)
def mainloop():
while 1:
canvas.move(c, random.randint(-6, 6), random.randint(-6, 6))
tk.update_idletasks()
tk.update()
time.sleep(0.01)
colors=['black', 'white', 'red', 'yellow', 'blue', 'purple']
tk=Tk()
tk.geometry('400x400')
canvas=Canvas (tk, width=400, height=400)
canvas.pack(fill='both', expand=True)
p=canvas.create_rectangle(10, 10, 70, 150, fill=random.choice(colors), outline=random.choice(colors))
c=canvas.create_oval(190, 190, 210, 210, fill=random.choice(colors), outline=random.choice(colors))
canvas.bind_all('<KeyPress-Up>', move)
canvas.bind_all('<KeyPress-Down>', move)
canvas.bind_all('<KeyPress-Left>', move)
canvas.bind_all('<KeyPress-Right>', move)
mainloop()
Объяснение: