Profilo di RicPol

Nome RicPol
Indirizzo email ric.pol@libero.it
AvatarAvatar utenti
Messaggi524
Firma forum
  • Re: primi passi con python
    Forum >> Principianti
    Non è questione di "essere presuntuosi"... quando si studia capita a tutti di soffermarsi su aspetti particolari, magari un po' bizzarri, magari secondari, e chiedersi... perché è così?... perché così e non cosà?... eccetera.


    E c'è sempre una risposta (ovviamente!)... ma di solito non è che la risposta serva a molto, finché uno non ne sa un po' di più. Devi aver semplicemente pazienza, aspettare di avere un'idea più complessiva del linguaggio, aver letto un bel po' di codice in giro, aver fatto l'abitudine a come si fanno certe cose... allora anche queste risposte avranno più senso e rientreranno in un contesto più comprensibile per te.


    Per esempio, prendi il tuo primo dubbio: che differenza c'è tra
    >>> s = "%s %s" % ("ciao", "mondo")
    >>> s
    'ciao mondo'
    >>> s = "ciao " + "mondo"
    >>> s
    'ciao mondo'
    
    Nessuna ovviamente. Ma le interpolazioni di stringa ti consentono di fare cose più raffinate, come tener conto dei tipi... te ne accorgi se provi a fare
    >>> s = "Mi chiamo %s e ho %i anni" % ("Marco", 18)
    >>> s
    'Mi chiamo Marco e ho 18 anni"
    >>> s = "Mi chiamo " + "Marco" + " e ho " + 18 + " anni"
    TypeError: can only concatenate str (not "int") to str
    
    OPS!


    Ora, questa è la risposta alla tua domanda. Ti "serve", adesso, questa risposta? Francamente no. Studia le concatenazioni di stringa (con il "più"), studia le interpolazioni di stringa (con il "percento") e vedrai che poco per volta, man mano che ti abitui a usare queste cose, e man mano che le vedi usate nel codice altrui che leggi, capirai e riuscirai ad apprezzare la differenza.





    E per la tua seconda domanda... ci sono differenze sottili tra "input" e "sys.stdin.readline"... anche qui, discorsi noiosi. Usa "input" e vedrai che quando verrà il momento in cui dovrai usare l'altro, lo saprai.













  • Re: python o java
    Forum >> Principianti
    Sai, sono proprio tre cose differenti:


    - l'esigenza/interesse di studiare python
    - l'esigenza/interesse di studiare java
    - l'esigenza/interesse di fare un programma per qualcuno.


    Se vuoi studiare un linguaggio, python è una buonissima idea (ma tieni conto che qui siamo su un forum python... che ti aspettavi che dicessi? se vai su un forum java, forse ti rispondono che conviene studiare java). Abbandona completamente il tuo problema, lascialo proprio stare del tutto per almeno sei mesi e mettiti d'impegno a studiare python dalle basi, seguendo un buon libro passo-passo. Il Lutz è sempre una buona scelta per questo. Se ti metti a studiare un linguaggio sperando di "farti il tuo programma", perdi solo tempo. Non si studia in questo modo.


    Se invece vuoi fare un programma, beh... dipende da che cosa dovrebbe fare questo programma, potrebbero esserci diverse soluzioni "a bassa intensità"... sapessi le cose che non si possono fare con MS Access... eh eh... Ma poi dici che il tuo programma in realtà esiste già, in Php/wamp. Ottimo... se funziona, lascialo esattamente così com'è. Non si cambia una cosa che non è rotta.




  • Re: Problema con associazione files .py
    Forum >> Principianti
    In generale non c'è nessun problema ad avere due o più versioni di python installate contemporaneamente. In questo momento, io ne ho esattamente sei (ho dovuto contarle, non me ne ricordavo neanche). E non importa la versione di windows, funziona perfettamente in ogni possibile situazione.


    Se esegui uno script con "> python mioscript.py", allora il sistema operativo selezionerà il primo "python" che trova nella path di sistema (ovvero, probabilmente, quello che hai installato per ultimo, ma dipende da un po' di fattori). Se usi il launcher "py", allora puoi determinare esattamente con quale python vuoi lanciare lo script. Per esempio "> py -3.7 mioscript.py", oppure "> py -3.8 mioscript.py" eccetera.




  • Re: apertura programmi python da cmd windows
    Forum >> Principianti
    python è un linguaggio procedurale. Interpreta il codice istruzione per istruzione, e (se è il caso), emette il risultato di ciascuna espressione che interpreta, in successione. Quindi se il tuo script contiene una serie di istruzioni che emettono input, vedrai quell'input. Ma una funzione (e il codice che contiene) non è di per sé una istruzione che emette input. Per vedere l'input della funzione, devi chiamarla. Quindi il tuo script dovrà avere (almeno) una istruzione "non annidata" che chiama la funzione. La funzione da sola non basta, insomma.


    Detto questo, la cosa migliore è sempre imparare seguendo passo-passo un buon libro, pagina dopo pagina, senza avventurarsi in esperimenti personali. Il Lutz è sempre la scelta migliore.


    Per lo specifico di come si usa python in windows, consiglio (ehm... ) il mio libro (link in firma) e un po' di articoli del mio blog.

  • Re: Traduzione Documentazione ?
    Forum >> Annunci
    bene... direi che sono passati due mesi e non è uscito fuori assolutamente nulla... come peraltro avevo ampiamente previsto. La comunità python italiana... sono io, mi sa. :-)


    Adesso non so che cosa ho voglia di fare... così su due piedi, direi che chiudo il progetto e continuo a mantenere separatamente il tutorial...




  • Re: Problema con la ricerca in database da variabile
    Forum >> Programmazione Python >> Database
    Puoi indicarmi quale parte della documentazione di sqlite non ti è chiara? https://docs.python.org/3/library/sqlite3.html
  • Re: Playsound
    Forum >> Principianti
    link in firma
  • Re: Problema con Visual Studio Code
    Forum >> Programmazione Python >> IDE ed Editor
    Quello che dicevo è che non ti consiglio di debuggare con il debugger, in nessun caso. Al livello di chi sta imparando, il debugger non serve, complica solo la vita.


    Comunque, se proprio ti piace il debugger, allora ti consiglio di cominciare con lo strumento-base che tutti gli hacker python hanno sempre usato: pdb, il python debugger. Si usa dalla riga di comando (dal terminale, quindi) ed è spartano e perfetto, senza tanti fronzoli. Fa parte della libreria standard di python: https://docs.python.org/3/library/pdb.html Ci sono molte guide in giro, per esempio vedi questa: https://realpython.com/python-debugging-pdb/



  • Re: Problema con Visual Studio Code
    Forum >> Programmazione Python >> IDE ed Editor
    mah... non è che ci siano molti trucchi per il debugger interno di VSC... puoi leggere questo https://code.visualstudio.com/docs/editor/debugging in generale, e poi questo https://code.visualstudio.com/docs/python/debugging per la parte specifica su python.


    detto ciò, sconsiglio radicalmente e ripetutamente e con la massima forza a chi sta iniziando a programmare di usare VSC, pycharm o qualsiasi altro ambiente di programmazione evoluto. Questi oggetti sono molto utili e potenti se sai quello che stai facendo (e no, non lo sai: se stai imparando, non lo sai, per definizione). Il problema è che interpongono strati di complessità tra l'utente e il linguaggio, per cui a un certo punto non sai più se una certa feature appartiene al linguaggio, o all'editor.


    Python si usa dalla shell del sistema operativo; per chi sta imparando, può essere utile usare la shell di Idle. Fine.


    Per quanto riguarda in particolar modo il debug, sconsiglio a chi sta iniziando a programmare di usare un debugger. Il debugger è uno strumento raffinato ed è fondamentale conoscerlo per rintracciare errori sofisticati, in scenari dove magari ci sono diversi livelli di librerie esterne coinvolte che non puoi conoscere bene. Ma per chi sta imparando, è addirittura controproducente. E' molto più importante imparare a leggere gli stacktrace, e aiutarsi con quelli.

  • Re: Playsound
    Forum >> Principianti
    > Ho creato un ambiente virtuale come spiegato da pymike

    eh, qui intravedo la radice del problema.


    > come mai?

    Può dipendere da molte cose. Prima di tutto, per eseguire lo script dovresti comunque essere "dentro" il venv (ovvero, dovresti eseguire lo script da una shell in cui hai prima attivato il venv)... altrimenti, non puoi pretendere...


    Tieni anche conto che il tuo script non dovrebbe mai essere collocato dentro la directory del venv... non è in questo modo che si usano i venv. (Il che mi fa pensare che tu potresti avere una bella confusione in testa su che cosa significa essere "dentro" un venv... (e grazie pymike...) Essere all'interno di un venv non vuol dire collocare lo script dentro la directory del venv... vuol dire essere in una shell in cui il venv è stato attivato).


    > suggerirei una lettura di questa pagina


    sì ma onestamente suggerirei di più la lettura del mio libro... mi rendo conto che costa e qui mi sembra che "gratis prima di tutto" sia l'imperativo categorico... ma forse potrebbe esserci del valore, in quello che ha un prezzo... non so.