6.2 KiB
6.2 KiB
- 06:11 quick capture: Ollama releases Python and JavaScript Libraries #ollama #llm
- 09:57 quick capture: Python & JavaScript Libraries · Ollama Blog #ollama #llm
- 12:59 quick capture: How to Build an LLM Rag Pipeline with Llama-2, PgVector, and LlamaIndex - DEV Community #llm #RAG
- 13:04 quick capture: Practical Guide to Crafting your first LLM-powered App Using RAG Framework #RAG #llm
- 21:13 quick capture: GitHub - jerpint/buster #llm #RAG
- 21:23 quick capture: Khoj: An Open-Source AI Copilot for your Second Brain #knownledgebase #llm
- Chiedi "stringa"
- Chiedi "chiave"
- Per ogni $carattere della stringa
- $nuovo_carattere = Posizione del $carattere + $chiave
- Sostituisci "carattere" con "nuovo carattere"
- Stampa la nuova "stringa"
- Riunione con Oliva e Gao
- Francesco Auletta
- Spese fisse
- Eventuale costituzione di una società
- AI interessante per comune e regione
- Società sportive (Rovis)
- Ingegnere gestionale Caterina Vidulli
- Francesco Auletta
- Cifrario di Cesare #Introduzione alla programmazione
-
def cesar_cipher(text, key): result = "" for i in range(len(text)): char = text[i] if char.isupper(): result += chr((ord(char) - 65 + key) % 26 + 65) else: result += chr((ord(char) - 97 + key) % 26 + 97) return result text = input("Inserisci il testo da cifrare: ") key = int(input("Inserisci la chiave: ")) print("Testo cifrato: ", cesar_cipher(text, key))
ord(char) - 65
converte il carattere maiuscolo in un numero tra 0 e 25, corrispondente alla sua posizione nell'alfabeto (A=0, B=1, ..., Z=25). Questo perchéord('A')
restituisce il valore ASCII di 'A', che è 65.+ key
sposta questo numero di un numero di posizioni pari alla chiave. Per esempio, se la chiave è 2, 'A' (0) diventa 'C' (2), 'B' (1) diventa 'D' (3), eccetera.% 26
si assicura che il risultato rimanga all'interno dell'alfabeto. Se il risultato della somma è maggiore di 25, "torna all'inizio" dell'alfabeto. Per esempio, 'Y' (24) con chiave 2 diventa 'A' (0), perché 24 + 2 = 26, ma 26 % 26 = 0.+ 65
converte il numero risultante di nuovo in un valore ASCII, in modo che possa essere convertito in un carattere conchr
.chr(...)
converte il valore ASCII risultante nel corrispondente carattere.result += ...
aggiunge il carattere cifrato al risultato finale.-
import sys def cesar_cipher(text, key): result = "" for i in range(len(text)): char = text[i] if char.isupper(): result += chr((ord(char) - 65 + key) % 26 + 65) elif char.islower(): result += chr((ord(char) - 97 + key) % 26 + 97) else: result += char return result key = int(sys.argv[1]) text = sys.stdin.read().rstrip() print("Testo cifrato: ", cesar_cipher(text, key))
-
for char in ['A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e']: print(f"'{char}' -> {ord(char)}")
- Il codice ASCII, o American Standard Code for Information Interchange, è un metodo standardizzato per codificare i caratteri in numeri che i computer possono gestire. Questo sistema di codifica fu sviluppato negli anni '60 e assegna un numero univoco a ciascun carattere utilizzato nei computer, inclusi i caratteri alfabetici, numerici, di punteggiatura e di controllo.
- Nel codice ASCII standard, i numeri da 0 a 31 sono riservati per i caratteri di controllo (come il ritorno a capo e il tabulatore), i numeri da 32 a 47 sono riservati per i caratteri di punteggiatura, i numeri da 48 a 57 sono riservati per i numeri da 0 a 9, e così via.
- Per quanto riguarda le lettere dell'alfabeto, nel codice ASCII i numeri da 65 a 90 sono riservati per le lettere maiuscole, mentre i numeri da 97 a 122 sono riservati per le lettere minuscole. Quindi, 'A' è associata al numero 65, 'B' al numero 66, e così via, fino a 'Z' associata al numero 90. Analogamente, 'a' è associata al numero 97, 'b' al numero 98, e così via, fino a 'z' associata al numero 122.
- Queste assegnazioni non sono casuali, ma seguono un ordine preciso che rende il codice ASCII facile da utilizzare e da ricordare.
- ASCII e Unicode sono entrambi standard di codifica dei caratteri, ma ci sono alcune differenze chiave tra i due.
- ASCII (American Standard Code for Information Interchange) è un sistema di codifica a 7 bit che può rappresentare 128 caratteri diversi. Questi caratteri includono le lettere maiuscole e minuscole dell'alfabeto inglese, i numeri da 0 a 9, i caratteri di punteggiatura e una serie di caratteri di controllo. ASCII è stato sviluppato negli Stati Uniti negli anni '60 e da allora è stato esteso in varie forme per includere caratteri aggiuntivi, come le lettere accentate utilizzate in molte lingue europee.
- Unicode, d'altro canto, è un sistema di codifica molto più recente e molto più ampio. Unicode utilizza fino a 32 bit per carattere, il che significa che può rappresentare oltre un milione di caratteri diversi. Questo è sufficiente per coprire praticamente tutti i sistemi di scrittura attualmente in uso nel mondo, oltre a una vasta gamma di simboli speciali. Unicode include anche una versione estesa di ASCII come suo sottoinsieme, quindi tutti i caratteri ASCII sono rappresentati nello stesso modo in Unicode.
- La principale differenza tra i due, quindi, è che mentre ASCII può rappresentare solo un set molto limitato di caratteri (principalmente quelli utilizzati nell'inglese scritto), Unicode può rappresentare quasi tutti i caratteri di tutte le lingue del mondo. Questo rende Unicode molto più versatile e lo ha reso lo standard di codifica dei caratteri più comunemente utilizzato nel web e in molte altre applicazioni.
-