Forum >> Principianti >> Primo post: Presentazioni e problemi iniziali. Andare a capo

Pagina: 1 2 Avanti

Buonasera a tutti, ragazzi del forum. Questo è il mio primo posto!
Intanto mi presento, mi chiamo Giuseppe, sono un appassionato di informatica, e da qualche giorno ho iniziato a studiare il Python :py:, dal libro di test "Pensare da informatico"

Sono un principiante con la P maiuscola, non so programmare e Python è il mio primo linguaggio.

Premetto che sto utilizzando la versione 3.5.2, sull'Os Xubuntu

Tutta filava liscio, quando sono incappato nel capitolo che tratta la definizione di nuove funzioni.

Illustrerò dettagliatamente il problema, riportando l'esempio del libro.




def UnaRigaVuota():

print




Non riesco poi a realizzare il semplice programmino riportano nel libro successivamente, richiamando la funzione definita precedentemente.




print "Prima Riga."

UnaRigaVuota()

print "Seconda Riga."




per ottenere:




Prima Riga




Seconda Riga




quando tento di scrivere lo stesso, dopo il primo print, stampa Prima riga, senza darmi la possibilità di andare a capo. Come mai? come posso risolvere?




Spero mi possiate aiutare, attendo vostre risposte :)

Grazie popolo del forum :ok: :ok:

A presto e buona serata a tutti












Ciao caro, partiamo dalla giuda che stai leggendo. Se stai seguendo la versione italiana, questa è piuttosto datata ed anche se ha degli elementi validi ancora oggi, attenzione perché contiene aspetti piuttosto obsoleti.

Nel dettaglio la funzione print() è uno di quegli aspetti che tra Py2 e Py3 è cambiato.
>>> print "Seconda Riga."

[...]
SyntaxError: Missing parentheses in call to 'print'
Quindi come vedi da qui, la devi usare in maniera diversa in Python 3.

Se hai ancora dubbi scrivi pure.

Cya


mmmmm come ho scritto nel post, sono un principiante, ergo non ho capito come il link che mi hai inviato possa aiutarmi nella scrittura del programma!
riesco a fare partire il print tranquillamente, ma come vado a capo??
mmmmm come ho scritto nel post, sono un principiante, ergo non ho capito come il link che mi hai inviato possa aiutarmi nella scrittura del programma!
riesco a fare partire il print tranquillamente, ma come vado a capo??
Ri-ciao caro, hai letto con attenzione il link che ti ho dato, confessa? ;)

So già la risposta e ti evidenzio che in Python3 il print() è diventato una funzione, quindi ha una sintassi leggermente diversa da prima. Di default il comportamento è proprio un "a capo" o un "\n" se preferisci, ed esistono anche una serie di parametri che possono definire il comportamento della funzione, come end.

Ma torniamo all'oggetto del contendere. Se leggendo il link ti fossi chiesto cosa volesse dire la parola funzione e avessi visto come l'ho scritto nel mio messaggio, forse avresti provato a scriverlo nella forma print().

Ora ci siamo, il primo consiglio ha un po' più significato ora?

Cya
Allora, amico scoiattolo, ho letto più approfonditamente il testo, molto interessante! Sono riuscito a fare passi in avanti sull'utlizzo di print(), \n
Non sono ancora riuscito a stampare quel programmino però, e tra l'altro c'è un'altra cosa che non capisco





>>> print("ciao.\n"), print("come va.")

ciao.




come va.

(None, None)





ma cos'è questo none, none alla fine?
Mah, ti ripeto che non leggi con attenzione, poi vedi tu...
>>> print("ciao\ncome va")
ciao
come va
Cya
Ah dimenticavo scusa. :embarrassed:

Il None deriva da come hai scritto quei print(), di fatto print() essendo una funzione, se non hai dichiarato esplicitamente cosa restituire, restituirà un None, ma è un discorso generale, non solo di questo caso specifico.

Facciamo un esempio che rende meglio l'idea, sarebbe del tutto equivalente a scrivere:
>>> def stampa():
    print("Qualcosa")
