Форум сайта python.su
<div class="container"> <h1>Введите заголовок</h1> <div class="author">Автор материала</div> <div class="text">Текст материала</div> </div>
from array import array
solution_count = 0
def queen(current_row, num_row, solution_list):
if current_row == num_row:
global solution_count
solution_count = solution_count + 1
else:
current_row += 1
next_moves = gen_nextpos(current_row, solution_list, num_row + 1)
if next_moves:
for move in next_moves:
solution_list[current_row] = move
queen(current_row, num_row, solution_list)
solution_list[current_row] = 0
else:
return None
def gen_nextpos(a_row, solution_list, arr_size):
cand_moves = []
for column in range(1, arr_size):
under_attack = False
for row in range(1, a_row):
if (abs(a_row - row) == abs(column - solution_list[row])
or solution_list[row] == column):
under_attack = True
break
if not under_attack:
cand_moves.append(column)
return cand_moves
def main():
size=input('Ukazite razmeri stola:')
solution_list = array('i', [0]* (size + 1))
queen(0, size, solution_list)
print("Kol-vo vozmoznix raspolozenij: "+str(solution_count))
main()
foo/
__init__.py
mod1.py
mod1.py
common/
__init__.py
commonmod1.py
commontmod2.py
plugin1/
__init__.py
plugin1mod1.py
plugin2mod2.py
plugin2/
__init__.py
plugin2mod1.py
plugin2mod2.py
packages = ['foo']
#!/usr/bin/python import dbus NM_DBUS_SERVICE = "org.freedesktop.NetworkManager.Devices.wlan0" NM_DBUS_OBJECT_PATH = "/org/freedesktop/NetworkManager/Devices/wlan0" NM_DBUS_INTERFACE = NM_DBUS_SERVICE def get_wlan_networks(): bus = dbus.SystemBus() wlan = bus.get_object(NM_DBUS_SERVICE, NM_DBUS_OBJECT_PATH) wlan_dev_intf = dbus.Interface(wlan, dbus_interface=NM_DBUS_INTERFACE) props = wlan_dev_intf.getProperties() return props print get_wlan_networks()
class AVG5(BuiltinFilter): name = "AVG5" filterargs = (5, 5), 25, 0, ( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 )
class AVG31(BuiltinFilter): name = "AVG31" filterargs = (31, 31), 961, 0, ( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 )
import time import struct import socket import hashlib import sys from select import select import re import logging from threading import Thread import signal from base64 import b64encode class WebSocket(object): handshake = ( "HTTP/1.1 101 Switching Protocols\r\n" "Upgrade: websocket\r\n" "Connection: Upgrade\r\n" "Sec-WebSocket-Accept: %(accept)s\r\n" "Sec-WebSocket-Protocol: chat\r\n" "\r\n" ) def __init__(self, client, server): self.client = client self.server = server self.handshaken = False self.header = "" self.data = "" def feed(self, data): if not self.handshaken: self.header += data if self.header.find('\r\n\r\n') != -1: parts = self.header.split('\r\n\r\n', 1) self.header = parts[0] if self.dohandshake(self.header, parts[1]): logging.info("Handshake successful") self.handshaken = True else: self.data += data msgs = self.data.split('\xff') self.data = msgs.pop() for msg in msgs: if msg[0] == '\x00': self.onmessage(msg[1:]) def dohandshake(self, header, key=None): logging.debug("Begin handshake: %s" % header) for line in header.split('\r\n')[1:]: name, value = line.split(': ', 1) if name.lower() == "sec-websocket-key": key_accept = value+"258EAFA5-E914-47DA-95CA-C5AB0DC85B11" key_accept = hashlib.sha1(key_accept).digest() key_accept = b64encode(key_accept) handshake = WebSocket.handshake % { 'accept': key_accept } else: logging.warning("Not using challenge + response") handshake = WebSocket.handshake % { 'accept': key_accept } logging.debug("Sending handshake %s" % handshake) self.client.send(handshake) return True def onmessage(self, data): logging.info("Got message: %s" % data) def send(self, data): logging.info("Sent message: %s" % data) self.client.send("\x00%s\xff" % data) def close(self): self.client.close() class WebSocketServer(object): def __init__(self, bind, port, cls): self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) self.socket.bind((bind, port)) self.bind = bind self.port = port self.cls = cls self.connections = {} self.listeners = [self.socket] def listen(self, backlog=5): self.socket.listen(backlog) logging.info("Listening on %s" % self.port) self.running = True while self.running: rList, wList, xList = select(self.listeners, [], self.listeners, 1) for ready in rList: if ready == self.socket: logging.debug("New client connection") client, address = self.socket.accept() fileno = client.fileno() self.listeners.append(fileno) self.connections[fileno] = self.cls(client, self) else: logging.debug("Client ready for reading %s" % ready) client = self.connections[ready].client data = client.recv(1024) fileno = client.fileno() if data: self.connections[fileno].feed(data) else: logging.debug("Closing client %s" % ready) self.connections[fileno].close() del self.connections[fileno] self.listeners.remove(ready) for failed in xList: if failed == self.socket: logging.error("Socket broke") for fileno, conn in self.connections: conn.close() self.running = False if __name__ == "__main__": logging.basicConfig(level=logging.DEBUG, format="%(asctime)s - %(levelname)s - %(message)s") server = WebSocketServer("localhost", 9999, WebSocket) server_thread = Thread(target=server.listen, args=[5]) server_thread.start() # Add SIGINT handler for killing the threads def signal_handler(signal, frame): logging.info("Caught Ctrl+C, shutting down...") server.running = False sys.exit() signal.signal(signal.SIGINT, signal_handler) while True: time.sleep(100)