for
, в теле цикла переводите строки в числа с помощью встроенного класса int
и добавляете в новый список, ну и присваиваете a
новый список. Всего четыре строчки.Ubuntu:sudo apt-get install build-essential python-dev libsdl2-dev \ libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev \ libjpeg-dev libpng12-dev virtualenvwrapper
Open a new shell to ensure virtualenvwrapper is running, then run:mkvirtualenv pygame_sdl2 pip install cython
Change into a clone of this project, and run the following command to modify the virtualenv so pygame_sdl2 header files can be installed in it:python fix_virtualenv.py
Finally, build and install pygame_sdl2 by running:python setup.py install
python
на python3
и pip
на pip3
. И попробуйте ещё раз.git clone https://github.com/renpy/pygame_sdl2
def recv():
last_id = 0
while True:
file = vk.messages.getHistory(user_id=93084902, rev=0, count=1)
for i in file['items']:
if i['id'] > last_id:
last_date = i['id']
print(i['text'])
variable = Thread(target=recv, args=())
variable.start()
i['date']
на i['id']
. Если сообщения пишут очень часто, так правильнее и надёжнее. Мне показалось, что id
сообщений имеют случайный характер, но edward_freedom ткнул меня носом в мою невнимательность)) vk_api
или в версиях его зависимостей (beautifulsoup4
, requests
, websocket-client
, six
), чьи разработчики могли отказаться от поддержки Python 3.4.requirements.txt
и установить пакет вручную python setup.py install
.re
стандартной библиотеки.def check_password_for_chars(password, chars):
for char in chars:
if char in password:
return True
return False
chars
свои наборы символов.chars
. Убираете return True
из тела цикла. Добавляете в функцию третий аргумент, скажем min_count
(минимальный счёт), и перед циклом добавляете локальную переменную, скажем count
(счёт), со значением 0
. Тогда в теле цикла, при каждом обнаружении искомого символа в пароле, Вы увеличиваете count
на 1
. И в конце проверяете, что count
больше или равно min_count
, чтобы вернуть True
или False
.False
от 0
и True
от 1
-- используйте оператор is
вместо !=
.==
и !=
проверяют равенство значений двух объектов. Но из-за особенностей реализации, у False
и 0
-- одно и тоже значение, а у True
и 1
-- одно и тоже другое значение.is
проверяет равенство id двух объектов. Булевы объекты True
и False
-- это синглтоны, т.е. существуют в программе не более, чем в 1 экземпляре. Поэтому, у всех True
-- один и тот же id, а у всех Fasle
-- один и тот же другой id. python3 path/manage.py convert_next_video
import re
def get_substrings(string):
"""Функция разбивки на слова"""
return re.split('\W+', string)
def get_distance(s1, s2):
"""Расстояние Дамерау-Левенштейна"""
d, len_s1, len_s2 = {}, len(s1), len(s2)
for i in range(-1, len_s1 + 1):
d[(i, -1)] = i + 1
for j in range(-1, len_s2 + 1):
d[(-1, j)] = j + 1
for i in range(len_s1):
for j in range(len_s2):
if s1[i] == s2[j]:
cost = 0
else:
cost = 1
d[(i, j)] = min(
d[(i - 1, j)] + 1,
d[(i, j - 1)] + 1,
d[(i - 1, j - 1)] + cost)
if i and j and s1[i] == s2[j - 1] and s1[i - 1] == s2[j]:
d[(i, j)] = min(d[(i, j)], d[i - 2, j - 2] + cost)
return(d[len_s1 - 1, len_s2 - 1])
def check_substring(search_request, original_text, max_distance):
"""Проверка нечёткого вхождения одного набора слов в другой"""
substring_list_1 = get_substrings(search_request)
substring_list_2 = get_substrings(original_text)
not_found_count = len(substring_list_1)
for substring_1 in substring_list_1:
for substring_2 in substring_list_2:
if get_distance(substring_1, substring_2) <= max_distance:
not_found_count -= 1
if not not_found_count:
return True
search_request = 'трубок использовали для прожигания'
original_text = 'трубок использовали для прожигания стальковша.Замена воронки 18м 8сл. Разлита полностью'
result = check_substring(search_request, original_text, max_distance=2)
print(result) # True если найдено, иначе None
result = ' '.join([
pattern.format(value) for value, pattern in zip(
(x.days, x.seconds//3600, (x.seconds//60)%60, x.seconds),
('{} д.', '{} час.', '{} мин.', '{} сек.'),
)
if value
])
pyvenv .venv
python3 -m venv .venv
python3 --help
-m mod : run library module as a script (terminates option list)
...
response = api.users.get(access_token = token, user_ids = id)
first_name = response[0]['first_name']
print(first_name)