>>> print(stampa())
Qualcosa
None
>>> stampa()
Qualcosa
Cosa invece che cambierebbe se nella funzione sostituissi print() con return:
>>> def stampa():
    return("Qualcosa")
>>> print(stampa())
Qualcosa
Cya
Daniele aka Palmux said @ 2017-06-17 14:53:19:
Ah dimenticavo scusa. :embarrassed:

Il None deriva da come hai scritto quei print(), di fatto print() essendo una funzione, se non hai dichiarato esplicitamente cosa restituire, restituirà un None, ma è un discorso generale, non solo di questo caso specifico.

Facciamo un esempio che rende meglio l'idea, sarebbe del tutto equivalente a scrivere:
>>> def stampa():
    print("Qualcosa")
>>> print(stampa())
Qualcosa
None
>>> stampa()
Qualcosa
Cosa invece che cambierebbe se nella funzione sostituissi print() con return:
>>> def stampa():
    return("Qualcosa")
>>> print(stampa())
Qualcosa
Cya

guarda, ho imparato tutto quello che c'era sul link, il comando per andare a capo e tutto, ma non riesco a scrivere un programma funzionante, che mi restituisca questo:
>>>Prima Riga



Seconda Riga

compaiono None o () a tutto spiano, le sto provando tutte

anche con il return
guarda, ho imparato tutto quello che c'era sul link, il comando per andare a capo e tutto, ma non riesco a scrivere un programma funzionante, che mi restituisca questo:
>>>Prima Riga



Seconda Riga

compaiono None o () a tutto spiano, le sto provando tutte

anche con il return

Ciao caro, non disperare è tutto facile, respira e procediamo insieme. Se vuoi mettere il print() dentro la funzione, devi richiamarla senza un'ulteriore funzione print(), mentre se metti semplicemente un return usa print() per una corretta formattazione di quanto appare a video.
>>> def stampa():
...    print("Prima riga\n\n\nSeconda riga")
...
>>> stampa()
Prima riga


Seconda riga
>>>
Ci siamo, è quello che vuoi. Ma andiamo avanti, se volessi creare un funzione senza print() al suo interno?
>>> def stampa():
...    return("Prima riga\n\n\nSeconda riga")
...
>>> print(stampa())
Prima riga


Seconda riga
>>>
Ci siamo di nuovo, niente fastidiosi None a rompere, stai vedendo solo quello che cerchi di ottenere. Se poi vuoi dividere in due funzioni le due righe fallo, il tuo limite è la fantasia.

Tutto chiaro?

Cya
Daniele aka Palmux said @ 2017-06-19 00:24:37:
guarda, ho imparato tutto quello che c'era sul link, il comando per andare a capo e tutto, ma non riesco a scrivere un programma funzionante, che mi restituisca questo:
>>>Prima Riga



Seconda Riga

compaiono None o () a tutto spiano, le sto provando tutte

anche con il return

Ciao caro, non disperare è tutto facile, respira e procediamo insieme. Se vuoi mettere il print() dentro la funzione, devi richiamarla senza un'ulteriore funzione print(), mentre se metti semplicemente un return usa print() per una corretta formattazione di quanto appare a video.
>>> def stampa():
...    print("Prima riga\n\n\nSeconda riga")
...
>>> stampa()
Prima riga


Seconda riga
>>>
Ci siamo, è quello che vuoi. Ma andiamo avanti, se volessi creare un funzione senza print() al suo interno?
>>> def stampa():
...    return("Prima riga\n\n\nSeconda riga")
...
>>> print(stampa())
Prima riga


Seconda riga
>>>
Ci siamo di nuovo, niente fastidiosi None a rompere, stai vedendo solo quello che cerchi di ottenere. Se poi vuoi dividere in due funzioni le due righe fallo, il tuo limite è la fantasia.

Tutto chiaro?

Cya

Ho capito!! fatto!! ma è totalmente differente dal libro! :O
ti ringrazio tantissimo dani! adesso provo a riscrivere gli esercizietti e vediamo che si può fare!

grazie mille ancora


Pagina: 1 2 Avanti



Esegui il login per scrivere una risposta.