Forum
>>
Programmazione Python
>>
Scripting
>>
problema identazione e differente posizione rispetto al prompt
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da WALTER |
2023-04-07 18:08:52 - problema identazione e differente posizione rispetto al prompt
|
Cari amici, care amiche
sto scrivendo un piccolo codice con python ed è nato un piccolo problema. In sostanza tutto è partito dal seguente listato: >>> def fib(n): ... a,b=0,1 ... while a<n: ... print(a, end=', ') ... a,b=b,a+b ... print() ... >>> fib(1000) 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, #Output però scrivendo lo stesso codice senza il print finale si ottien un risulato differente, in particolare: >>> def fib1(n): ... a,b=0,1 ... while a<n: ... print(a, end=' ') ... a,b=b, a+b ... >>> fib1( 0 1 1 2 3 5 >>> #Output Quindi mi chiedo come mai nel secondo caso il risulato è una sorta di nuovo prompt (i 3 segni di maggiore sono dopo il risultato della funzione fib1(n)?). Qualcuno potrebbe gentilmente illuminarmi su questa interessante situazione? |
|
Scritto da nuzzopippo |
2023-04-08 07:20:35 - Re: problema identazione e differente posizione rispetto al prompt
|
Perché python è un bravo ragazzo e fa esattamente quello che Tu gli dici di fare
Basta leggere la docs della funzione built-in print(), di default inserisce un carattere '\n' alla fine della stampa di una stringa, il che equivale a dire che inserisce una nuova riga e ritorna a capo. Inserendo il parametro "end=', '" ovvero "end=' '" Tu alteri tale comportamento ed alla fine della stampa viene inserito una virgola + spazio o solo uno spazio, rispettivamente; inserendo fuori dal ciclo una print() vuoto non vengono stampati caratteri, che non ci sono, ma il default "end='\n'" viene rispettato ed il suo effetto è di inserire una nuova riga e tornare a capo (in sostanza inserire un cariage return + line feed nel mondo windows, un EOL nel mondo Unix-like) Fatti non foste a viver come bruti... |
Pagina: 1
Esegui il login per scrivere una risposta.