34

Tweetable Python – Tweetable Python 3.7 Documentation

 5 years ago
source link: https://www.tuicool.com/articles/hit/biErIzm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Each programs in this books fits in a single tweet (280 chars or less) and does something useful, powerful or fun.

These programs will serve a reference, inspire and delight. In most cases, but not always, the code is Pythonic , without any obfuscation or code golfing.

These programs serve as a testament to Python’s power, conciseness and clarity

Take this example

import random, string
"".join(
  [random.choice(string.ascii_letters + string.digits)
  for i in range(8)]
)

In less than a 100 chars, you can generate truly random passwords.

Now look at this function which fits a tweet.

ch= "█"
def col(sz):
    mn,mx=min(sz),max(sz)
    df = (mx-mn)//8
    bkt = [(el-mn)//df for el in sz]
    hrz = [f"{b}{c}" for b,c in
            [(ch*(el+1)," "*(8-el))  for el in bkt]
        ]
    return "\n".join([" ".join(el) for el in list(map(list, zip(*hrz)))[::-1]])

You can now generate a columns chart for any integer series, visible on terminals.

In [2]: import random

In [3]: series = [random.randint(10, 99) for _ in range(25)]

In [4]: print(col(series))

█                         █   █
█           █       █     █   █                 █
█           █ █     █     █   █   █     █ █     █
█       █   █ █     █     █   █   █     █ █     █
█       █   █ █     █     █   █ █ █     █ █     █
█       █   █ █     █     █   █ █ █     █ █     █
█       █ █ █ █ █   █     █   █ █ █     █ █ █   █
█       █ █ █ █ █   █ █   █ █ █ █ █ █   █ █ █ █ █
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █

We will look at things like file manipulation, file conversion, password generation, ascii art and even some games. This book is inspired by Peteris Krumins’ Perl One Liners.

Note

Judge me by my size, do you? Hmm, hmm. - Yoda.

Lets get started.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK