1
votes

Python - N'affiche que les entiers d'une chaîne

Donc, à titre d'exemple, disons qu'il n'y a qu'une seule ligne de code dans le programme, et que cette ligne de code est n = input () , et disons que l'utilisateur a entré < code> random123 . Comment puis-je faire en sorte que lorsque j'imprime n , il n'imprime que les entiers de n , ou 123? Notez que je veux que cela fonctionne même si l'entrée utilisateur est random123random456 . Si l'utilisateur saisit IS "random123random456", je souhaite qu'il imprime 123456 .


0 commentaires

3 Réponses :


4
votes

Vous pouvez utiliser une expression de générateur avec un appel à la méthode str.isdigit comme filtre:

''.join(c for c in n if c.isdigit())


0 commentaires

0
votes
test = "123string456"
output = str()
for each in test:
    try:
        n = int(each)
        output = "{}{}".format(output,n)
    except:
        pass

print(output)

1 commentaires

Je recommande fortement de remplacer sauf: par sauf ValueError: . Voir Qu'est-ce qui ne va pas avec l'utilisation d'un "sauf" nu? .