In [1]:
# Benvenuto nel tuo notebook!
In [2]:
# Esempi di funzioni in Python
def somma(a, b):
"""Questa funzione ritorna la somma di due numeri."""
return a + b
def moltiplica(a, b):
"""Questa funzione ritorna il prodotto di due numeri."""
return a * b
# Funzioni di test
assert somma(2, 3) == 5, "Test fallito per somma: 2 + 3 dovrebbe essere 5"
assert moltiplica(4, 5) == 20, "Test fallito per moltiplica: 4 * 5 dovrebbe essere 20"
# Output
print("Tutti i test sono passati con successo!")
Tutti i test sono passati con successo!
In [3]:
# Altri esempi di funzioni in Python
def sottrai(a, b):
"""Questa funzione ritorna la sottrazione di due numeri."""
return a - b
def dividi(a, b):
"""Questa funzione ritorna la divisione di due numeri. Ritorna 'None' se b è zero."""
if b == 0:
print("Errore: divisione per zero.")
return None
return a / b
# Funzioni di test
assert sottrai(10, 5) == 5, "Test fallito per sottrai: 10 - 5 dovrebbe essere 5"
assert dividi(20, 4) == 5, "Test fallito per dividi: 20 / 4 dovrebbe essere 5"
assert dividi(10, 0) is None, "Test fallito per dividi: 10 / 0 dovrebbe tornare None"
# Output
print("Tutti i test aggiuntivi sono passati con successo!")
Errore: divisione per zero. Tutti i test aggiuntivi sono passati con successo!
In [4]:
# Codice aggiuntivo: Funzione di elevamento a potenza
def eleva_potenza(base, esponente):
"""Questa funzione ritorna il risultato di base elevato a esponente."""
return base ** esponente
# Funzioni di test
assert eleva_potenza(2, 3) == 8, "Test fallito per eleva_potenza: 2^3 dovrebbe essere 8"
# Output
print("La funzione eleva_potenza ha passato tutti i test con successo!")
La funzione eleva_potenza ha passato tutti i test con successo!
In [5]:
# Un altro codice di esempio: Calcolo del fattoriale
def fattoriale(n):
"""Questa funzione ritorna il fattoriale di un numero non negativo."""
if n == 0:
return 1
else:
return n * fattoriale(n - 1)
# Funzioni di test
assert fattoriale(5) == 120, "Test fallito per fattoriale: 5! dovrebbe essere 120"
# Output
print("La funzione fattoriale ha passato tutti i test con successo!")
La funzione fattoriale ha passato tutti i test con successo!
In [6]:
# Esempio finale: Calcolo del massimo comune divisore (MCD)
def mcd(a, b):
"""Questa funzione ritorna il massimo comune divisore di a e b usando l'algoritmo di Euclide."""
while b:
a, b = b, a % b
return a
# Funzioni di test
assert mcd(48, 18) == 6, "Test fallito per mcd: MCD di 48 e 18 dovrebbe essere 6"
# Output
print("La funzione mcd ha passato tutti i test con successo!")
La funzione mcd ha passato tutti i test con successo!
In [7]:
# Sezione 1: Introduzione
"""markdown
## Introduzione alle funzioni in Python
In questa sezione, esploriamo la struttura delle funzioni in Python. Le funzioni ci permettono di:
- Riutilizzare il codice
- Strutturare il programma in moduli
- Migliorare la leggibilità
"""
# Sezione 2: Dettagli sulle Funzioni
"""markdown
## Dettagli sulle Funzioni in Python
Ogni funzione si compone di:
- Un nome
- Parametri (facoltativi)
- Un corpo che esegue le operazioni
- Un valore di ritorno (facoltativo)
"""
# Sezione 3: Conclusioni e Suggerimenti
"""markdown
## Conclusioni
Le funzioni sono fondamentali per la programmazione in Python. Continuare a esplorare e sperimentare nuove funzioni migliorerà la vostra competenza.
### Suggerimenti:
- Scrivete funzioni per eseguire operazioni ripetitive
- Tenete le funzioni semplici e focalizzate
- Usate i commenti per descrivere le funzionalità
"""
Out[7]:
'markdown\n## Conclusioni\n\nLe funzioni sono fondamentali per la programmazione in Python. Continuare a esplorare e sperimentare nuove funzioni migliorerà la vostra competenza.\n\n### Suggerimenti:\n- Scrivete funzioni per eseguire operazioni ripetitive\n- Tenete le funzioni semplici e focalizzate\n- Usate i commenti per descrivere le funzionalità\n\n'
Sezione 4: Approfondimenti con LaTeX¶
"""markdown
Formule Matematiche con LaTeX¶
Esempio di Formule Matematiche¶
Possiamo utilizzare LaTeX per rappresentare formule complesse in Markdown.
Equazione di base: $$ a^2 + b^2 = c^2 $$
Serie geometrica: $$ S_n = a \frac{1 - r^n}{1 - r} $$
Integrale definito: $$ \int_a^b x^2 \,dx = \left[ \frac{x^3}{3} \right]_a^b $$
"""
In [3]:
import os
import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin, urlparse
def cerca_e_scarica_immagini(query, numero_immagini=5, cartella_destinazione='immagini1'):
# Creazione della cartella di destinazione se non esiste
if not os.path.exists(cartella_destinazione):
os.makedirs(cartella_destinazione)
# Formattazione della query per l'URL di ricerca
query = query.replace(' ', '+')
url_ricerca = f'https://www.google.com/search?q={query}&tbm=isch'
# Impostazione dell'header per la richiesta HTTP
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
# Richiesta HTTP alla pagina di ricerca
response = requests.get(url_ricerca, headers=headers)
html = response.text
# Parsing del contenuto HTML con BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
immagini = soup.find_all('img')
contatore = 0
for img in immagini:
if contatore >= numero_immagini:
break
try:
# Estrazione dell'URL dell'immagine
img_url = img['src']
# Gestione degli URL relativi
img_url = urljoin(url_ricerca, img_url)
# Estrazione del nome del file dall'URL
img_nome = os.path.basename(urlparse(img_url).path)
# Richiesta HTTP per scaricare l'immagine
img_response = requests.get(img_url, headers=headers)
# Salvataggio dell'immagine nella cartella di destinazione
with open(os.path.join(cartella_destinazione, img_nome), 'wb') as f:
f.write(img_response.content)
contatore += 1
print(f'Immagine {contatore} scaricata: {img_nome}')
except Exception as e:
print(f'Errore durante il download dell\'immagine: {e}')
# Esempio di utilizzo
cerca_e_scarica_immagini('gatti carini', numero_immagini=5)
Immagine 1 scaricata: googlelogo_desk_heirloom_color_150x55dp.gif Immagine 2 scaricata: images Immagine 3 scaricata: images Immagine 4 scaricata: images Immagine 5 scaricata: images