diff options
Diffstat (limited to 'templates/site/tutorials/python')
| -rw-r--r-- | templates/site/tutorials/python/.description | 1 | ||||
| -rw-r--r-- | templates/site/tutorials/python/py-style.md | 93 | ||||
| -rw-r--r-- | templates/site/tutorials/python/test.py | 2 | 
3 files changed, 96 insertions, 0 deletions
| diff --git a/templates/site/tutorials/python/.description b/templates/site/tutorials/python/.description new file mode 100644 index 0000000..d69e5c3 --- /dev/null +++ b/templates/site/tutorials/python/.description @@ -0,0 +1 @@ +Some basics and thoughts on Python diff --git a/templates/site/tutorials/python/py-style.md b/templates/site/tutorials/python/py-style.md new file mode 100644 index 0000000..2a68fac --- /dev/null +++ b/templates/site/tutorials/python/py-style.md @@ -0,0 +1,93 @@ +# Coding Style Guide + +The purpose of this document is twofold: +1) To ensure that anyone who might like to make my code better understands +    why I write python the way I do +2) to ensure *I* adhere to my own style because I'm terribly inconsistent + +Being terribly inconsistent, the guidelines are not set in stone and if +you have a good argument for doing things a particular, I don't really care. + +*BUT* first and foremost, *code must comply with PEP8 first*. This is easy +to automate. I like coala since it's friendly but there' plenty of advanced +linters out there. + +That aside, I have the following idiosyncracies: + +## 1) *Strings* are *double-quoted*. *Keys* and *chars* are *single-quoted*. + +This is really just because I like how C does it. And Cpython's C-based so +why not? + +Like so: +    ``` +    string = "This is a phrase" +    word = "word" +    cur_char = 'a' +    newline = '\n' # note, two characters, but it's still ONE char in output +    # keys are single-quoted to avoid confusion +    dictionary = { 'key' : "1245dqw3w431", 'return': newline } +    ``` + +The only exception is for strings with quotes in them (anything to avoid +escapes, really) +    ``` +    quoted_string = ( +        '"You miss 100% of the shots you don't take - Wayne Gretsky" - Michael Scott' +    ) +    ``` +That brings me to my next point. + +## 2) Long strings belong in parentheses + +As in: +    ``` +    longboi = ( +        "This is a really long string usefull when making help menus. Be\n" +        "sure to leave s space at the end of each line, or add a new line\n" +        "when needed.\n" + +        "Try your best to keep formatting accurate like this." +    ) +    ``` + +## 3) Tabs are four spaces and spaces are *ALWAYS* prefered to tabs +Again, see PEP8. + +## 4) Always add spaces between arithmetic, but never for brackets +It's a pain to read: +    ``` +    1/(2*sqrt(pi))*exp(x**2) +    ``` +Do this +    ``` +    1 / (2 * sqrt(pi)) * exp(x ** 2) +    ``` +The same goes for logic operators +    ``` +    true & false ^ true +    ``` + +## 5) EVERYTHING should be snake_case +This is python. Unless there's a compatibility thing (like a library's +code was written that way, or it matches an API variable),  +snake_case is preferred. +    ``` + +    user_input = int(input()) # variable +    MAX_INPUT = 1000 # constant +    def judge_input(_input, _max): # function +        if _max > _input: +            print("Too big!") + +    judge_input(user_input, MAX_INPUT +    class Input_Judger: # a class +        # etc etc +    ``` +Example exception +    ``` +    # this doesn't actually work, but you get the idea +    r = requests.get("www.debian.org") +    pageSize = r.json()['pageSize'] # camel case ok +    ``` + diff --git a/templates/site/tutorials/python/test.py b/templates/site/tutorials/python/test.py new file mode 100644 index 0000000..83b87a6 --- /dev/null +++ b/templates/site/tutorials/python/test.py @@ -0,0 +1,2 @@ +#!/usr/bin/python3 +print("hi") | 
