summaryrefslogtreecommitdiffhomepage
path: root/python.html.markdown
diff options
context:
space:
mode:
authorMichael Lee <michael.lee.0x2a@gmail.com>2013-06-29 21:35:11 -0700
committerMichael Lee <michael.lee.0x2a@gmail.com>2013-06-29 21:35:11 -0700
commit79c26e6679948063036675b132a409b855d43cf1 (patch)
tree1d6894b97fa3822bbc027dc0da5c0ce096d77434 /python.html.markdown
parentdb04a0c728fde5386590753c53568d7b973349ae (diff)
Added a few lines about truthiness, how lists can contain arbitrary data types, how you can unpack both tuples and lists, using ange, assigning lambdas to variables, dictionary comprehensions, modules, and links to more info about the standard library.
Diffstat (limited to 'python.html.markdown')
-rw-r--r--python.html.markdown65
1 files changed, 63 insertions, 2 deletions
diff --git a/python.html.markdown b/python.html.markdown
index d1152b82..9c59a8d7 100644
--- a/python.html.markdown
+++ b/python.html.markdown
@@ -91,6 +91,16 @@ not False #=> True
# None is an object
None #=> None
+# Don't use the equality `==` symbol to compare objects to None
+# Use `is` instead
+"etc" is None #=> False
+None is None #=> True
+
+# None, 0, and empty strings/lists all evaluate to False.
+# All other values are True
+0 == False #=> True
+"" == False #=> True
+
####################################################
## 2. Variables and Collections
@@ -164,6 +174,9 @@ li.extend(other_li) # Now li is [1, 2, 3, 4, 5, 6]
# Examine the length with len
len(li) #=> 6
+# Note: lists can contain arbitrary values
+li2 = [1, "Hello", [[], "Hi", 5,]]
+
# Tuples are like lists but are immutable.
tup = (1, 2, 3)
tup[0] #=> 1
@@ -178,7 +191,7 @@ tup + (4, 5, 6) #=> (1, 2, 3, 4, 5, 6)
tup[:2] #=> (1, 2)
2 in tup #=> True
-# You can unpack tuples into variables
+# You can unpack tuples (or lists) into variables
a, b, c = (1, 2, 3) # a is now 1, b is now 2 and c is now 3
# Tuples are created by default if you leave out the parentheses
d, e, f = 4, 5, 6
@@ -276,6 +289,18 @@ prints:
for animal in ["dog", "cat", "mouse"]:
# You can use % to interpolate formatted strings
print "%s is a mammal" % animal
+
+"""
+`range(number)` returns a list of numbers
+from zero to the given number
+prints:
+ 0
+ 1
+ 2
+ 3
+"""
+for i in range(4):
+ print i
"""
While loops go until a condition is no longer met.
@@ -364,6 +389,8 @@ add_10(3) #=> 13
# There are also anonymous functions
(lambda x: x > 2)(3) #=> True
+rectangle_area = lambda a, b: a * b
+print rectangle_area(3, 4) #=> 12
# There are built-in higher order functions
map(add_10, [1,2,3]) #=> [11, 12, 13]
@@ -373,6 +400,9 @@ filter(lambda x: x > 5, [3, 4, 5, 6, 7]) #=> [6, 7]
[add_10(i) for i in [1, 2, 3]] #=> [11, 12, 13]
[x for x in [3, 4, 5, 6, 7] if x > 5] #=> [6, 7]
+# You can also use dictionary comprehensions
+{i: add_10(i) for i in [1, 2, 3]} #=> {1: 11, 2: 12, 3: 13}
+
####################################################
## 5. Classes
####################################################
@@ -388,7 +418,8 @@ class Human(object):
# Assign the argument to the instance's name attribute
self.name = name
- # An instance method. All methods take self as the first argument
+ # An instance method. All methods take self as the first argument,
+ # which refers to the instance of this class
def say(self, msg):
return "%s: %s" % (self.name, msg)
@@ -421,9 +452,39 @@ j.get_species() #=> "H. neanderthalensis"
# Call the static method
Human.grunt() #=> "*grunt*"
+
+
+####################################################
+## 6. Modules
+####################################################
+
+# You can import modules
+import math
+print math.sqrt(16) #=> 4
+
+# You can get specific functions from a module
+from math import ceil, floor
+print ceil(3.7) #=> 4.0
+print floor3.7) #=> 3.0
+
+# You can import all functions from a module.
+# Warning: this is not recommended
+from math import *
+
+# You can shorten module names
+import math as m
+math.sqrt(16) == m.sqrt(16) #=> True
+
+# Python modules are just ordinary python files. You
+# can write your own, and import them.
+
+
```
## Further Reading
Still up for more? Try [Learn Python The Hard Way](http://learnpythonthehardway.org/book/)
+Python has a huge amount of modules within the standard library. See the
+[official documentation](http://docs.python.org/2/library/index.html) or
+[Python Module of the Week](http://pymotw.com/2/) for more.