PDA

Visualizza la versione completa : [PYTHON] Convertire da stringa a numero intero


petremic73
30-11-2005, 09:48
penso sia facile per voi. Come fare in php e in python ad estrapolare in numero intero da una variabile stringa?
ad esempio "hello2" mi deve dare 2...
"hello" mi deve dare 0 e non un errore.
dev'esserci un modo!

alka
30-11-2005, 09:55
Originariamente inviato da petremic73
Come fare in php e in python [...]

Per quanto riguarda PHP, esiste un forum apposito.

Per Python, invece, puoi ricevere risposte qui.

Ricordati di indicare il linguaggio nel titolo come da Regolamento (http://forum.html.it/forum/showthread.php?s=&threadid=862017), magari prendendo spunto dalle discussioni esistenti per rispettare le convenzioni.

Questo titolo lo correggo io.

Ciao! :ciauz:

Fox82
30-11-2005, 10:46
import re
mo = re.compile('^.*(\d+)$').match('ciao2')
if mo is not None:
num = int(mo.group(1))


Ci sono vari modi, questo probabilmente è il più flessibile perchè fa uso delle espressioni regolari

petremic73
30-11-2005, 20:49
grazie molto gentili. Lo proverò subito.

petremic73
01-12-2005, 10:05
Ti spiego meglio il problema.
Vorrei fare un inserimento sulla variabile mo - ad esempio:
mo=raw_input("inserisci un numero\n")
Però vorrei che se l'utente digita una stringa tipo "ciao2" la variabile mo mi restituisca comunuqe l'intero 2.
Ma questo deve funzionare pure con le stringhe
"2ciao4" da 24,
"22cia4o0" da 2240

è possibile risolvere questo problema?
Una bella rogna. :D
ciao

Fox82
01-12-2005, 10:32
Questa è la magia di python... :D



int(''.join(re.compile('\d+').findall('2ciaosad23s ad34'))


Da non crederci...

petremic73
01-12-2005, 11:25
ci dev'essere un errore di sintassi, ma non lo riesco ad identificare in:

int(''.join(re.compile('\d+').findall('2ciaosad23s ad34'))

tra l'altro se questo è esatto dovrebbe equivalere a:

int(''.join(re.compile('\d+').findall(mo))

dove "mo" è la variabile stringa imputata?

Ikitt
01-12-2005, 11:28
Originariamente inviato da petremic73
ci dev'essere un errore di sintassi, ma non lo riesco ad identificare in:

int(''.join(re.compile('\d+').findall('2ciaosad23s ad34'))
[...]

Manca una tonda chiusa alla fine.

petremic73
01-12-2005, 11:52
ok ora la sintassi è giusta ma mi chiede di definire re

NameError: name 're' is not defined

Fox82
01-12-2005, 12:06
Originariamente inviato da Ikitt
Manca una tonda chiusa alla fine.

Fregato dal cut-and-paste! :D

E ovviamente manca import re

Loading