Topic: Come ricevere le informazioni inserite in un programma?  (Letto 381 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Billy

  • python unicellularis
  • *
  • Post: 2
  • Punti reputazione: 0
    • Mostra profilo
Buongiorno. Vorrei fare un programma per capire chi piace ad un mio amico, quindi fare tipo una cavolata che ti dice di inserire il nome e poi ti dice la percentuale di quanto piaci a quella persona. Però non so come avere il nome inserito. Grazie.
« Ultima modifica: Maggio 27, 2020, 11:01 da Billy »

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.151
  • Punti reputazione: 9
    • Mostra profilo
Re:Come ricevere le informazioni inserite in un programma?
« Risposta #1 il: Maggio 26, 2020, 18:47 »
Beh, se il login è quello di un *tuo* programma, la risposta è ovvia. E' un tuo programma, è sotto il tuo controllo. Poi certo, mi auguro che il tuo "amico", dopo lo "scherzo", non si fiderà mai più a installare un tuo programma sulla sua macchina, e dirà a tutti di fare lo stesso.
Se invece il login è quello di un altro programma, ovviamente non puoi sperare che qualcuno te lo spieghi su un forum, a meno di rischiare una denuncia alla polizia postale. "Scherzo" o non "scherzo", fare password sniffing è illegale. Vedi un po' tu.

Offline Billy

  • python unicellularis
  • *
  • Post: 2
  • Punti reputazione: 0
    • Mostra profilo
Re:Come ricevere le informazioni inserite in un programma?
« Risposta #2 il: Maggio 27, 2020, 10:48 »
Beh, se il login è quello di un *tuo* programma, la risposta è ovvia. E' un tuo programma, è sotto il tuo controllo. Poi certo, mi auguro che il tuo "amico", dopo lo "scherzo", non si fiderà mai più a installare un tuo programma sulla sua macchina, e dirà a tutti di fare lo stesso.
Se invece il login è quello di un altro programma, ovviamente non puoi sperare che qualcuno te lo spieghi su un forum, a meno di rischiare una denuncia alla polizia postale. "Scherzo" o non "scherzo", fare password sniffing è illegale. Vedi un po' tu.
In realtà era per capire chi gli piace non per vedere le sue password. Ho riformulato la domanda
« Ultima modifica: Maggio 27, 2020, 11:06 da Billy »

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.151
  • Punti reputazione: 9
    • Mostra profilo
Re:Come ricevere le informazioni inserite in un programma?
« Risposta #3 il: Maggio 27, 2020, 13:27 »
Occhei. Così abbiamo eliminato anche quel poco di senso logico che restava nella domanda, e abbiamo solo parole in libertà.
Vuoi sapere il nome del tuo amico? Direi che puoi chiederglielo.

Tutto questo non è Python. Quando qualcosa di tutto questo diventerà Python, prova a scrivere su un forum Python.

Offline Gianpatrizio

  • python unicellularis
  • *
  • Post: 49
  • Punti reputazione: 0
    • Mostra profilo
Re:Come ricevere le informazioni inserite in un programma?
« Risposta #4 il: Maggio 29, 2020, 23:41 »
beh billy, da quello che mi sembra di aver capito, vorresti fare un programma che ti faccia inserire un nome e che ti dica quanto piaci a quella ragazza.
Ora io non sono in grado di dirti quanto può piacere veramente a quella ragazza il tuo amico perchè è letteralmente inpossibile capirlo solo dal nome, ma se è solo per uno scherzo potresti anche inventarti una percentuale. In ogni caso ti ho preparato un codice di esempio che, avendo le MINIMI informazioni in python potresti cambiare  secondo le tue esigenze


from tkinter import *

def prosegui():
  l1.pack_forget()
  e1.pack_forget()
  b1.pack_forget()
  # lo so forse poteva tornarmi più utile inserire gli widget
  # in un frame ma ci ho pensato dopo

  # ridimensiono la finestra root
  root.geometry("400x200")

  # creazione di un widget di tipo label contenente il punteggio
  l2 = Label(root, text="Congratulazioni!!\nil tuo rapporto con {} è di 'percentuale'".format(nome.get()), font="helvetica 18", fg="red")
  # impacchettare il widget
  l2.pack(pady=50)


# creazione della gui
root = Tk()
# titolo alla nostra gui
root.title("Titlo_del_programma")
# diensione alla nostra gui
root.geometry("310x200")
# dire che la nostra gui non è "ingrandibile"
root.resizable(False, False)


# creazione di un widget di tipo label che a come testo la domanda
l1 = Label(root, text="Come si chiama la persona?", font="helvetica 18", fg="red")
# impacchettare il widget
l1.pack(pady=20)


# creare una variabile che conterrà il contenuto dell'entri (in questo caso dovrebbe contenere il nome della persona)
nome = StringVar()


# creazione di un widget di tipo entry che conterrà un campo di inserimento testo
e1 = Entry(root, textvar=nome)
# impacchettare il widget
e1.pack(pady=5)


# creazione di un widget di tipo button che aggiornerà la schermata
b1 = Button(root, text="Continua", font="helvetica 18", fg="white", command=prosegui)
# dare il background al widget
b1.config(bg="red")
# impacchettare il widget
b1.pack(pady=5)


#mainloop della finestra principale
root.mainloop()


Ricordo che lo script che avete appena visualizzato è uno script dotato di un'interfaccia grafica. Se invece si vuole creare un programma eseguibile da console, quella che vedete sotto potrebbe esserne un esempio.


# faccio una domanda all'utente
print("Come si chiama la persona?")
# creo un campo per l'input in cui la persona dovrà scrivere un nome
nome = str(input("Scrivi il nome della persona")) # in quest'input mi sono anche assicurato che il testo inserito sia di tipo stringa, in tal caso, l'ho convertito in esso
# do una risposta all'utente
print("""
congratulazioni!!
il tuo rapporto con {} è di 'percentuale'
""".format(nome))


Ricordo che questo progetto è stato realizzato con python 3.8.3 (la versione più recente) su un computer windows 10
Ora io quando posso do volenterissimo una mano ad altri utenti, però credo sia più correto nei confronti delle altre persone esporre il proprio codice
perchè sennò si rischia di non imparare niente e soprattutto a quel punto il programma non è più tuo ma sarà sempre una scopiazzatura.
Detto questo, fammi sapere se hai altre domande.
Buona giornata
« Ultima modifica: Giugno 02, 2020, 22:41 da Gianpatrizio »

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.151
  • Punti reputazione: 9
    • Mostra profilo
Re:Come ricevere le informazioni inserite in un programma?
« Risposta #5 il: Maggio 30, 2020, 11:02 »
Qualunque cosa, pur di non imparare a programmare, vedo.


PS:
> pip install tkinter
Ma tu hai mai provato a fare "pip install tkinter"?
Provi a farlo adesso e mi dici che cosa succede? E' una curiosità...

Offline Gianpatrizio

  • python unicellularis
  • *
  • Post: 49
  • Punti reputazione: 0
    • Mostra profilo
Re:Come ricevere le informazioni inserite in un programma?
« Risposta #6 il: Maggio 30, 2020, 21:34 »
Scusami davvero se la mia risposta non le è stata di gradimento, non so come ma probabilmente le mie parole le hanno dato fastidio, anche se devo ammettere di non aver capito una cosa, come mai ha scritto la frase "tutto pur di non imparare a programmare"? Veramente non ne vedo il senso perchè in più a scriveee il codice per le altre persone non so cosa fare. Riguardo all'importazione della libreria tkinter forse mi sono sbagliato? Tkinter è una libreria della standard library?

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.151
  • Punti reputazione: 9
    • Mostra profilo
Re:Come ricevere le informazioni inserite in un programma?
« Risposta #7 il: Maggio 31, 2020, 11:21 »
Ascolta, davvero, non c'è molto da filosofeggiare.

Hai consigliato di fare pip install tkinter. Ti ho chiesto se lo hai fatto, e se puoi riportare che cosa succede.

Te lo richiedo, hai visto mai che la prima volta eri distratto.
Hai provato a vedere che cosa succede a fare pip install tkinter? Puoi farlo adesso, e riportare l'esito di questo esperimento? E le tue ulteriori osservazioni e riflessioni sull'esito di questo esperimento? Sarei molto (davvero, molto) interessato a conoscerle.
Poi se vuoi ripartiamo da qui e vediamo il resto del codice che hai postato.

Offline Gianpatrizio

  • python unicellularis
  • *
  • Post: 49
  • Punti reputazione: 0
    • Mostra profilo
Re:Come ricevere le informazioni inserite in un programma?
« Risposta #8 il: Giugno 02, 2020, 22:36 »
Buogiorno, parto con il darle le mie scuse per il tempo che ho impiegato a risponderle. Come mi aveva chiesto qui le riporterò il risultato di questo esperimento e sotto troverà tutte le mie osservazioni.

Collecting tkinter
  ERROR: Could not find a version that satisfies the requirement tkinter (from versions: none)
ERROR: No matching distribution found for tkinter

Allora parto con il dare le mie scuse a tutti gli utenti di questo forum in quanto vi abbia dato un'informazione sbagliata nonostante tkinter sia una libreria della standard library quindi non necessita o meglio non vuole l'import da console. E' possibilerecarsi alla pagina della documentazione di tkinter con questo link:
https://docs.python.org/3/library/tkinter.html
Mi scuso ancora per questa falsa informazione, la prossima volta prima di dire una cosa per un'altra starò più attento a verificare i contenuti di quello che scrivo.
Quando leggerete quessto post, molto probabilmente avrò già modificato il post precedente per non creare confusione tra gli utenti di questo forum.

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.151
  • Punti reputazione: 9
    • Mostra profilo
Re:Come ricevere le informazioni inserite in un programma?
« Risposta #9 il: Giugno 03, 2020, 21:26 »
Sì, infatti.
A voler essere precisi-precisi, Tkinter non è neanche propriamente nella "libreria standard". O meglio, tkinter lo è, ma questo è solo un wrapper intorno alla libreria grafica Tcl-tk, che invece non è nella libreria standard, ma è distribuita comunque insieme a Python (come un *vendored package*).
A lato pratico, non fa **quasi** nessuna differenza: in sostanza si può dire che tkinter è distribuito insieme a Python.
Il "quasi" è perché in ogni caso tkinter non ha la stessa garanzia di reperibilità dei pacchetti della libreria standard vera e propria. La libreria standard è garantita su tutte le distribuzioni di Python (con eccezioni veramente eccezionali tipo micro-python, ma insomma). Invece tkinter... è più variabile. Su certe distribuzioni di linux per esempio non lo trovi nel Python di sistema, per es. In questi casi ti tocca scaricarlo dal packet manager (tipo "apt-get install python3-tk" o robe così).
In ogni caso non si trova su PyPI e quindi non è installabile con pip.
E' una situazione un po' strana in effetti, dovuta a ragioni storiche.


Ora, quando si risponde a qualcuno su un forum ci si prende una piccolissima responsabilità. Piccolissima, eh. Piccolissima. Nessuno pretende che una risposta su un forum debba contenere verità assolute, per carità (per queste, in teoria, c'è la documentazione... o meglio ancora il codice sorgente). Anzi, un forum è appunto il luogo dove la "verità" si costruisce poco per volta, con la collaborazione di più persone. Tuttavia occorre lo stesso una minima disciplina. Quello che scrivi potrebbe essere utile (o dannoso) a molte persone, a distanza di molto tempo.
Verificare che gli esempi e le soluzioni che posti funzionino, e cose così, è una buona forma di cortesia nei confronti del prossimo (anche se... ehm... non sempre il prossimo se lo merita!!).

Poi certo, anche questa minima disciplina costa fatica, e mi rendo conto che è una selezione. Ma la mia opinione personale è che non importa se in questo forum c'è un post al mese o un post al secondo. Importa la minima qualità che ciascuno, nelle sue possibilità, riesce a garantire. Altrimenti basta andare su facebook o su youtube, e di str****ate se ne trovano quante se ne vogliono, senza offesa per nessuno.
Poi questa è la mia opinione personale, beninteso.

Alcuni dei frequentatori storici di questo forum (che adesso non si vedono più in giro) avevano opinioni e toni anche più netti: https://forumpython.it/base/ottimizzazione-del-codice/msg88361/#msg88361
Però era anche possibile fare con loro discussioni veramente interessanti (esempio, https://forumpython.it/calcolo-scientifico/(risolto)dizionario-gtjson-gtdizionario-mantenere-l'ordine-delle-chiavi/msg87676/#msg87676 e i successvi post), proprio perché c'era una comune intesa di cercare di essere accurati, chiari, non banali (indipendentemente da quante cose uno possa sapere o non sapere).


Poi c'è la questione "didattica", se vogliamo. E anche qui, è solo una mia opinione, beninteso.
Ma uno dovrebbe metterci un pochino di coscienza anche a fare le *domande* su un forum, non solo a dare le *risposte*. Se fai una domanda, devi imparare a spiegarti in modo chiaro, circoscrivere l'argomento, dare tutte le informazioni necessarie.

Invece qui è strapieno di gente che arriva, e "helpo helpo non mi funzia raga!!!!"... domande completamente senza senso, per cui ti serve la sfera di cristallo anche solo per orientarti nel problema... oppure chilometri di codice che non c'entra niente... eccetera. Senza contare il classico "risolvetemi l'esercizio del compito per domani".
E ovviamente pretendono la soluzione immediata, la ricettina da copincollare. E quando arrivi a dargliela, non ti rispondono nemmeno e spariscono completamente fino al successivo disastro. Se appena provi a dirgli "studiati un manuale" si offendono.
Ora, ciascuno ovviamente è libero di usare un forum come vuole. E però anche io, allora.
E io francamente trovo che questo atteggiamento sia *predatorio*, *opportunistico* e *arrogante*.

Ora, questo thread è chiaramente partito da una situazione del genere. Come vedi l'OP nel frattempo è già migrato allegramente su altri lidi, perché non ha ricevuto la ricettina pronta all'uso.
Posto che naturalmente quello che davvero voleva l'OP era uno sniffer di password, e pazienza, non voglio commentare il tuo codice e soprattutto se hai indovinato l'intenzione dell'OP. In casi del genere, si chiede all'OP di esprimersi in Italiano corretto e di chiarire qual è il suo problema e che cosa vuole. E' la minima cortesia che può fare uno che rivolge una domanda in un forum.
Poi certo, questa è la mia opinione personale. Vedi un po' tu.

Offline Gianpatrizio

  • python unicellularis
  • *
  • Post: 49
  • Punti reputazione: 0
    • Mostra profilo
Re:Come ricevere le informazioni inserite in un programma?
« Risposta #10 il: Giugno 04, 2020, 09:46 »
Ancora una volta interessante lettura, non avrei saputo dirlo in modo migliore. E' stato molto chiaro e preciso  :ok:. Davvero bravo