from time import sleep
def worker(n: int, cb=None):
for i in range(n):
sleep(0.2) # работу работаем
if cb is not None and i % 5 == 0:
cb(i, n) # оповещаем, если пора и если есть что
if cb is not None:
cb(n, n) # последнее оповещение на 100%. можно убрать
# использование
def callback(i, n): # callback для вывода прогресса в консоль
print(f'{i/n:.1%}') # выводим процент завершения
worker(50, callback) # работаем
from turtle import *
color("black", "red")
m = 100
def myfunc(): # мы говорим "существует функция myfunc, не принимающая параметров"
forward(12*m) # функция "увидит" переменную m, описанную выше по коду
right(940)
begin_fill()
for i in range(4):
myfunc() # вызываем нашу функцию
end_fill()
canvas = getcanvas()
cnt = 0
for y in range(-100*m, 100*m, m):
for x in range(-100*m, 100*m, m):
item = canvas.find_overlapping(x,y,x,y)
if len(item) == 1 and item[0] == 5:
cnt += 1
print(cnt)
done()
exit()
a
, которая, разумеется, пропадает, когда обработчик завершается.prefix = "!"
s = "!ping"
if s.startswith(prefix):
command = s[len(prefix):] # срезы в питоне? не, не слышал
print('Команда', command)
else:
print('Это не команда')
Мне нужно именно через путь обязательно
import data.config as config
безо всяких дополнительных манипуляций. Модификаторы типа вроде long или short не гарантируют увеличение или сокращение выделяемой памяти под переменную, а результат зависит от компилятора, - так пишется во многих учебниках. В то же время типы intx_t, описанные в библиотеке stdint.h, якобы гарантируют размер переменной.
while True: ... time.sleep()
там был метод, который надо периодически вызывать, и вызывать его используя метод after() в ткинтере. Тогда всё будет работать в одном потоке.