Learn Python in 10 Minutes - Stavros' Stuff
Learn Python in 10 Minutes - Stavros' Stuff
Help in Python is always available right in the interpreter. ∠ Securing your users'
If you want to know how an object works, all you have to authentication
∠ A simple guide to PID
do is call help(<object>) ! Also useful are dir() ,
control
which shows you all the object’s methods, and
∠ How to easily
<object>.__doc__ , which shows you its
configure WireGuard
documentation string:
∠ Kubernetes 101
∠ A short 3D printer
>>> help(5)
primer
Help on int object:
(etc etc) ∠ On increasing
productivity
>>> dir(5)
['__abs__', '__add__', ...] ∠ Startup Mistakes:
Choice of Datastore
>>> abs.__doc__
'abs(number) -> number ∠ How to deploy
Django on Dokku
Return the absolute value of the argument.
∠ The scourge of web
analytics
Syntax
Python has no mandatory statement termination
characters and blocks are specified by indentation.
Indent to begin a block, dedent to end one. Statements
that expect an indentation level end in a colon (:).
Comments start with the pound (#) sign and are single-
line, multi-line strings are used for multi-line comments.
Values are assigned (in fact, objects are bound to names)
with the equals sign (“=”), and equality testing is done
using two equals signs (“==”). You can
increment/decrement values using the += and -=
operators respectively by the right-hand amount. This
works on many datatypes, strings included. You can also
use multiple variables on one line. For example:
>>> myvar = 3
>>> myvar += 2
>>> myvar
5
>>> myvar -= 1
>>> myvar
4
"""This is a multiline comment.
The following lines concatenate the two string
s."""
>>> mystring = "Hello"
>>> mystring += " world."
>>> print(mystring)
Hello world.
# This swaps the variables in one line(!).
# It doesn't violate strong typing because val
ues aren't
# actually being assigned, but new objects are
bound to
# the old names.
>>> myvar, mystring = mystring, myvar
Data types
The data structures available in python are lists, tuples
and dictionaries. Sets are available in the sets library
(but are built-in in Python 2.5 and later). Lists are like one-
dimensional arrays (but you can also have lists of other
lists), dictionaries are associative arrays (a.k.a. hash
tables) and tuples are immutable one-dimensional arrays
(Python “arrays” can be of any type, so you can mix e.g.
integers, strings, etc in lists/dictionaries/tuples). The index
of the first item in all array types is 0. Negative numbers
count from the end towards the beginning, -1 is the last
item. Variables can point to functions. The usage is as
follows:
You can access array ranges using a colon (:). Leaving the
start index empty assumes the first item, leaving the end
index assumes the last item. Indexing is inclusive-
exclusive, so specifying [2:10] will return items [2]
(the third item, because of 0-indexing) to [9] (the tenth
item), inclusive (8 items). Negative indexes count from the
last item backwards (thus -1 is the last item) like so:
strString = """This is
a multiline
string."""
rangelist = list(range(10))
>>> print(rangelist)
range(0, 10)
>>> print(list(rangelist))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
if rangelist[1] == 2:
print("The second item (lists are 0-based)
is 2")
elif rangelist[1] == 3:
print("The second item (lists are 0-based)
is 3")
else:
print("Dunno")
while rangelist[1] == 1:
print("We are trapped in an infinite loop!
")
Functions
Functions are declared with the def keyword. Optional
arguments are set in the function declaration after the
mandatory arguments by being assigned a default value.
For named arguments, the name of the argument is
assigned a value. Functions can return a tuple (and using
tuple unpacking you can effectively return multiple
values). Lambda functions are ad hoc functions that are
comprised of a single statement. Parameters are passed
by reference, but immutable types (tuples, ints, strings,
etc) cannot be changed in the caller by the callee. This is
because only the memory location of the item is passed,
and binding another object to a variable discards the old
one, so immutable types are replaced. For example:
Classes
Python supports a limited form of multiple inheritance in
classes. Private variables and methods can be declared
(by convention, this is not enforced by the language) by
adding a leading underscore (e.g. _spam ). We can also
bind arbitrary names to class instances. An example
follows:
class MyClass(object):
common = 10
def __init__(self):
self.myvariable = 3
def myfunction(self, arg1, arg2):
return self.myvariable
Exceptions
Exceptions in Python are handled with try-except
[exceptionname] blocks:
def some_function():
try:
# Division by zero raises an exception
10 / 0
except ZeroDivisionError:
print("Oops, invalid.")
else:
# Exception didn't occur, we're good.
pass
finally:
# This is executed after the code bloc
k is run
# and all exceptions have been handled
, even
# if a new exception is raised while h
andling.
print("We're done with that.")
>>> some_function()
Oops, invalid.
We're done with that.
Importing
External libraries are used with the import
[libname] keyword. You can also use from
[libname] import [funcname] for individual
functions. Here is an example:
import random
from time import clock
File I/O
Python has a wide array of libraries built in. As an
example, here is how serializing (converting data
structures to strings using the pickle library) with file
I/O is used:
import pickle
mylist = ["This", "is", 4, 13327]
# Open the file C:\\binary.dat for writing. Th
e letter r before the
# filename string is used to prevent backslash
escaping.
myfile = open(r"C:\\binary.dat", "wb")
pickle.dump(mylist, myfile)
myfile.close()
myfile = open(r"C:\\text.txt")
>>> print(myfile.read())
'This is a sample string'
myfile.close()
def myfunc():
# This will print 5.
print(number)
def anotherfunc():
# This raises an exception because the var
iable has not
# been bound before printing. Python knows
that it an
# object will be bound to it later and cre
ates a new, local
# object instead of accessing the global o
ne.
print(number)
number = 3
def yetanotherfunc():
global number
# This will correctly change the global.
number = 3
Epilogue
This tutorial is not meant to be an exhaustive list of all (or
even a subset) of Python. Python has a vast array of
libraries and much much more functionality which you will
have to discover through other means, such as the
excellent book Dive into Python. I hope I have made your
transition in Python easier. Please leave comments if you
believe there is something that could be improved or
added or if there is anything else you would like to see
(classes, error handling, anything).
Subscribe
$ ) * +
Login
Add a comment
Anonymous
A 0 points · 27 days ago
Anonymous
A 0 points · 20 days ago
That was a great terse intro. Just what I was looking for, thanks.
michael c
0 points · 16 days ago
really nicely done, thanks, helpful for my job interview for this
afternoon.
Anonymous
A 0 points · 9 days ago
This is helpful. Thank you!
Powered by Commento