i = 0
...
class Pendulum(object):
def __init__(self):
...
self.root.after(0, self.animation, i)
def animation(self, i):
i = i # полагаю, i всегда равно 0
i = 0
...
class Pendulum(object):
def __init__(self):
...
self.root.after(0, self.animation)
def animation(self):
global i
Имеется сервер мощный, но к нему ведется только один белый ipv4 адрес, идея поднять на нем виртаульные машины с белыми ipv6.Если вам надо запустить несколько серверов и организовать доступ к каждому, то проще, на мой взгляд, докупить IPv4-адресов (если хостер предоставляет такую услугу) и настроить для виртуальных серверов бриджинг (лучше) или NAT (костыльнее).
Вот, собственно, и вопрос, если на одной из таких машин будет стоять сайт, будут ли иметь к нему доступ клиенты у которых только ipv4 адрес?Думаю, нет. Чтобы IPv4-клиенты имели доступ к вашему IPv6-серверу, им (клиентам) будет необходимо воспользоваться неким IPv6-over-IPv4 решением, например, Teredo (в отличие от 6to4, Teredo инкапсулирует данные в UDP-датаграммы, тем самым упрощая взаимодействие с NAT, наличие которого у клиента вполне вероятно).
И как я смогу проверить коннект к такому виртуальному серверу, например, зайти по ssh, если у меня самого ipv4?Так же, как и потенциальный клиент. Поднять соответствующий интерфейс (teredo), установить SSH-соединение, указав IPv6-адрес сервера.
Выполняет пинг определённого адреса средствами execКоманда для разных ОС одинаковая? Насколько мне известно, единичные значения параметра -w в windows и linux различны (миллисекунда и секунда соответственно).
Например:
exec("ping 192.168.0.1 -n 1 -w 350", $output, $status);
Какие есть мысли - что можно предпринять?Если команда одна и та же для разных ОС, то значение таймаута для linux-варианта предлагаю скорректировать.
Функция возвращающая список анаграмм из заданного словаРекомендую присмотреться к модулю itertools, в частности, функции permutations. Примерный код:
import itertools
def anagrams(word):
for permutation in itertools.permutations(word):
yield ''.join(permutation)
for word in anagrams('car'):
print(word)
car
cra
acr
arc
rca
rac
>>> for word in anagrams('rar'):
print word
rar
rra
arr
arr
rra
rar
Функция сравнивающая два списка и возвращающая совпаденияЕсли я правильно понял, вы держите в памяти списки анаграмм и словарных слов и ищете (линейным поиском) их пересечение. Это, на мой взгляд, не вполне эффективно. Я бы поступил так:
words=['car','arc','cat','map','toster']
wordset=set(words)
for word in anagrams('car'):
if word in wordset:
print ("word %s matched vocabulary" % word)
Вводим словоВы можете с самого начала для каждого слова из словаря запомнить его 'отсортированный' вариант:
Из введённого слова делаем анаграммы
words=['car','arc','cat','map','toster']
sortedwordset=set(''.join(sorted(w)) for w in words)
>>> sortedwordset
set(['acr', 'eorstt', 'amp', 'act'])
Тогда для каждого введенного слова можно проверить, имеет ли смысл составлять анаграммы:if ''.join(sorted(word)) in sortedwordset:
#continue with anagrams
def sorted_string(s):
return ''.join(sorted(s))
words=['car','arc','cat','map','toster']
d={}
for word in words:
sorted_word=sorted_string(word)
if sorted_word in d:
d[sorted_word].append(word)
else:
d[sorted_word]=[word]
>>> d
{'acr': ['car', 'arc'], 'eorstt': ['toster'], 'amp': ['map'], 'act': ['cat']}
>>> d.get(sorted_string('car'),[])
['car', 'arc']
>>> d.get(sorted_string('cat'),[])
['cat']
>>> d.get(sorted_string('perkele'),[])
[]
for line in f:
read = f.readline()
split = read.split()
for line in f:
split = line.split()
Дело оказалось в том,что в одном трапе само устройство может передать несколько состояний mac-notification в объекте cmnHistMacChangedMsg.
This object contains the information of a MAC change notification event. It consists of several tuples packed together in the format of '...'.
several tuples
severalПолагаю, проблема в разборе (парсинге) сообщения.
Нужно выделить все подсписки, которые подходят под [1,2,*] без перебора списка.Если вы хотите выбрать все элементы первого уровня вложенности ("подсписки"), удовлетворяющие условию, без рассмотрения каждого из них (без перебора), то никак. В случае, если список a большой, вы можете рассматривать каждый элемент при добавлении его в список a и, в случае выполнения условия, добавлять его (или его индекс) в другой список/множество, хранящий/хранящее совпадения. Общая "сложность" будет такой же, но она, при соответствующей организации кода, будет "размазана" во времени, что иногда может быть предпочтительно. Но в таком случае паттерн должен быть известен заранее.
from selenium import webdriver
url='https://vk.com/kostya__wolf?z=photo107790602_343297825%2Falbum107790602_00%2Frev'
xpath='//a[@id="pv_open_original"]'
browser = webdriver.Firefox()
browser.get(url)
print browser.find_element_by_xpath(xpath).get_attribute('href')
browser.quit()
import requests
import json
import lxml.html
url='https://vk.com/kostya__wolf?z=photo107790602_343297825%2Falbum107790602_00'
r=requests.get(url)
doc=lxml.html.fromstring(r.text)
search_string=url[url.find('photo'):url.find('%2F')]
xpath='//a[contains(@href, "%s")]' % search_string
src=doc.xpath(xpath)[0].get('onclick')
d = json.loads(src[src.find('{'):src.find('}}')+len('}}')])
src=d['temp']['base']+d['temp']['z_'][0]+'.jpg'
print src
g.go('...')
имя переменной g не объявлено, добавьте перед этой строкой g=grab.Grab()u = urllib.urlopen(src)
имя переменной src не объявлено.import urllib
import grab
import json
g=grab.Grab()
url='https://vk.com/kostya__wolf?z=photo107790602_343297825%2Falbum107790602_00'
search_string=url[url.find('photo'):url.find('%2F')]
xpath='//a[contains(@href, "%s")]' % search_string
g.go(url)
src=g.doc.select(xpath).attr('onclick')
d = json.loads(src[src.find('{'):src.find('}}')+len('}}')])
src=d['temp']['base']+d['temp']['z_'][0]+'.jpg'
urllib.urlretrieve(src,'bibit.jpg')
Каким образом можно создать аналогичный ресурс?Если надо только показывать видео (без загрузки его на сервер, учета статистики, рекомендаций и прочего), то можно все сделать на коленке:
from selenium import webdriver
import time
browser = webdriver.Firefox()
url='http://vk.com/go_in_zp?z=photo-50824015_344878304%2Falbum-50824015_00%2Frev'
browser.get(url)
time.sleep(5) # this is bad
img=browser.find_element_by_xpath('//a[@id="pv_photo"]/img')
print img.get_attribute('src')
browser.quit()
http://cs624016.vk.me/v624016533/a226/owG51bJm59o.jpg
import requests
from lxml.html import fromstring
url='http://vk.com/go_in_zp?z=photo-50824015_344878304%2Falbum-50824015_00%2Frev'
search_string=url[url.find('photo-')+len('photo-'):url.find('%2F')]
r=requests.get(url)
doc=fromstring(r.text)
xpath='//a[contains(@onclick, "%s")]/img' % search_string
print doc.xpath(xpath)[0].attrib['src']