Esercizio semplice

di il
11 risposte

Esercizio semplice

Un saluto a tutti,
Sono nuovo su questo forum, anzi in verità mi sono iscritto per chiedervi la soluzione a questo esercizio che sto facendo. Sono alle primissime armi con python e l'esercizio mi serve per un esame di università (facoltà di scienze politiche), però se potete evitate funzioni o metodi avanzati rispetto al mio programma (siamo rimasti al while). L'esercizio è questo:
Avete una sequenza di caratteri in input, uno per linea.
La sequenza termina con il carattere 0 (zero).
Stampare la concatenazione dei caratteri in ordine. L'ultimo carattere (zero) dovrebbe essere escluso.
Io ho provato in questo modo:

frase=[]
x=input()

while x!=0:
x=input()
frase.append(x)
print(list(frase))

Sicuramente sbaglio perchè oltre che non escludere lo zero dalla lista il while continua all'infinito. Il fatto è che non so proprio come arrivare alla soluzione.

11 Risposte

  • Re: Esercizio semplice

    Il codice va messo tra tag 'CODE', altrimenti resta confuso e l'indentazione (indispensabile in Python) va a farsi benedire...
  • Re: Esercizio semplice

    Qualsiasi cosa dai in pasto ad input, esso ritornerà una stringa. Quindi quando effetti la verifica x!=0, stai confrontando una stringa con un intero, la condizione è sempre soddisfatta --> non uscirai mai dal ciclo while.
  • Re: Esercizio semplice

    Andrea Quaglia ha scritto:


    Il codice va messo tra tag 'CODE', altrimenti resta confuso e l'indentazione (indispensabile in Python) va a farsi benedire...
    Ok, potresti spiegarmi cos'è? Perchè io ho studiato tramite le slide che mi hanno dato e non viene menzionato da nessuna parte (le slide sono tipo 10/15 pag. massimo di spiegazione generale delle funzioni comprese di esercizi d'esempio). Quindi immagina quanto sto sbattendo la testa che fino a qualche settimana fa neanche sapevo dell'esistenza di questo python (con tutto il rispetto verso chi, come voi, lo usa per professione). Inoltre non capisco per quale motivo a scienze politiche devono farmi studiare programmazione.
  • Re: Esercizio semplice

    SuperQWE ha scritto:


    Qualsiasi cosa dai in pasto ad input, esso ritornerà una stringa. Quindi quando effetti la verifica x!=0, stai confrontando una stringa con un intero, la condizione è sempre soddisfatta --> non uscirai mai dal ciclo while.
    Ok, ma l'impostazione è giusta o sto sbagliando proprio strada? Perchè io ho pensato che se in uscita deve leggere tutta la frase allora sicuramente deve essere contenuto in una lista dove poi, inseriti i vari caratteri, tramite funzione print(list) in uscita dovrei vedere la frase completa. Tornando al problema, quindi se io inserisco qualsiasi numero o carattere il while non si ferma. Non c'è un modo più semplice per dirgli che quando inserisco il numero zero si ferma tutto stampando la frase? Inoltre rileggendo il problema c'è scritto "stampare la concatenazione dei caratteri in ordine,l'ultimo carattere (zero) dovrebbe essere escluso". Di preciso cosa intende per carattere? devo scrivere "zero" e non il numero?
  • Re: Esercizio semplice

    Il tag CODE è il pulsante < / > del forum
    Serve a metterci dentro il codice - come ti hanno detto, in Python è molto importante perché la tabulazione e la corretta indentazione è parte integrante del linguaggio

    Comunque imparare a programmare è una cosa utile a prescindere, visto che vivi nel 21° secolo
  • Re: Esercizio semplice

    Prophet ha scritto:


    SuperQWE ha scritto:


    Qualsiasi cosa dai in pasto ad input, esso ritornerà una stringa. Quindi quando effetti la verifica x!=0, stai confrontando una stringa con un intero, la condizione è sempre soddisfatta --> non uscirai mai dal ciclo while.
    Ok, ma l'impostazione è giusta ?
    prova while x:
  • Re: Esercizio semplice

    Weierstrass ha scritto:


    Il tag CODE è il pulsante < / > del forum
    Serve a metterci dentro il codice - come ti hanno detto, in Python è molto importante perché la tabulazione e la corretta indentazione è parte integrante del linguaggio

    Comunque imparare a programmare è una cosa utile a prescindere, visto che vivi nel 21° secolo
    Sono d'accordo, ma se il mio obiettivo è la politica dimmi cosa ci faccio con la programmazione. Non che io voglia calpestare il rispetto della vostra professione/passione ma ci sono cose utili in certi ambiti e altre no. La stessa cosa come quando a scuola si studiava il disegno tecnico (quello con la squadra, la riga e il compasso per intederci), cosa ci faccio con il disegno tecnico se io voglio fare il barbiere oppure giurisprudenza? Niente. Poi ovviamente può essere utile in un futuro ma non sarebbe comunque inerente alla professione scelta. Questa poi è la mia opinione, sono apertissimo ad altri pensieri.
  • Re: Esercizio semplice

    Comunque per favore non chiudete la domanda, io vorrei solo capire come svolgere questo tipo di esercizi. Non chiedo direttamente la soluzione, anzi se avete link utili dove spiegano al meglio il linguaggio python mi metto a studiare anche da li. Chiedo ulteriormente scusa ai moderatori del forum per non aver letto il regolamento e aver fatto direttamente la domanda, però cercate di capire non so a chi chiedere sto in casa da solo, i prof non rispondo mai e per ora ho trovato solo questo forum e l'altro dove mi hanno chiuso la domanda.
  • Re: Esercizio semplice

    Gli sbocchi ci sono anche per scienze politiche, basta vedere le strategie comunicative dei politici di oggi.

    Comunque se l'università te lo impone lo devi fare e basta - sai quante cose che non ti piacciono ci saranno...

    Ritornando al thread: se fai "while x:" prendi input fino a quando hai una stringa vuota (cioè premi invio senza caratteri); se fai "while x!="0" prendi input fino a quando non digiti 0 + invio

    Per quanto riguarda l'esercizio prova questo
    
    frase=""
    x=input()
    
    while x!="0":
        frase += x
        x=input()
    
    print(frase)
    
    In generale è meglio se sperimenti da solo, comunque Python è molto intuitivo come linguaggio
  • Re: Esercizio semplice

    Weierstrass ha scritto:


    Gli sbocchi ci sono anche per scienze politiche, basta vedere le strategie comunicative dei politici di oggi.

    Comunque se l'università te lo impone lo devi fare e basta - sai quante cose che non ti piacciono ci saranno...

    Ritornando al thread: se fai "while x:" prendi input fino a quando hai una stringa vuota (cioè premi invio senza caratteri); se fai "while x!="0" prendi input fino a quando non digiti 0 + invio

    Per quanto riguarda l'esercizio prova questo
    
    frase=""
    x=input()
    
    while x!="0":
        frase += x
        x=input()
    
    print(frase)
    
    In generale è meglio se sperimenti da solo, comunque Python è molto intuitivo come linguaggio
    Grazie mille, ho provato l'esercizio e funziona. Io ero convinto di dover usare una lista per andare ad inserire ogni carattere con l'append. Io per ora l'ho scritto cosi:
    frase=""
    x=input()
    
    while x!="0":
    		frase=frase+x
    		x=input("inserisci carattere:")
    		print(frase)
    In pratica l'ho copiato ma con l'aggiunta della dicitura del carattere per capire quando inserirlo. Se provo a mettere "print(frase)" indentato con il while mi dà "syntax error", indicandomi l'iniziale (la p) con una casella colorata di rosso. Quindi per non avere problemi ho inserito il print sotto a "x=input("ecc."). Teoricamente non dovrebbe darmi questo errore giusto? Grazie ancora comunque mi stai salvando la vita.
  • Re: Esercizio semplice

    No, non deve darti quel problema - se uno ha bisogno di fare una print alla fine come fa?
    Passa a un altro compilatore o segnala il problema al professore
Devi accedere o registrarti per scrivere nel forum
11 risposte