Guest Pubblicato: 4 Febbraio 2011 Segnalazione Share Pubblicato: 4 Febbraio 2011 (modificato) ciao a tutti.. vorrei usare questa discussione per chiarimenti sul python visto che sto provando a fare qualcosa.... import appuifw n = 10 appuifw.note("ciao" + 10,"info") perchè non mi lascia concatenare una stringa con un'intero? poi vorrei sapere come associare un'evento in base al softkey premuto ad esempio ok o cancel. grazie! Modificato 4 Febbraio 2011 da Guest Niente titoli generici! Link to comment Condividi su altri siti More sharing options...
madhacker Pubblicato: 4 Febbraio 2011 Segnalazione Share Pubblicato: 4 Febbraio 2011 puoi concatenare solo 2, o più elementi, dello stesso tipo; quindi se vuoi inserire accanto al testo "ciao" devi convertire il numero dieci in stringa esempio: import appuifw n = 10 appuifw.note(unicode("ciao") + unicode(10), "info") Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 4 Febbraio 2011 Segnalazione Share Pubblicato: 4 Febbraio 2011 (modificato) Premetto che non conosco python, ma sei certo che unicode(10) restituisca la stringa unicode "10"? Perche' temo che restituisca un singolo carattere corrispondente al carattere 10 dell'unicode. Modificato 4 Febbraio 2011 da Il.Socio Link to comment Condividi su altri siti More sharing options...
Guest Pubblicato: 4 Febbraio 2011 Segnalazione Share Pubblicato: 4 Febbraio 2011 (modificato) Premetto che non conosco python, ma sei certo che unicode(10) restituisca la stringa unicode "10"? Perche' temo che restituisca un singolo carattere corrispondente al carattere 10 dell'unicode. ho provato con unicode(n) e restituisce il valore di n, quindi è ok! EDIT: scusa per il titolo! Modificato 4 Febbraio 2011 da Guest Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 4 Febbraio 2011 Segnalazione Share Pubblicato: 4 Febbraio 2011 (modificato) non mi e' chiaro cosa intendi con "il valore di n" e' una stringa? e' un carattere? e' un intero? cos'e'? unicode("10") ed unicode(10) danno esattamente lo stesso risultato? Modificato 4 Febbraio 2011 da Il.Socio Link to comment Condividi su altri siti More sharing options...
Guest Pubblicato: 4 Febbraio 2011 Segnalazione Share Pubblicato: 4 Febbraio 2011 allora: n = 10 unicode(n) restituisce 10 cioè il valore della variabile unidcode("10") e unicode(10) restituiscono entrambi 10 Link to comment Condividi su altri siti More sharing options...
memoryn70 Pubblicato: 4 Febbraio 2011 Segnalazione Share Pubblicato: 4 Febbraio 2011 Il metodo più pulito è: u"Risultato: %i"%numero_intero In questo modo puoi fare anche varie formattazioni (vedi doc python) Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 4 Febbraio 2011 Segnalazione Share Pubblicato: 4 Febbraio 2011 (modificato) allora: n = 10 unicode(n) restituisce 10 cioè il valore della variabile unidcode("10") e unicode(10) restituiscono entrambi 10 quindi unicode("10") ed unicode(10) restituiscono entrambi il valore intero 10? Attendiamo conferme, ma ne dubito fortemente. Modificato 4 Febbraio 2011 da Il.Socio Link to comment Condividi su altri siti More sharing options...
Guest Pubblicato: 4 Febbraio 2011 Segnalazione Share Pubblicato: 4 Febbraio 2011 (modificato) Il metodo più pulito è: u"Risultato: %i"%numero_intero In questo modo puoi fare anche varie formattazioni (vedi doc python) sostituisce %i col numero giusto? però mi sembra poco leggibile come soluzione. quindi unicode("10") ed unicode(10) restituiscono entrambi il valore intero 10? Attendiamo conferme, ma ne dubito fortemente. non è una cosa che mi sono inventato io eh.... provato sull'emulatore del terminare dell'sdk per 3rd..al momento non ho un telefono per provarlo! in effetti avrebbe più senso se con 22 restituisse il carattere col corrispondente a 22..... Modificato 4 Febbraio 2011 da Guest Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 6 Febbraio 2011 Segnalazione Share Pubblicato: 6 Febbraio 2011 (modificato) python non mi piace... Modificato 6 Febbraio 2011 da Il.Socio Link to comment Condividi su altri siti More sharing options...
memoryn70 Pubblicato: 7 Febbraio 2011 Segnalazione Share Pubblicato: 7 Febbraio 2011 python non mi piace... Hahaha beh infatti ste cagate io le eviterei(to) SEMPRE. E' certo in questo modo facile se non banale ma proprio per la sua banalità non è detto che sempre sia la via migliore...Di certo è una delle possibilità e in certi casi è utile! La concatenazione con i percentuali è usata anche in C++ ed è, non di meno, più veloce del +! E' anche molto leggibile a mio parere... ps: dgiac...occhio al primo valore non unicode Se fai un miscuglio appena avrai a che fare con caratteri utf8..beh meglio evitare! Ricordo che unicode è obbligatorio nel momento delle chiamate all'ui di sistema, e a molto altro ovviamente. Link to comment Condividi su altri siti More sharing options...
lento Pubblicato: 8 Febbraio 2011 Segnalazione Share Pubblicato: 8 Febbraio 2011 quindi unicode("10") ed unicode(10) restituiscono entrambi il valore intero 10? Attendiamo conferme, ma ne dubito fortemente. Non restituisce un intero ma una stringa di tipo unicode. Python essendo un linguaggio di alto livello ci viene in aiuto eseguendo automaticamente delle conversioni che altri linguaggi non tollerano. Queste facilitazioni a volte generano confusione..... print u"0 " + unicode(22) Prende il valore numerico 22 lo trasforma in stringa unicode e lo concatena a u"0 " Notare quanto si arrangia Python! se uniamo una stringa "UgaUga" ad un unicode unicode(22) esegue la conversione automaticamente del tutto in unicode. type("UgaUga") >>><type 'str'> Qui ci dice che è una stringa ascii type(unicode(22)) >>><type 'unicode'> Qui ci dice che è una stringa di unicode type("UgaUga"+unicode(22)) >>><type 'unicode'> Qui si è arrangiato a trasformare la parte stringa in unicode prima di unirla print "UgaUga"+unicode(22+1) >>> UgaUga23 esegue la somma tra i due numeri poi li trasforma in stringa unicode e li concatena a "UgaUga" avendo trasformato anchessa in unicode. Benvenuti nel castello fatato di Python ricco di facilitazioni e trabochetti.(Attenti alle botole e vari fantasmini.....) Che cè Voi Fà... Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 8 Febbraio 2011 Segnalazione Share Pubblicato: 8 Febbraio 2011 (modificato) Mi chiedo... e se volessi avere una stringa unicode composta dal solo carattere 0032? (cioe' una stringa formata da uno spazio) Modificato 8 Febbraio 2011 da Il.Socio Link to comment Condividi su altri siti More sharing options...
lento Pubblicato: 8 Febbraio 2011 Segnalazione Share Pubblicato: 8 Febbraio 2011 Mi chiedo... e se volessi avere una stringa unicode composta dal solo carattere 0032? (cioe' una stringa formata da uno spazio) a=u' ' a contiene il carattere unicode 0032 e=unicode(' ') e contiene il carattere unicode 0032 type(a) >>><type 'unicode'> type(e) >>><type 'unicode'> len(a) >>>1 Comunque esiste un modulo di funzioni tutto dedcato alla gestione più complessa dell'unicode. E si chiama: codecs Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 9 Febbraio 2011 Segnalazione Share Pubblicato: 9 Febbraio 2011 (modificato) eheh... non e' proprio quello che volevo intendere Credo basti questo altro esempio per spiegarmi meglio... Se ti dicessi il solo carattere 0008 (cioe' il backspace) come si fa? EDIT: Ho trovato che puo' essere rappresentato cosi': u"\u0008" Ma piu' che altro, me lo chiedevo perche' pensavo a come si sarebbe dovuta utilizzare la funzione unicode() in questo caso... siccome la funzione trasforma l'intero passato come parametro nella corrispettiva stringa, non credo che si possa utilizzare in questo caso. O magari cosi', passando la stringa pero': unicode("\u0008") Modificato 9 Febbraio 2011 da Il.Socio Link to comment Condividi su altri siti More sharing options...
lento Pubblicato: 9 Febbraio 2011 Segnalazione Share Pubblicato: 9 Febbraio 2011 (modificato) eheh... non e' proprio quello che volevo intendere Credo basti questo altro esempio per spiegarmi meglio... Se ti dicessi il solo carattere 0008 (cioe' il backspace) come si fa? EDIT: Ho trovato che puo' essere rappresentato cosi': u"\u0008" Buona la prima!....u"\u0008" Python mantiene la capacità di interpretare le stringhe racchiuse tra doppi apici "\nciupa ciupa\t" Diciamo che accettando queste stranezze si riesce a scrivere un programma in poche righe. Ponendo l'attenzione sulla logica di ciò che si vuol fare. Modificato 9 Febbraio 2011 da lento Link to comment Condividi su altri siti More sharing options...
memoryn70 Pubblicato: 9 Febbraio 2011 Segnalazione Share Pubblicato: 9 Febbraio 2011 Buona la prima!....u"\u0008" Python mantiene la capacità di interpretare le stringhe racchiuse tra doppi apici "\nciupa ciupa\t" Diciamo che accettando queste stranezze si riesce a scrivere un programma in poche righe. Ponendo l'attenzione sulla logica di ciò che si vuol fare. dal python 25 c'è anche unichr(u"a") che ritorna il numero di carattere... chr() per l'ascii "\x20" ->byte singolo "\u2393" -> multiplo unicode e poi se si vuole c'è struct che permette di creare strutture di byte Link to comment Condividi su altri siti More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Accedi Ora