Ответы пользователя по тегу Python
  • Как отследить нажатие мыши?

    FTBK
    @FTBK
    Штудент
    Можно с помощью ткинтера:
    import tkinter as tki # можно и from tkinter import *
    
    root = tki.Tk() # создаём окно, при нажатии на которое будут выводиться данные о событии
    
    def printPressedButton(event):
        print(event) # выводим в консоль  событие (что и где нажато), здесь должна быть табуляция
    
    root.bind('<ButtonPress>', printPressedButton) # ButtonPress - реакция на нажатие 
    # можно , конечно, и Button, и ButtonRelease и др.
    root.mainloop() # Запускаем главный цикл...

    это один из вариантов
    Ответ написан
  • Как получить цвет пискеля с Canvas в tkinter?

    FTBK
    @FTBK
    Штудент
    Алексей, вполне вероятно, что есть менее "огородистый" способ, но я пока придумал следующее
    from tkinter import *
    root = Tk()
    screen = Canvas(root)
    screen.pack()
    i=[]
    a=0 #создаём окошко, холст, массив и т.д.
    for j in "red","green","blue",'black',"white","red","green","blue",'black',"white":  #создаём набор квадратиков 
        a+=10
        i.append(screen.create_rectangle((10+a, 10+a, 30+a, 30+a), fill=j, tags=('i')))
    
    def onmotion(event): # самое интересное 
        x = root.winfo_pointerx()-root.winfo_x() # получаем координаты курсора относительно окна
        y = root.winfo_pointery()-root.winfo_y() #
        print (screen.find_overlapping(x+0.5,y-0.5,x+0.5,y+0.5),x,y ) # выводим, какую фигуру(-ы) накрывает квадрат 1х1 пиксель
        print ( screen.itemcget(screen.find_overlapping(x+0.5,y-0.5,x+0.5,y+0.5)[-1], "fill" ) ) # выводим цвет самой верхней фигуры
    
    screen.bind("<Button-1>",onmotion) #привязываем к клику лкм функцию
    
    root.mainloop() # запускаемся
    Ответ написан
  • Как решить задачу на симметричную пару в массиве на python?

    FTBK
    @FTBK
    Штудент
    У Вас идёт использование лишней переменной i. Если проверяет компьютер, то ошибка в этом. А так почти всё верно.
    вариант решения

    a = []
    for k in range(1000):
        a.append(int(input())) #список на 1000 эл-тов (считаем мы от нуля)
    k = 0
    for j in range(500): #нам нужно идти до половины, поэтому 500 значений в самый раз 
    	if (a[999-j]+a[j]) > 20: #вычисляем сумму j-ого и [999-j]-ого элемента
    		k = k+1 #увеличиваем счётчик
    print(k)
    Ответ написан