Ciao
no, l'ultima funzione sta rivalorizzando `par` ogni volta. Cambiala così e
riesegui
def prova(par=['pippo']):
if par == ['pippo']:
print("cambiata")
par = ['pluto']
print(par)
ciao
federico
On Mon, 12 Feb 2024 00:09:55 +0100 Daniele Zambelli wrote ---
>
Il giorno dom 11 feb 2024 alle ore 23:19 Gabriele Battaglia
ha scritto:
>
> Ciao a tutti.
>
> Perdonate l'ignoranza estrema, vorrei capire il perchè di questa cosa.
>
> Fino ad oggi, se dal prompt di Win11 digitavo pip, potevo gestire i
> pacchetti installati.
>
> Dopo aver installato ed usato per
Mi pare di avere capito, ma continua a risultarmi strano questo comportamento:
def prova(par='pippo'):
print(par)
prova('pluto') # pluto
prova() # pippo
def prova(par=['pippo']):
print(par)
prova(['pluto'])# ['pluto']
prova() # ['pippo']
def prova(par=['pippo'
Ciao a tutti.
Perdonate l'ignoranza estrema, vorrei capire il perchè di questa cosa.
Fino ad oggi, se dal prompt di Win11 digitavo pip, potevo gestire i
pacchetti installati.
Dopo aver installato ed usato per qualche giorno anaconda, l'ho
disinstallato ed ora dal prompt, pip non mi risponde
Ciao
Result é locale alla funzione ma il suo valore di default no: quel [] è una
lista definita a livello di funzione, quindi definita una volta e condivisa da
ogni invocazione.
Se vuoi evitare sorprese, usa none come valore di default, e nella funzione
metti
If result is none:
result = []
Stavo studiando degli algoritmi per produrre la lista delle
permutazioni di una sequenza, ho modificato una funzione che ho
trovato su stackoverflow e mi sono imbattuto in un comportamento molto
strano (per me).
Lo script è questo:
def permutazioni1(head, tail='', result=[]):
if len(head) == 0