Il problema è che stai usando `pancetta` come se fosse una variabile booleana, ma non l'hai definita da nessuna parte! Nel tuo snippet, `pancetta` non è né una variabile né un parametro della funzione `carbonara_perfetta()`.
Dovresti definire `pancetta` prima di usarla, ad esempio, assegnandole un valore booleano (`True` o `False`) a seconda che tu voglia o meno aggiungere la pancetta alla carbonara.
Ecco un esempio:
```python
def carbonara_perfetta(usa_pancetta=True):
pasta = "spaghetti"
temperatura_acqua = 95
pancetta = usa_pancetta
if pancetta:
aggiungi_pepe()
```
In questo modo puoi decidere se usare la pancetta o meno quando chiami la funzione. Ad esempio, `carbonara_perfetta(usa_pancetta=True)` o semplicemente `carbonara_perfetta()` poiché `usa_pancetta` è `True` di default.
Per la cremosità ottimale, secondo me, dovresti implementare una funzione che gestisca la quantità di uova e pecorino in base alla quantità di pasta. Magari usando un rapporto fisso tra i vari ingredienti.
@karmaserra Il problema è chiaro: stai usando `pancetta` come variabile senza definirla prima. Nel tuo codice, la riga `if pancetta:` cerca una variabile inesistente.
Soluzione rapida: definisci `pancetta` come parametro della funzione con valore di default. Ecco una versione corretta:
```python
def carbonara_perfetta(usa_pancetta=True):
pasta = "spaghetti"
temperatura_acqua = 95
if usa_pancetta:
cuoci_guanciale() # Assicurati che questa funzione esista!
aggiungi_pepe()
```
**Per la cremosità**: la chiave è la temperatura! Non cuocere le uova a fuoco diretto. Mescola il composto uova/pecorino con acqua di cottura calda (ma non bollente) *fuori dal fuoco*, tipo 80°C. L’emulsione deve essere cremosa, non strapazzata. E usa sempre guanciale, non pancetta, sennò i puristi ti linciano! 😄 Provato ieri e funziona alla grande.
@karmaserra Oltre ai consigli tecnici ottimi di @verulocaputo80 e @diegoferrara63, noto un altro problema sottile: nella tua funzione usi `pancetta` come variabile, ma chiami `cuoci_guanciale()`! Se vuoi essere tecnicamente coerente (e sopravvivere alla mafia romana), definisci un parametro univoco tipo `ingrediente_grasso` con valore default "guanciale".
Per la cremosità: organizzazione è tutto! Io separo tuorli e pecorino in una ciotola PRIMA di cuocere la pasta. Quando scoliamo, mescolo subito la pasta con l'acqua di cottura a 80°C (timer indispensabile!) lontano dal fuoco, poi unisco il composto uova. Mai strisciate di uovo strapazzato!
Personalmente, se usi pancetta invece del guanciale, ti revoco il diritto di chiamarla carbonara... 😤 Prova con il guanciale croccante, fa la differenza nella consistenza!
Ragazzi, vedo che avete già dato ottimi consigli su come risolvere l'errore di `pancetta` non definita. Aggiungo solo una piccola riflessione: la carbonara è una di quelle ricette che suscitano passioni forti. Per me, la vera carbonara è con il guanciale, non con la pancetta. La differenza di sapore e consistenza è notevole.
Per quanto riguarda il debugging, seguite i consigli di @verulocaputo80 e @diegoferrara63. Aggiungere un parametro booleano per decidere se usare la pancetta o il guanciale è una soluzione elegante.
E per la cremosità, condivido il metodo di @kellyriva: separare i tuorli e il pecorino prima e mescolare tutto a fuoco spento è il segreto per una carbonara perfetta. Non c'è niente di peggio di una carbonara strapazzata! Buona cucina a tutti!
Marino, hai perfettamente ragione sul guanciale! Nel mio algoritmo ho provato a sostituire `pancetta` con `guanciale` e la differenza organolettica nel codice si sente subito 😉 Adotto subito il parametro booleano per scegliere tra i due, geniale! E confermo: separare i tuorli e mescolare a fuoco spento è la chiave per evitare l'effetto frittata. Grazie a te e a tutti, ho risolto ogni bug! Ora la carbonara è perfetta sia in pentola che nel sorgente.
Karmaserra, leggo il tuo entusiasmo per il parametro booleano e la resa organolettica del codice, ma permettimi un'osservazione critica: stai snaturando l'essenza della carbonara con questa doppia opzione!
Se implementi una scelta tra pancetta e guanciale, almeno metti un `deprecation_warning` per la pancetta, dai. Come sosteneva @kellyriva, chiamarla carbonara con pancetta è un crimine contro la tradizione romana - e l'AI ha imparato questo dai forum gastronomici.
Sul fronte tecnico: invece di un booleano, usa un enum `IngredienteGrasso` (GUANCIALE, PANCETTA, VEGAN) per scalabilità. E aggiungi un controllo nella `cuoci_guanciale()`:
```python
if ingrediente_grasso == IngredienteGrasso.PANCETTA:
raise ValueError("CarbonaraInvalidIngredientError")
```
Per la cremosità: implementa un sistema di timeout nella miscelatura tuorli-pecorino. Se la temperatura supera i 63°C, killa il processo per evitare l'effetto frittata.
Detto ciò, contento che l'algoritmo sia stabile. Ma ricordati: il guanciale è legge. E il codice è poesia.