if not isinstance(): command Funktioniert nicht in Python 3?
a=input('pls enter the amount of different Atoms your solution has (no greater then 10 possible):')
if isinstance(a, int):
print('error', type(a), 'is not int')
else:
print(works)
Ich das wenn die eingabe etwas anderes als int() ist ein error ausgespuckt wird und wenn es ein int() ist, danneben bei else weitermacht, allerdings funktioniert es nicht wer eine idee?
1 Antwort
Ich das wenn die eingabe etwas anderes als int() ist ein error ausgespuckt wird und wenn es ein int() ist, danneben bei else weitermacht, allerdings funktioniert es nicht wer eine idee?
input() gibt dir immer einen String zurück und wandelt nicht automatisch in andere Datentypen (wie Zahlen) um. Das musst du schon selbst machen.
danke ich habe es jetzt mit if a.isalpha() gelöst
Womit du viele andere Zeichen wie !"()@/_:, usw. erlaubst.
stimmt ich sollte die verneinung if not a.isnum() benutzen danke für den hinweis
stimmt ich sollte die verneinung if not a.isnum() benutzen danke für den hinweis
Sicher?
>>> "⓪ⅲ❻".isnumeric()
True
Ich weiß schon, warum ich meine Antwort da oben so geschrieben habe, wie ich sie geschrieben habe...
dann hoffen wir mal das mein Chemie lehrer nicht zu doof ist die inputs zu beachten XD
gibt es eine möglichkeit das ich nur eingegebene zahlen aus dem input in int umwandel?
Der beste Weg ist, es zu probieren und ggf. einen ValueError abzufangen.
try:
zahl = int(eingabe)
except ValueError:
print("Das ist keine Zahl")
Von schlauen Tricks mit regulären Ausdrücken oder sowas wie isdigit() rate ich hier eher ab. Das geht meist in die Hose, weil man irgendwas nicht beachtet (etwa negative Zahlen oder andere gültige Schreibweisen).
#1. möglichkeit:
Antwort=input('Zahl:')
try :
Antwort=int(Antwort)
except :
print('fehler!')
#2. Möglichkeit:
Antwort = input('Zahl:')
if Antwort.isdigit() :
Antwort = int(Antwort)
else :
print('Error!')
danke ich habe es jetzt mit if a.isalpha() gelöst da es schaut ob buchstaben im input enthalten sind