Semplice modo per criptare e decriptare messaggi in rot13 con il linguaggio di programmazione python.
1 2 3 4 5 |
#!/usr/bin/env python2 import sys print("hello world").encode("rot13") print("uryyb jbeyq").decode("rot13") |
Semplice modo per criptare e decriptare messaggi in rot13 con il linguaggio di programmazione python.
1 2 3 4 5 |
#!/usr/bin/env python2 import sys print("hello world").encode("rot13") print("uryyb jbeyq").decode("rot13") |
Oggi vediamo come aprire un cdrom con il python.Questo codice apre e chiude di continuo il cd rom (Ottimo per uno scherzo :D).
Oppure è ottimo per cullare il proprio figlio come in questo video 😀
1 2 3 4 5 6 7 8 9 10 11 |
import os, time time.sleep(4) while 1: try: os.system("eject cdrom") time.sleep(4) os.system("eject -t cdrom") except: print "Errore" |
Tempo fa avevo fatto un banalissimo programmare per testare la velocità del nostro codice oggi vediamo una soluzione più professionale.
Una libreria ottima per iniziare ha capire i coni di bottiglia che possono far rallentare il nostro programma è la libreria profiler di python.
Un profiler è un programma che descrive le prestazioni in fase di esecuzione di un programma, fornendo una gran numero di statistiche.
Questo profiler realizza un profilo deterministico di qualsiasi programma Python.
Esso inoltre mette a disposizione tutta una serie di strumenti per la generazione di rapporti che permettono agli utenti di esaminare rapidamente i risultati di un’operazione di profilatura.
Ora passiamo al codice:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#Includo librerie import pstats import profile #La nostra funzione che testeremo def function_test(number): test = 1 while (test < number ): print(number) number = number -1 if __name__ == "__main__": p = profile.Profile() p.run('function_test(5000)') print("---------- Personalizziamo -----------") #Rivediamo il nostro profile s = pstats.Stats(p) #Mettiamo qualche personalizzazione di stampa #Qui ordiniamo per nome s.sort_stats('name') #Oppure come preferisco io ordinare sapere quale funzione effettua più cicli e consuma molto piu tempo s.sort_stats('time') #Stampo s.print_stats() |
Come sempre consiglio di guardare la documentazione ufficiale al seguente link per una maggior padronanza della libreria.
Vediamo un semplice uso di un client e server fatto in casa per gestire una semplice connessione.
SERVER
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
#!/usr/bin/python #Importo libreria per la gestione dei socket import socket #Dichiaro Socket s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #Faccio una bind sull'indirizzo(in questo caso 192.168.1.8) sulla porta 4444 s.bind(('192.168.1.8',4444)) #Mi metto in ascolto e ricevo al massimo 1 connessione s.listen(1) print("In Ascolto sulla porta 4444 \n") #Ciclo in attesa della connessione while True: #Appena accetta la connessione stampa connessione stabilita connection,address = s.accept() print("Connession stabilita \n ") #Leggo i primi 64 byte dai buffer buf = connection.recv(64) #Controllo la lunghezza del buffer if(len(buf) > 0): #Se è maggiore di 0 stampo print buf |
CLIENT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#!/usr/bin/python #Importo libreria per la gestione dei socket import socket #Dichiaro Socket s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #Mi collego al server s.connect(("192.168.1.8",4444)) #Invio la stringa Hello Server s.send("Hello Server") #Chiudo la connessione s.close() |
Un alternativa alle classiche progress bar di python
Basta semplicemente scaricare il pacchetto Progressbar
1 |
pip install ProgressBar |
1 2 3 4 5 6 7 |
from progressbar import ProgressBar import time bar = ProgressBar(maxval=20) #Intervallo for i in range(1, 21): bar.update(i) time.sleep(1) bar.finish() |
Oggi vediamo come usare una libreria che simula completamente la nostra vecchia e cara wget.
Prima di tutto dobbiamo aver installato il sistema pip per gestire i pacchetti di python.
Ora attraverso pip installiamo il pacchetti sh, wget con il seguente comando
1 2 |
pip install sh pip install wget |
Ecco un semplice script per uso di wget su python ma possiamo usare quasi tutti argomenti
del vecchio wget di linux.
1 2 3 |
from sh import wget wget.download("http://www.google.it") |
Oggi vediamo come trasformare il nostro testo in audio(Text to speech).
Prima di tutto dobbiamo scaricare e installare il seguente modulo pyttsx
1 2 3 4 5 6 7 8 9 10 |
#Importo libreria import pyttsx #Inizializzo engine = pyttsx.init() #Setto la velocità della voce engine.setProperty('rate', 100) #Passo alla metodo say la stringa da dire engine.say("Luke,I am your father") engine.runAndWait() |
Semplice uso di una funziona da aggiungere magari in una chat per censurare
delle parole vietate.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#Questo script e composto da una funziona che prende 3 parametri #1)Il testo #2)La parola da censuare #3)Il carattere con quale censurare def censura(testo,parola,char): testo = testo.split() for i in range(0, len(testo)): if testo[i] == parola: testo[i] = char * len(testo) else: continue return " ".join(testo) print censura("Ma che cavolo !!","cavolo","-") |
Un semplice uso del oggetto Calendar delle librerie grafiche Qt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
#!/usr/bin/env python #Includo Librerie import sys from datetime import timedelta from PyQt4 import QtGui, QtCore #Classe Calendar class Calendar(QtGui.QWidget): def __init__(self): # Creo la finestra Principale QtGui.QMainWindow.__init__(self) self.setWindowTitle('Calendario') # Setto le dimensioni della finestra self.resize(300,120) #Creo oggetto per il layout verticale self.vbox = QtGui.QVBoxLayout() self.setLayout(self.vbox) #Creo oggetto Calendar self.cal = QtGui.QCalendarWidget() #Aggiungo la griglia al calendario self.cal.setGridVisible(True) #Metto il calendario dentro il layout self.vbox.addWidget(self.cal) #Creo il label self.lbl = QtGui.QLabel() self.vbox.addWidget(self.lbl) #Ogni volta al evento selectionChange eseguo la funzione date_change self.connect(self.cal, QtCore.SIGNAL('selectionChanged()'), self.date_changed) #Metodo della classe Calendar che cambia la data def date_changed(self): #Seleziono la corrente data date = self.cal.selectedDate() #Prende la data Qdate pydate = date.toPyDate() date_value = self.cal.setDateTextFormat(pydate,"D/M/Y") #Cambio il test del label self.lbl.setText('Data corrente %s' % datevalue) if __name__ == "__main__": app = QtGui.QApplication(sys.argv) gui = Calendar() gui.show() app.exec_() |
Oggi vediamo come creare una finestra invisibile in pyqt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#Includo lib pyqt e sys from PyQt4.QtCore import * from PyQt4.QtGui import * import sys class Window(QWidget): def __init__(self, *args): QWidget.__init__(self, *args) #setto i layout e creo un label con scritto Testing self.setLayout(QVBoxLayout()) self.layout().addWidget(QLabel("<font color='red'>Testing</font")) #Con queste 3 metodi faccio diventare invisibile la nostra finestra self.setAttribute(Qt.WA_TranslucentBackground) self.setWindowFlags(Qt.Tool | Qt.FramelessWindowHint) self.setWindowFlags(self.windowFlags() | Qt.WindowStaysOnTopHint) if __name__ == "__main__": #Creiamo un QApplication. #Poi creiamo un istanza alla classe e la visualizziamo app = QApplication(sys.argv) finestra = Window() finestra.show() sys.exit(app.exec_()) |
Cookie | Durata | Descrizione |
---|---|---|
cookielawinfo-checkbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
cookielawinfo-checkbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
cookielawinfo-checkbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other. |
cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance". |
viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |
We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.