Forum
>>
Programmazione Python
>>
Scripting
>>
Virgole
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da Gien |
2016-08-31 23:50:53 - Virgole
|
Scusate sono nuovo in questo linguaggio, per iniziare ho voluto fare una calcolatrice (come molti immagino, ma usando float (input (inserisci numero: )), se per sbaglio metto la virgola una volta avviato il programma mi dirá errore, e solo col punto funziona correttamente, esempio:
Inserisci il numero: 23.6 Inserisci il numero: 23,6 Errore Quindi, c'é un comando per far funzionare il programma pur mettendo la virgola? Grazie. P.s: se ho sbagliato sezione scusate, sono nuovo anche del forum |
|
Scritto da Daniele aka Palmux |
2016-09-01 09:03:27 - Re: Virgole
|
Ciao a te e benvenuto.
Mi sorge un dubbio visto che non lo dici: su che versione del linguaggio sei? Te lo chiedo perché se ti viene restituito errore nel momento dell'inserimento, non vorrei che fossi su Python 2.7 e stessi usando input() che è un errore di fondo. Invece sia su Python 2.7 con raw_input(), che sulla 3.5 con input(), otterrai una stringa, quindi sarà accettata sia la virgola che il punto. A quel punto inserendo dei semplici controlli, con un str.find() ad esempio, non avrai problemi in presenza della virgola o del punto. NOTA: Per inciso l'inserimento da input() sulla 2.7 genera un tupla ed anche qui potresti utilizzarlo con un semplice controllo. Ma non spacchiamoci la testa, non usare input() e vivi felice.
Sarebbe più appropriata la sezione Principianti, ma non è un gran problema. Cya --- Ultima modifica di Daniele aka Palmux in data 2016-09-01 09:09:45 --- |
|
Scritto da Gien |
2016-09-01 12:32:52 - Re: Virgole
|
|
|
Scritto da Gien |
2016-09-03 19:45:24 - Re: Virgole
|
Allora intanto grazie ancora per la risposta precedente, ma non ho capito bene un punto:
ho detto nel messaggio scorso quale versione usavo, ma nonostante ciò, non essendo per niente esperto, non ho capito tantissimo. Ergo non sei stato te a formulare il messaggio male, mi pare ovvio essendo te l'esperto, ma sono io che sono un po' sbadato ed essendo teoricamente nuovo nel mondo di programmazione Grazie ancora. P.S: Sto usando momentaneamente questa serie di comandi: x=float(input("Inserire lato quadrato ")) a=(x*x) print("Area = ",round(a,2)) L'obiettivo è far girare il programma anche se qualcuno inserisce la virgola( , ) al posto del ( . ) per introdurre i decimali --- Ultima modifica di gien153 in data 2016-09-03 20:02:46 --- |
|
Scritto da Claudio_F |
2016-09-04 11:25:05 - Re: Virgole
|
Quello che diceva Daniele è che ogni stringa in Python dispone di molte funzioni interne (chiamate metodi) per svolgere diversi compiti comuni (ricerca, scomposizione, trasformazione, sostituzione). Qui alcuni esempi, in particolare il metodo replace è quello che serve per sostituire qualcosa con qualcos'altro.
Seconda cosa, alcune sintassi Python possono apparire lunghe e complesse, come questa: a = bin(1500)[2:].rjust(16, "0") ...ma sono solo la composizione (da sinistra verso destra) di diversi passi elementari: s = bin(1500) <--- s = stringa che rappresenta il valore 1500 in binario s = s[2:] <--- s = la stringa precedente meno i primi due caratteri a = s.rjust(16, "0") <--- a = la stringa precedente giustificata a destra in campo di 16 zeri Così anche: x=float(input("Inserire lato quadrato ")) è la compisizione di: x = input("Inserire lato quadrato ") <--- x = stringa immessa x = float(x) <--- x = conversione stringa precedente in float Quindi basta mettere li in mezzo un replace: x = x.replace(",", ".") <--- x = stringa precedente con ',' sostituito con '.' E visto quanto detto dovrebbe essere chiaro come comporre tutto in un'unica riga: x = float(input("Inserire lato quadrato ").replace(",", ".")) --- Ultima modifica di Claudio_F in data 2016-09-04 12:39:42 --- *** Il codice va evidenziato con il simbolo di fianco ai colori per non perdere l'indentazione *** |
Pagina: 1
Esegui il login per scrivere una risposta.