2017-03-24 6 views
0

Ich kann nicht herausfinden, was ich mit isdigit falsch mache. Ich habe zusätzliche Zeilen hinzugefügt, um zu sehen, wo mein Code ankommt, aber ich kann die If-Anweisungen nicht erhalten, so dass fnum und snum in Ganzzahlen umgewandelt werden. Die ganze Idee ist, dass ich Probleme mit der Gleichungslinie in meinem Skript hatte, die nach rechts zurückgegeben wird, so wird dies fangen, um sicherzustellen, dass beide Zahlen in der Gleichung ganze Zahlen sein können, bevor sie in Ganzzahlen umgewandelt werden und möglicherweise das Skript abstürzen. Ich habe versucht mit den Antworten als 'True' und auch 'True', um sicherzustellen, dass es sich nicht um ein Großschreibungsproblem handelte. Ich habe beide Zeilen vor den if-Anweisungen ausgedruckt, um zu sehen, dass die isdigit-Zeile korrekt geschrieben ist, beide geben True zurück, obwohl ich nicht in die if-Anweisung eintrete. Hier ist mein Code unten:Python3 isdigit

equation = "1+2" 
isdig = 0 
fnum=0 
snum=0 
print (equation) 
firstnum = equation[0] 
secondnum = equation[2] 
print (firstnum) 
print (secondnum) 
print (firstnum.isdigit()) 
print(secondnum.isdigit()) 
if firstnum.isdigit() == "True": 
    print ('yes') 
    fnum=int(firstnum) 
    isdig = isdig + 1 

if secondnum.isdigit() == "True": 
    print ('yes') 
    snum=int(secondnum) 
    isdig = isdig + 1 

sign = equation[1] 
print (sign) 

if sign == '-' or sign == '+': 
    if sign == '-': 
     answer = fnum - snum 
    if sign =="+": 
     print ("addition") 
     answer = fnum + snum 
    isdig = isdig + 1 

print (answer) 
print (isdig) 

Antwort

2

Wenn Ihr Problem mit Gleichheit ist, sollten Sie True vom Typ verwenden bool statt "True" vom Typ str.

+0

Autsch! Ich war ein Idiot! Danke, Mann! – Brandon

+0

@Brandon Du bist willkommen :) – zipa