Python: Analyse von input, um zu sehen, ob es ein integer, float oder string

Habe ich auf dieses Ziel hingearbeitet, für einen Tag oder zwei, um zu sagen, ob eine Eingabe ist ein integer, float oder string.

Kurz gesagt, das Programm ist entworfen, um jede Eingabe in einen string, Schleife durch jede saite, und schauen Sie durch die Liste stellen. Wenn der string alle Ziffern, eine ganze Zahl, wenn es ein '.' es ist ein schweben, und wenn es keine hat ist es keine Zahl. Die offensichtliche Schwäche von strings mit Buchstaben und '.' die als Schwimmer in diesem Programm.

Dem Ziel, sich für dieses Programm ist zum öffnen von text-Dateien und sehen, was der input ist ein int, float oder andere.

Fragen

-Gibt es eine Möglichkeit zur weiteren Optimierung dieses Programm

-Wie kann ich das ändern dieses Programm zum öffnen von text-Dateien Lesen, auswerten und schreiben-die Eingabe wird in die Liste

Ersten post!!!!!

#Checks input to see if input is integer, float, or character

integer = []
float = []
not_number = []

digits = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
input_list = [100, 234, 'random', 5.23, 55.55, 'random2']

for i in input_list:

    i = str(i) 
    length = len(i)

    count = 0 
    marker = 0

    for j in i:
        for k in digits:
            if k == j:
                count = count + 1

#k loops through digits to see if j single character 
#string input is number

        if count == length:
            integer.append(i)
            marker = 1

#count is equal to length if entire string is integers

        if j == '.':
            float.append(i)
            marker = 1

#Once '.' is found, input is "considered" a float

        if marker == 1:
            break
    else:
        not_number.append(i)

#If code above else proves that input is not a number the 
#only result is that it isn't a number

print ('Integers: ', integer)
print ('Float: ', float)
print ('Not Numbers', not_number)
InformationsquelleAutor Alexander | 2014-03-06
Schreibe einen Kommentar