Strange side effect from reading a list of numbers from argv
Neel Krishnaswami
neelk at brick.cswv.com
Sun Jul 18 19:12:30 EDT 1999
More information about the Python-list mailing list
Sun Jul 18 19:12:30 EDT 1999
- Previous message (by thread): Strange side effect from reading a list of numbers from argv
- Next message (by thread): Strange side effect from reading a list of numbers from argv
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
In article <O3sk3.6047$Sg6.52046 at news1.rdc1.sdca.home.com>, Harold Gottschalk <heg at softbrew.com> wrote: >I just wrote this program to become familiar with python and I do not >understand why it works with a list I create with in the program and not >when I use sys.argv[1:]. > >I am sure there is some nuance I am missing, but an explanation to its >behavior would be helpful. The elements of sys.argv are *strings*, and strings compare ascii-betically: >>> "3" > "2" 1 >>> "3" > "20" 1 Just like "bat" > "ant", and "bat" > "anthropologist". To convert elements of sys.argv (or any string) into numbers, use the int() or float() built-in functions, depending on whether you want an integer or floating-point number. >>> int("3") > int("2") 1 >>> int("3") > int("20") 0 More like what you wanted, right? It would be nice if the comparison between your number and the string had raised an exception, but that's not how Python comparisons work -- the language reference documents this in Section 5.9: The operators "<", ">", "==", ">=", "<=", and "!=" compare the values of two objects. The objects needn't have the same type. If both are numbers, they are coverted to a common type. Otherwise, objects of different types always compare unequal, and are ordered consistently but arbitrarily. Nonetheless, this is IMHO a misfeature. We'll just have to live with a language that's 95% perfect. :) Neel
- Previous message (by thread): Strange side effect from reading a list of numbers from argv
- Next message (by thread): Strange side effect from reading a list of numbers from argv
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list