Ich habe den folgenden Python-Code für eine Übung in Python für die Informatik erstellt. Der Code wird ausgeführt, erkennt jedoch eine Eingabe des Benutzers, der größer als 1 ist, nicht als numerisch. Jede Hilfe wäre willkommen.Python 3 - Code erkennt keine Benutzereingabe größer als 1 als numerisch
def isfloat(string):
try:
float(string)
if float(string) == True:
return True
except ValueError:
return False
user_input = input('Please enter a real number. Type \"done\" to exit and tally your entries \n> ')
data = 0
count = 0
while isfloat(user_input) == True:
data = data + float(user_input)
count = count + 1
user_input = input("Please enter another value \n> ")
isfloat(user_input)
else:
if (isfloat(user_input) == False) and (user_input == "done"):
print("The sum of your entries is: " + str(data))
print("The number of entries was: " + str(count))
exit()
else:
print("The entry was not a numeric value \n")
print("The sum of your valid entries is: " + str(data))
print("The number of valid entries was: " + str(count))
exit()
'float (string) == true' wird passieren, wenn' string' ist ' "1"' oder ' "1.0"', weil 'true' ist eine Unterklasse "int" mit dem Wert "1". Aber es ist ein schrecklicher Test. – ShadowRanger
Ich stimme zu, obwohl ich nicht den Rest des Codes ändern wollte; Ich wollte nur das Problem beheben, nach dem das OP gefragt hat. Ich ändere meinen Beitrag, um das klarer zu machen. – caleb531