Форум сайта python.su
from PIL import ImageGrab import numpy as np #import os import time from selenium import webdriver import win32api, win32con box=(0,799,1920,800) #устанавливает область для наблюдения по ширине экрана высотой 1 пиксель driver = webdriver.Chrome() def screen(): im=ImageGrab.grab(box) #im.save(os.getcwd() + '\\Catch_snap_' + str(int(time.time())) + '.png','PNG') def openWindow(): # открывает браузер и запускает игру driver.get("https://www.divan.ru/vladimir/category/stok-mebeli/page-6") driver.maximize_window() mousePos((1920//2,1080//2+50)) #запускает игру leftClick() #(расчитано на разрешение 1920x1080) def mousePos(cord): win32api.SetCursorPos(cord) def leftClick(): win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0) time.sleep(.1) win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0) #print "Click." #completely optional. But nice for debugging purposes. def main(): openWindow() #запуск игры while 1: im=ImageGrab.grab(box) #считывает область экрана высотой 1 пиксель arr = np.array(im); #преобразует в массив t= next((i for i, a in enumerate(arr[0][51::50]) if sum(a)<765), None) #ищет первый пиксель в массиве не белого цвета с шагом 50 пикселей (половина ширины подушки) #и получает номер шага на котором был найден пиксель if t: # если найден такой пиксель #screen() win32api.SetCursorPos((t*50,800)) #преобразует шаг в координату пикселя и перемещает туда курсор if __name__ == '__main__': main()
from tkinter import * import random # ширина экрана WIDTH = 800 # высота экрана HEIGHT = 600 # размер сегмента змейки SEG_SIZE = 20 # переменная отвечающая за состояние игры IN_GAME = True # Helper functions def create_block(): """ Создаём блок в случайном позиции на карте """ global BLOCK posx = SEG_SIZE * random.randint(1, (WIDTH-SEG_SIZE) / SEG_SIZE) posy = SEG_SIZE * random.randint(1, (HEIGHT-SEG_SIZE) / SEG_SIZE) # блок это кружочек красного цвета BLOCK = c.create_oval(posx, posy, posx+SEG_SIZE, posy+SEG_SIZE, fill="red") def main(): """ Обрабатывает игровой процесс """ global IN_GAME if IN_GAME: # двигаем змейку s.move() # определяем координаты головы head_coords = c.coords(s.segments[-1].instance) x1, y1, x2, y2 = head_coords # Столкновение с границами экрана if x2 > WIDTH or x1 < 0 or y1 < 0 or y2 > HEIGHT: IN_GAME = False # Поедание яблок elif head_coords == c.coords(BLOCK): s.add_segment() c.delete(BLOCK) create_block() # Самоедство else: # Проходим по всем сегмантам змеи for index in range(len(s.segments)-1): if head_coords == c.coords(s.segments[index].instance): IN_GAME = False root.after(100, main) # Если не в игре выводим сообщение о проигрыше else: c.create_text(WIDTH/2, HEIGHT/2, text="Игра окончена!", font="Arial 20", fill="red") class Segment(object): """ Single snake segment """ def __init__(self, x, y): self.instance = c.create_rectangle(x, y, x+SEG_SIZE, y+SEG_SIZE, fill="white") class Snake(object): """ Simple Snake class """ def __init__(self, segments): self.segments = segments # possible moves # список доступных направлений движения змейки self.mapping = {"Down": (0, 1), "Right": (1, 0), "Up": (0, -1), "Left": (-1, 0)} # изначально змейка двигается вправо self.vector = self.mapping["Right"] def move(self): """ Двигает змейку в заданном направлении""" # перебираем все сегменты кроме первого for index in range(len(self.segments)-1): segment = self.segments[index].instance x1, y1, x2, y2 = c.coords(self.segments[index+1].instance) # задаём каждому сегменту позицию сегмента стоящего после него c.coords(segment, x1, y1, x2, y2) # получаем координаты сегмента перед ГОЛОВОЙ x1, y1, x2, y2 = c.coords(self.segments[-2].instance) # помещаем ГОЛОВУ в направлении указанном в векторе движения c.coords(self.segments[-1].instance, x1+self.vector[0]*SEG_SIZE, y1+self.vector[1]*SEG_SIZE, x2+self.vector[0]*SEG_SIZE, y2+self.vector[1]*SEG_SIZE) def add_segment(self): """ Добавляет сегмент змейки """ # определяем последний сегмент last_seg = c.coords(self.segments[0].instance) # определяем координаты куда поставить следующий сегмент x = last_seg[2] - SEG_SIZE y = last_seg[3] - SEG_SIZE # добавляем змейке ещё один сегмент в заданном координатах self.segments.insert(0, Segment(x, y)) def change_direction(self, event): """ Изменяет направление движения змейки """ # event передаст нам символ нажатой клавиши # и если эта клавиша в доступных направлениях # изменяем направление if event.keysym in self.mapping: self.vector = self.mapping[event.keysym] # Создаём окно root = Tk() # Устанавливаем название окна root.title("Волков Дмитрий") # оздаём экземпляр класса Canvas заливаем зелёным цветом c = Canvas(root, width=WIDTH, height=HEIGHT, bg="#4f2642") c.grid() # Наводим фокус на Canvas, чтобы мы могли ловить нажатия клавиш # catch keypressing c.focus_set() # создаём набор сегментов segments = [Segment(SEG_SIZE, SEG_SIZE), Segment(SEG_SIZE*2, SEG_SIZE), Segment(SEG_SIZE*3, SEG_SIZE)] # сама змейка s = Snake(segments) # Reaction on keypress c.bind("<KeyPress>", s.change_direction) create_block() main() # Запускаем окно root.mainloop()
driver.find_element_by_css_selector('.fa-paperclip').send_keys('C:\\Users\\User\Downloads\IMG_20181005.jpg')
<span class="icon"> <a id="add-foto-not-hide"> <i class="far fa-paperclip fa-1h2x"> </i> </a> </span>
import turtle
turtle.shape('turtle')
turtle.tracer(0,0)
def duga_small():
for i in range(0,50,2):
turtle.fd(0.1)
turtle.left(7.2)
def duga_big():
turtle.setheading(90)
count=0
x=2
while count<3:
for i in range(0,100,2):
turtle.fd(x)
turtle.right(3.6)
duga_small()
count+=1
duga_big()
turtle.update()
import mechanicalsoup browser = mechanicalsoup.StatefulBrowser() browser.open("http://esl-chat.com/") с = browser.get_url() print("Заходим на " +с) browser.get_current_page() browser.select_form() browser.get_current_form().print_summary()
b = browser.select_form()
print(b)
while True: print("---------------------------------------------") n=4 a=[[1,2,3,4],[4,5,8,9],[8,9,1,2],[6,7,8,9]] print("\nСтартовая матрица:") for row in a: for elem in row: print(elem,end='') print() s=0 ip=0; ik=n-1 for i in range(n-1,-1,-1): if i==(n-1): s=sum(a[i]); M=max(a[i]) else: ip+=1; ik-=1 if ip<=ik: M=max(M,max(a[i][ip:ik+1:1])) if ip!=ik: s=s+a[i][ip]+a[i][ik] else: s=s+a[i][ip] else: break print("\nСумма элементов по границе матрицы",s) print("\nMAX значение:",M) print("\nИндексы максимального значения") ind=[] ip=0; ik=n-1 for i in range(n-1,1,-1): if ip<=ik: for j in range(ip,ik+1,1): if a[i][j]==M: ind.append([i+1,j+1]) ip+=1; ik-=1 else: break print(sorted(ind)) p=input() if p!='1': quit()
Traceback (most recent call last): File "C:\ProgramData\Anaconda3\lib\site-packages\tornado\web.py", line 1592, in _execute result = yield result File "C:\ProgramData\Anaconda3\lib\site-packages\tornado\gen.py", line 1133, in run value = future.result() File "C:\ProgramData\Anaconda3\lib\site-packages\tornado\gen.py", line 1141, in run yielded = self.gen.throw(*exc_info) File "C:\ProgramData\Anaconda3\lib\site-packages\notebook\services\sessions\handlers.py", line 73, in post type=mtype)) File "C:\ProgramData\Anaconda3\lib\site-packages\tornado\gen.py", line 1133, in run value = future.result() File "C:\ProgramData\Anaconda3\lib\site-packages\tornado\gen.py", line 1141, in run yielded = self.gen.throw(*exc_info) File "C:\ProgramData\Anaconda3\lib\site-packages\notebook\services\sessions\sessionmanager.py", line 79, in create_session kernel_id = yield self.start_kernel_for_session(session_id, path, name, type, kernel_name) File "C:\ProgramData\Anaconda3\lib\site-packages\tornado\gen.py", line 1133, in run value = future.result() File "C:\ProgramData\Anaconda3\lib\site-packages\tornado\gen.py", line 1141, in run yielded = self.gen.throw(*exc_info) File "C:\ProgramData\Anaconda3\lib\site-packages\notebook\services\sessions\sessionmanager.py", line 92, in start_kernel_for_session self.kernel_manager.start_kernel(path=kernel_path, kernel_name=kernel_name) File "C:\ProgramData\Anaconda3\lib\site-packages\tornado\gen.py", line 1133, in run value = future.result() File "C:\ProgramData\Anaconda3\lib\site-packages\tornado\gen.py", line 326, in wrapper yielded = next(result) File "C:\ProgramData\Anaconda3\lib\site-packages\notebook\services\kernels\kernelmanager.py", line 160, in start_kernel super(MappingKernelManager, self).start_kernel(**kwargs) File "C:\ProgramData\Anaconda3\lib\site-packages\jupyter_client\multikernelmanager.py", line 110, in start_kernel km.start_kernel(**kwargs) File "C:\ProgramData\Anaconda3\lib\site-packages\jupyter_client\manager.py", line 259, in start_kernel **kw) File "C:\ProgramData\Anaconda3\lib\site-packages\jupyter_client\manager.py", line 204, in _launch_kernel return launch_kernel(kernel_cmd, **kw) File "C:\ProgramData\Anaconda3\lib\site-packages\jupyter_client\launcher.py", line 128, in launch_kernel proc = Popen(cmd, **kwargs) File "C:\ProgramData\Anaconda3\lib\subprocess.py", line 756, in __init__ restore_signals, start_new_session) File "C:\ProgramData\Anaconda3\lib\subprocess.py", line 1155, in _execute_child startupinfo) OSError: [WinError 87] Параметр задан неверно
from tkinter import* from tkinter import Tk, StringVar, Label, Entry, Button, messagebox, Checkbutton, IntVar # импортируем только то что надо from tkinter.ttk import Combobox # импортируем только то что надо from tkinter import ttk from tkinter.filedialog import askopenfilename from tkinter import ttk from tkinter import filedialog import re import itertools from itertools import groupby loaded = False def find(word,f1): a =[] b = list((map(''.join, itertools.product(*zip(word.upper(), word.lower())))))# все комбинации for x in b: a.append(x) f = open(f1, "r") for i in f.readlines(): j = i.rstrip("\n") if j == x: a.append(j) # f.close() with open(f1, 'r') as f: mytext = f.read() b.clear() for word in a: find = r"{0}+[\w\.-]+" .format(word) find2 = r"[\w\.-]+{0}+[\w\.-]+" .format(word) # как + элемент списка в качестве переменной? find3 = r"[\w\.-]+{0}+" .format(word)# как + элемент списка в качестве переменной? a1 = re.findall(find, mytext) a2 = re.findall(find2, mytext) a3 = re.findall(find3, mytext) for i in a1: b.append(i) for i in a2: b.append(i) for i in a3: b.append(i) a.clear() for i in b: if i not in a: a.append(i) return a def search(): if not loaded: return if loaded == True: res = str(var1.get()) # выводит содержание Entry в данный момент a = find(res ,url) listbox1.delete(0, END) for i in a: listbox1.insert(END, i) def ImportFiles(): Tk().withdraw() global url global loaded url = askopenfilename(filetypes=(("all.files", "*"),), title="Choose a file.") # открыть каталог выбора файл if url: try: with open(url, 'r') as file: lst = file.readlines() for i in lst: listbox1.insert(END, i) loaded = True except: messagebox._show("Ошибка", "Невозможно открыть файла ") return window = Tk() var1 = StringVar() window.geometry('500x700'"+650+300") button1 = Button(window, text='Open', command=ImportFiles).grid(column=1, row=0,padx=0, pady=15) var1.trace("w", lambda name, index, mode, sv=var1: search()) Entry(window, width=70, textvariable=var1).grid(column=0, row=0,padx=10, pady=15) # размер поле адреса ввода listbox1 = Listbox(window, selectmode="SINGLE") listbox1 = Listbox(window, height=30, width=70, selectmode="SINGLE") listbox1.grid(padx=10, pady=20) scroll = Scrollbar(command=listbox1.yview) listbox1.config(yscrollcommand=scroll.set) scroll.grid(column=1, row=1,padx=0, pady=15) window.mainloop()
for x in range(width): for y in range(height): image_pixelaccess[x, y] = next(colors) # colors = iter(list(tuple, tuple, tuple...))