2017-10-12 4 views
-3
string3 = "abc 123 $$%%" 

list1 = string3.split() 
print(list1) 
for i in list1: 
    if int(i) > 0: 
     print("it's a number") 
    else: 
     print("not a number") 

Erste unter Fehler:wollen einen numerischen Wert in bestimmten Zeichenfolge in Python suchen

if int(i) > 0: 
ValueError: invalid literal for int() with base 10: 'abc' 
+1

Was denken Sie, dass 'int ('$$ %%')' zurückgeben sollte? – mshsayem

+0

Mögliches Duplikat von [Benutzer zur Eingabe auffordern, bis sie eine gültige Antwort geben] (https://stackoverflow.com/questions/23294658/asking-the-user-for-in-put-until-they-give-a-valid- Antwort) – Reti43

Antwort

0
>>> str = "abc 123 $$%%" 
>>> [int(s) for s in str.split() if s.isdigit()] 
[123] 
0

Verwendung i.isdigit()

string3 = "abc 123 $$%%" 

list1 = string3.split() 
print(list1) 
for i in list1: 
    if i.isdigit(): 
     print("it's a number") 
    else: 
     print("not a number") 
0

Fancy Art und Weise:

>>> s = "abc 123 $$%%" 
>>> map(int,filter(str.isdigit,s.split())) 
[123] 

Erläuterung:

  • s.split() spaltet die Zeichenfolge auf Leerzeichen und erzeugt: ['abc', '123', '$$%%']
  • str.isdigit ist eine Funktion, die True wenn alle Zeichen in dem Argument zurückgibt Ziffern sind.
  • filter filtert Elemente einer Liste heraus, die den Test nicht bestehen. Erste Argument ist die Testfunktion: str.isdigit, zweites Argument ist die Liste.
  • Schließlich wandelt map eine Liste in eine andere um. Erstes Argument ist die Transformationsfunktion int, zweites Argument ist die Liste von filter.
0

versuchen, diese

string3 = "abc 123 $$%%" 

list1 = string3.split() 
print(list1) 
for i in list1: 
    if i.isdigit(): 
     print("it's a number") 
    else: 
     print("not a number") 

Ausgang:
[ 'abc', '123', '$$ %%']
keine Zahl
es ist eine Zahl
keine Nummer

+0

Danke .... es funktioniert jetzt gut. – BlackMamba

0
string3 = "abc 123 $$%%" 

list1 = string3.split() 
print(list1) 
for i in list1: 
    try: 
     int(i) 
     print("It is a number") 
    except ValueError: 
     print("It is not a number") 

Versuchen Sie diesen Code

Verwandte Themen