Home Blog Knowledge Learning Projects Resources
Index Python Bash

Cheatsheet for Python 3

#!/usr/bin/python3

def main():

    ######################################################################
    # argparse - https://docs.python.org/3/library/argparse.html
    ######################################################################
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument("--train", action="store_true", help="optional argument, stores a true/false value")
    parser.add_argument("-steps",type=int, help="optional argument, followed by a int value")
    parser.add_argument("-episodes", type=int, help="optional argument, followed by a int value")

    args = parser.parse_args()

    args_example = ["--train", "-episodes=5", "-steps", "6"]
    args = parser.parse_args(args_example)

    if args.train:
        print(args.steps, args.episodes) # prints (6, 5)



    print("(double EOF to skip)")
    ######################################################################
    # read from stdin
    ######################################################################
    import fileinput
    for line in fileinput.input():
        print(line)



    ######################################################################
    # read from file
    ######################################################################
    file_name = None
    for line in fileinput.input(file_name):
        print(line)



    ######################################################################
    # random
    ######################################################################
    import datetime, random, time
    import numpy as np

    seed = hash(datetime.datetime.now())
    random.seed(seed)
    # r = random.randint(1, 3)
    r = np.random.randint(1, 3)
    print("sleeping for {} seconds with seed={}".format(r,seed))
    time.sleep(r)



    ######################################################################
    # progressbar - https://pypi.org/project/progressbar2/
    ######################################################################
    import progressbar

    max_val = 10
    widgets=[
        progressbar.DynamicMessage("seed_val"),
        ' [', progressbar.Timer(), '] ',
        progressbar.Bar(),
        ' (', progressbar.ETA(), ') ',
    ]
    bar = progressbar.ProgressBar(max_value=max_val, widgets=widgets)
    for i in range(max_val):
            bar.update(i, seed_val=seed)
            time.sleep(1)



    ######################################################################
    # statistics - https://docs.scipy.org/doc/scipy/reference/stats.html
    ######################################################################
    import numpy as np
    import scipy.stats as stats
    np.random.seed(666)
    values = np.random.random((100,))*1000 + 1000 # 1000-2000

    mean = np.mean(values)
    percentiles = [25, 50, 75]
    scores = stats.scoreatpercentile(values, percentiles)
    print(mean)
    print(scores)




if __name__ == "__main__":
    main()