diff --git a/python.html.markdown b/python.html.markdown index 168f1ea1..615ee249 100644 --- a/python.html.markdown +++ b/python.html.markdown @@ -106,7 +106,8 @@ li[-1] #=> 4 # Looking out of bounds is an IndexError li[4] # Raises an IndexError -# You can look at ranges with slice syntax. It's an closed/open range for you mathy types. +# You can look at ranges with slice syntax. +# (It's a closed/open range for you mathy types.) li[1:3] #=> [2, 4] # Omit the beginning li[:3] #=> [1, 2, 4] @@ -233,7 +234,8 @@ while x < 4: # Handle exceptions with a try/except block try: - raise IndexError("This is an index error") # Use raise to raise an error + # Use raise to raise an error + raise IndexError("This is an index error") except IndexError as e: pass # Pass is just a no-op. Usually you would do recovery here. @@ -252,20 +254,26 @@ add(5, 6) #=> 11 and prints out "x is 5 and y is 6" # Another way to call functions is with keyword arguments add(y=6, x=5) # Keyword arguments can arrive in any order. -# You can define functions that take a variable number of positional arguments +# You can define functions that take a variable number of +# positional arguments def varargs(*args): return args varargs(1, 2, 3) #=> (1,2,3) -# You can define functions that take a variable number of keyword arguments +# You can define functions that take a variable number of +# keyword arguments, as well def keyword_args(**kwargs): return kwargs # Let's call it to see what happens keyword_args(big="foot", loch="ness") #=> {"big": "foot", "loch": "ness"} +# You can do both at once, if you like +def all_the_args(*args, **kwargs): + pass + # Python has first class functions def create_adder(x):