{"id":605,"date":"2024-02-28T23:26:24","date_gmt":"2024-02-28T22:26:24","guid":{"rendered":"https:\/\/aivanx.wordpress.com\/?p=605"},"modified":"2024-02-28T23:26:24","modified_gmt":"2024-02-28T22:26:24","slug":"le-basi-di-python","status":"publish","type":"post","link":"https:\/\/www.ivanoesposito.org\/it\/2024\/02\/28\/le-basi-di-python\/","title":{"rendered":"le basi di Python"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Cominciamo con alcuni concetti fondamentali:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"426\" src=\"https:\/\/i0.wp.com\/www.ivanoesposito.org\/it\/wp-content\/uploads\/2024\/02\/pexels-photo-256502.jpeg?resize=640%2C426&#038;ssl=1\" alt=\"\" class=\"wp-image-611\" srcset=\"https:\/\/i0.wp.com\/www.ivanoesposito.org\/it\/wp-content\/uploads\/2024\/02\/pexels-photo-256502.jpeg?w=1880&amp;ssl=1 1880w, https:\/\/i0.wp.com\/www.ivanoesposito.org\/it\/wp-content\/uploads\/2024\/02\/pexels-photo-256502.jpeg?resize=300%2C199&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.ivanoesposito.org\/it\/wp-content\/uploads\/2024\/02\/pexels-photo-256502.jpeg?resize=1024%2C681&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.ivanoesposito.org\/it\/wp-content\/uploads\/2024\/02\/pexels-photo-256502.jpeg?resize=768%2C511&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.ivanoesposito.org\/it\/wp-content\/uploads\/2024\/02\/pexels-photo-256502.jpeg?resize=1536%2C1021&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.ivanoesposito.org\/it\/wp-content\/uploads\/2024\/02\/pexels-photo-256502.jpeg?w=1280&amp;ssl=1 1280w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><figcaption class=\"wp-element-caption\">Photo by Pixabay on <a href=\"https:\/\/www.pexels.com\/photo\/close-up-of-text-on-black-background-256502\/\" rel=\"nofollow\">Pexels.com<\/a><\/figcaption><\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Variabili e Tipi di Dati<\/strong>: In Python, una variabile ti consente di memorizzare un valore assegnandogli un nome. Non devi dichiarare esplicitamente il tipo di dati; Python lo rileva automaticamente. Ad esempio:<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">   x = 10          # Questo \u00e8 un intero\n   y = 20.5        # Questo \u00e8 un numero decimale (float)\n   nome = \"Mario\"  # Questa \u00e8 una stringa di testo<\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li><strong>Operazioni Aritmetiche<\/strong>: Python supporta le operazioni aritmetiche di base come addizione, sottrazione, moltiplicazione e divisione.<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">   somma = x + y      # Addizione\n   differenza = x - y # Sottrazione\n   prodotto = x * y   # Moltiplicazione\n   quoziente = x \/ y  # Divisione<\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li><strong>Strutture di Controllo<\/strong>:<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Istruzioni condizionali<\/strong>: Ti permettono di eseguire differenti blocchi di codice a seconda che una condizione sia vera o falsa. <code>if x &gt; y: print(\"x \u00e8 maggiore di y\") elif x &lt; y: print(\"x \u00e8 minore di y\") else: print(\"x e y sono uguali\")<\/code><\/li>\n\n\n\n<li><strong>Cicli<\/strong>: Python supporta principalmente due tipi di cicli: <code>for<\/code> e <code>while<\/code>. <code># Ciclo for for i in range(5): # Ripete il blocco di codice 5 volte print(i) # Ciclo while count = 0 while count &lt; 5: print(count) count += 1 # Equivalente a count = count + 1<\/code><\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li><strong>Funzioni<\/strong>: Una funzione in Python \u00e8 un blocco di codice riutilizzabile che esegue una specifica azione. Ad esempio:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">   def saluta(nome):\n       print(\"Ciao \" + nome + \"!\")\n\n   saluta(\"Alice\")<\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"5\">\n<li><strong>Liste e Dizionari<\/strong>: Le liste consentono di memorizzare pi\u00f9 elementi in un&#8217;unica variabile, mentre i dizionari memorizzano coppie di chiavi e valori.<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">   # Lista\n   frutti = [\"mela\", \"banana\", \"ciliegia\"]\n   print(frutti[0])  # Stampa \"mela\"\n\n   # Dizionario\n   persona = {\"nome\": \"Giovanni\", \"et\u00e0\": 30}\n   print(persona[\"nome\"])  # Stampa \"Giovanni\"<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Manipolazione delle Stringhe<\/strong>: Come manipolare e lavorare con le stringhe di testo in Python.<\/li>\n\n\n\n<li><strong>Strutture Dati Avanzate<\/strong>: Approfondimenti su liste, tuple, dizionari e set.<\/li>\n\n\n\n<li><strong>Comprensione delle Liste<\/strong>: Una sintassi concisa per creare liste basate su esistenti.<\/li>\n\n\n\n<li><strong>File I\/O<\/strong>: Come leggere e scrivere file.<\/li>\n\n\n\n<li><strong>Gestione delle Eccezioni<\/strong>: Come gestire gli errori nel tuo codice.<\/li>\n\n\n\n<li><strong>Programmazione Orientata agli Oggetti (OOP)<\/strong>: Creare classi e oggetti in Python.<\/li>\n\n\n\n<li><strong>Moduli e Pacchetti<\/strong>: Utilizzare e creare moduli e pacchetti per strutturare il tuo codice.<\/li>\n\n\n\n<li><strong>Espressioni Regolari<\/strong>: Per la ricerca e la manipolazione di stringhe.<\/li>\n\n\n\n<li><strong>Scripting di Base e Automazione<\/strong>: Scrivere script per automatizzare compiti ripetitivi.<\/li>\n\n\n\n<li><strong>Data Science e Analisi dei Dati<\/strong>: Utilizzare Python per l&#8217;analisi dei dati e la visualizzazione.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Ecco una panoramica dettagliata di ciascun argomento con esempi di codice in Python:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Manipolazione delle Stringhe<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In Python, le stringhe sono sequenze di caratteri. Possono essere manipolate in vari modi:<\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">frase = \"Ciao, mondo!\"\nprint(frase.upper())  # Converti in MAIUSCOLO\nprint(frase.lower())  # Converti in minuscolo\nprint(frase.replace(\"m\", \"p\"))  # Sostituisci caratteri\nprint(frase.split(\",\"))  # Dividi la stringa in una lista<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">2. Strutture Dati Avanzate<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Python offre diverse strutture dati come liste, tuple, dizionari e set:<\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\"># Liste\nlista = [1, 2, 3, 4]\nlista.append(5)  # Aggiungi un elemento\nlista.remove(2)  # Rimuovi un elemento\n\n# Tuple (immutabili)\ntupla = (1, 2, 3)\n\n# Dizionari\ndizionario = {'nome': 'Alice', 'et\u00e0': 25}\ndizionario['et\u00e0'] = 26  # Modifica un valore\n\n# Set (collezioni uniche)\ninsieme = {1, 2, 3, 4, 4, 5}\nprint(insieme)  # Stampa {1, 2, 3, 4, 5}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">3. Comprensione delle Liste<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La comprensione delle liste permette di creare nuove liste da quelle esistenti in modo conciso:<\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">numeri = [1, 2, 3, 4, 5]\nquadrati = [n ** 2 for n in numeri]\nprint(quadrati)  # Stampa [1, 4, 9, 16, 25]<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">4. File I\/O<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Leggere e scrivere file \u00e8 una parte fondamentale della programmazione Python:<\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\"># Scrivere in un file\nwith open('testo.txt', 'w') as f:\n    f.write(\"Ciao, mondo!\")\n\n# Leggere da un file\nwith open('testo.txt', 'r') as f:\n    contenuto = f.read()\n    print(contenuto)<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">5. Gestione delle Eccezioni<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Gestire le eccezioni aiuta a controllare gli errori in modo elegante:<\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">try:\n    risultato = 10 \/ 0\nexcept ZeroDivisionError:\n    print(\"Diviso per zero!\")<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">6. Programmazione Orientata agli Oggetti (OOP)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La OOP in Python consente di creare classi e oggetti:<\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">class Persona:\n    def __init__(self, nome, et\u00e0):\n        self.nome = nome\n        self.et\u00e0 = et\u00e0\n\n    def saluta(self):\n        print(\"Ciao, mi chiamo \" + self.nome)\n\nalice = Persona(\"Alice\", 25)\nalice.saluta()<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">7. Moduli e Pacchetti<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">I moduli e i pacchetti aiutano a organizzare e riutilizzare il codice:<\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\"># Supponiamo di avere un file math_utils.py con una funzione add()\nfrom math_utils import add\nprint(add(5, 3))  # Utilizza la funzione dal modulo<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">8. Espressioni Regolari<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Le espressioni regolari permettono di cercare pattern all&#8217;interno delle stringhe:<\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">import re\ntesto = \"Il mio numero \u00e8 123-456-7890.\"\npattern = r\"\\d{3}-\\d{3}-\\d{4}\"\nrisultato = re.search(pattern, testo)\nprint(risultato.group())  # Stampa il numero trovato<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Le espressioni regolari, note anche come regex o regexp, sono una potente strumento per la ricerca e la manipolazione di stringhe di testo. Funzionano definendo un pattern (modello) che specifica una serie di condizioni che una stringa deve soddisfare per corrispondere al pattern stesso.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ecco alcuni concetti fondamentali sul funzionamento delle espressioni regolari:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Caratteri letterali<\/strong>: I caratteri normali come lettere e numeri corrispondono a se stessi. Ad esempio, la regex <code>casa<\/code> corrisponder\u00e0 alla stringa &#8220;casa&#8221;.<\/li>\n\n\n\n<li><strong>Metacaratteri<\/strong>: Sono caratteri speciali che hanno un significato particolare all&#8217;interno di una regex. Esempi comuni includono:<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>.<\/code> (punto): corrisponde a qualsiasi carattere singolo, eccetto il carattere di nuova linea.<\/li>\n\n\n\n<li><code>^<\/code> (circumflex): indica l&#8217;inizio di una stringa.<\/li>\n\n\n\n<li><code>$<\/code> (dollaro): indica la fine di una stringa.<\/li>\n\n\n\n<li><code>*<\/code> (asterisco): indica zero o pi\u00f9 occorrenze del carattere precedente.<\/li>\n\n\n\n<li><code>+<\/code> (pi\u00f9): indica una o pi\u00f9 occorrenze del carattere precedente.<\/li>\n\n\n\n<li><code>?<\/code> (interrogativo): indica zero o una occorrenza del carattere precedente.<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Classi di caratteri<\/strong>: Consentono di specificare un insieme di caratteri tra cui pu\u00f2 esserci una corrispondenza. Ad esempio, <code>[abc]<\/code> corrisponder\u00e0 a qualsiasi carattere &#8216;a&#8217;, &#8216;b&#8217;, o &#8216;c&#8217;. Si possono anche definire intervalli, come <code>[a-z]<\/code> per corrispondere a qualsiasi lettera minuscola.<\/li>\n\n\n\n<li><strong>Gruppi e intervalli<\/strong>: Le parentesi <code>( )<\/code> sono usate per definire gruppi, e possono essere utilizzate per applicare quantificatori a intere sequenze di caratteri. Ad esempio, <code>(ab)+<\/code> corrisponder\u00e0 a &#8220;ab&#8221;, &#8220;abab&#8221;, &#8220;ababab&#8221;, e cos\u00ec via.<\/li>\n\n\n\n<li><strong>Quantificatori<\/strong>: Specificano quante volte un elemento deve essere presente per una corrispondenza. <code>{n}<\/code> indica esattamente n volte, <code>{n,}<\/code> almeno n volte, e <code>{n,m}<\/code> da n a m volte.<\/li>\n\n\n\n<li><strong>Escape<\/strong>: Il backslash <code>\\<\/code> \u00e8 usato per &#8220;sfuggire&#8221; ai metacaratteri quando si vuole cercare il loro valore letterale. Ad esempio, <code>\\.<\/code> corrisponder\u00e0 al carattere punto effettivo.<\/li>\n\n\n\n<li><strong>Flag<\/strong>: Le espressioni regolari possono avere dei flag che ne modificano il comportamento, come <code>i<\/code> per ignorare la distinzione tra maiuscole e minuscole, <code>g<\/code> per effettuare una ricerca globale nell&#8217;intera stringa, e <code>m<\/code> per il multiline matching.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Ecco un semplice esempio: la regex <code>\\d{2,4}<\/code> cercher\u00e0 da 2 a 4 cifre consecutive in una stringa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le espressioni regolari possono diventare molto complesse e potenti, consentendo di effettuare operazioni sofisticate di ricerca e sostituzione su testo. Sono ampiamente utilizzate in linguaggi di programmazione, editor di testo, strumenti di elaborazione dati e sistemi di gestione di database.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">https:\/\/www.ionos.it\/digitalguide\/siti-web\/programmazione-del-sito-web\/regex-in-python<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">9. Scripting di Base e Automazione<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Python \u00e8 spesso usato per scrivere script che automatizzano compiti semplici:<\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">import os\n\n# Elenco di tutti i file e cartelle nella directory corrente\nfor nome in os.listdir('.'):\n    print(nome)<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">10. Data Science e Analisi dei Dati<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Python ha librerie potenti come Pandas e Matplotlib per l&#8217;analisi dei dati:<\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">import pandas as pd\nimport matplotlib.pyplot as plt\n\n# Crea un DataFrame\ndati = {'Nomi': ['Alice', 'Bob', 'Charlie'], 'Et\u00e0': [24, 27, 25]}\ndf = pd.DataFrame(dati)\n\n# St\n\nampa il DataFrame\nprint(df)\n\n# Traccia un grafico\ndf.plot(kind='bar', x='Nomi', y='Et\u00e0')\nplt.show()<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"369\" src=\"https:\/\/i0.wp.com\/www.ivanoesposito.org\/it\/wp-content\/uploads\/2024\/02\/image-8.png?resize=640%2C369&#038;ssl=1\" alt=\"\" class=\"wp-image-614\" srcset=\"https:\/\/i0.wp.com\/www.ivanoesposito.org\/it\/wp-content\/uploads\/2024\/02\/image-8.png?w=3404&amp;ssl=1 3404w, https:\/\/i0.wp.com\/www.ivanoesposito.org\/it\/wp-content\/uploads\/2024\/02\/image-8.png?resize=300%2C173&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.ivanoesposito.org\/it\/wp-content\/uploads\/2024\/02\/image-8.png?resize=1024%2C590&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.ivanoesposito.org\/it\/wp-content\/uploads\/2024\/02\/image-8.png?resize=768%2C442&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.ivanoesposito.org\/it\/wp-content\/uploads\/2024\/02\/image-8.png?resize=1536%2C884&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.ivanoesposito.org\/it\/wp-content\/uploads\/2024\/02\/image-8.png?resize=2048%2C1179&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.ivanoesposito.org\/it\/wp-content\/uploads\/2024\/02\/image-8.png?w=1280&amp;ssl=1 1280w, https:\/\/i0.wp.com\/www.ivanoesposito.org\/it\/wp-content\/uploads\/2024\/02\/image-8.png?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Cominciamo con alcuni concetti fondamentali: Ecco una panoramica dettagliata di ciascun argomento con esempi di codice in Python: 1. Manipolazione delle Stringhe In Python, le stringhe sono sequenze di caratteri. Possono essere manipolate in vari modi: 2. Strutture Dati Avanzate Python offre diverse strutture dati come liste, tuple, dizionari e set: 3. Comprensione delle Liste [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":614,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[86],"tags":[265],"class_list":["post-605","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-intelligenza-artificiale-news","tag-python"],"jetpack_publicize_connections":[],"_links":{"self":[{"href":"https:\/\/www.ivanoesposito.org\/it\/wp-json\/wp\/v2\/posts\/605","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ivanoesposito.org\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ivanoesposito.org\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ivanoesposito.org\/it\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ivanoesposito.org\/it\/wp-json\/wp\/v2\/comments?post=605"}],"version-history":[{"count":0,"href":"https:\/\/www.ivanoesposito.org\/it\/wp-json\/wp\/v2\/posts\/605\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ivanoesposito.org\/it\/wp-json\/wp\/v2\/media\/614"}],"wp:attachment":[{"href":"https:\/\/www.ivanoesposito.org\/it\/wp-json\/wp\/v2\/media?parent=605"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ivanoesposito.org\/it\/wp-json\/wp\/v2\/categories?post=605"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ivanoesposito.org\/it\/wp-json\/wp\/v2\/tags?post=605"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}