NoName wrote: > Perl: > @char=("A".."Z","a".."z",0..9); > do{print join("",@char[map{rand @char}(1..8)])}while(<>); > > !!generate passwords untill U press ctrl-z > > > > Python (from CookBook): > > from random import choice > import string > print ''.join([choice(string.letters+string.digits) for i in > range(1,8)]) > > !!generate password once :(
Make a loop. > who can write this smaller I won't write it for you, but I'll tell you how: Write a function for the whole loop and the password generator and from then on it will be a one-liner (as a function call). > or without 'import'? Yes, make sure you do the import inside the function. If you follow my advice, you will be able to get as many passwords as you want with one line (and no spaces, even!): generate_passwords() It also reads much clearer than the perl version, don't you think? By the way, you can also make a script. Call it "genpass", then at the command prompt, it will be far less than one line: % genpass Or, if you are using DOS/Windows: C:> genpass A lot of systems don't have a standard command called "g", so then you can turn it into *ONE LETTER*!!! That beats the pants off perl! % g Or, of course, for DOS: C:> g Good luck! James -- http://mail.python.org/mailman/listinfo/python-list