Skip to content

Instantly share code, notes, and snippets.

@sriharsha0806
Created September 18, 2016 06:28
Show Gist options
  • Save sriharsha0806/0210035fc6368538a53bd89b36392383 to your computer and use it in GitHub Desktop.
Save sriharsha0806/0210035fc6368538a53bd89b36392383 to your computer and use it in GitHub Desktop.
Welcome to the Tutorial wiki! I have used the following reference to learn python programming "https://github.com/kuleshov/cs228-material/blob/master/tutorials/python/cs228-python-tutorial.ipynb" Some commands are not working like s.replace() of string operations.
{
"cells": [
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7efc296b57b8>]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAEACAYAAABbMHZzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XeYVdW9xvHvj6aowQKKDVEsaFARYkEsjIBIBwEDKsYW\nS4oxJjFibnLh5iZRk2ByjYlEY0EioijIgCBFHIxYQLGA0pRuAUWNRMAMzLp/rJmIOsOUs89Zu7yf\n55nHmcOZvd85nvnN2muvYs45REQkW+qFDiAiIoWn4i8ikkEq/iIiGaTiLyKSQSr+IiIZpOIvIpJB\nkRR/M7vbzNab2Ws7ec5tZrbczF4xsxOiOK+IiNRNVC3/e4FzqvpHM+sBHO6cOxK4ChgV0XlFRKQO\nIin+zrlngI928pR+wP3lz30B2NPMmkdxbhERqb1C9fkfBKzd4eu3yx8TEZEAdMNXRCSDGhToPG8D\nLXb4+uDyx77CzLTYkIhILTnnrDbPj7Llb+UflSkGvgVgZh2Aj51z66s6kHMuMR8bNjh69nS0b+8Y\nN87x2Wc7f/7SpY7u3R1HH+2YOXPnzx0+fHjwny8OH3od0v9abN/uuO02R9Omjptvdrz//s6f/8kn\njm7dhtO0qeO3v3WUlob/GUJ+1EVUQz3HAs8CR5nZGjO71MyuMrMry4v5VGClmb0J/BX4bhTnDW32\nbGjXDo47Dp5/HgYPhkaNdv49Rx0FU6fCLbfAFVfAj38MZWWFySsSR2vWQNeu8OCD8OyzcMMN0KzZ\nzr/na1+DU0+FefNg+nTo0AFWrChM3rSIpNvHOXdBDZ7z/SjOFRd/+hPcdBOMHg1nn1277zWDvn3h\njDOgd2+45BK4+25o2DAvUUVia8UKOOssuPJKGDYM6tev3fe3agUzZ8Jtt0FREcya5RtYUj3d8K2D\nu+6CkSN9a7+2hX9He+/t37gffAADBsCWLV/896KiopxypoVeh8+l6bV46y1f+IcNg//6r9oX/orX\nwgyuvRZGjPDHe+ONyKOmktW1vyhfzMzFLdOOxo6F66+HkhI48shojllaCpdeCuvXw7Rp0KBQt+FF\nAnnrLejcGW68Ea6+Orrj/v3v/vdz+nQ4/vjojht3Zoar5Q1fFf9amDQJrrrKX1oee2y0x96+3XcB\ntW4Nf/xjtMcWiZMPP4QTT4Sf/jTawl/hwQf9fYOXXoJ9943++HGk4p9HS5fCaaf5lvlJJ+XnHB99\nBKec4ltDl16an3OIhFRW5u93tW7tu07z5cYbYf58fwVQ2+6kJFLxz5OtW/1ogquvzk9LZUeLF0On\nTlBc7M8pkiY33wyTJ/tu03wOcNi2Dbp3h5NPht/8Jn/niQsV/zy55hp4910YP97fXMq3yZPhO9+B\nV1+Fpk3zfz6RQigpgSFD4MUX4eCD83++99+Hb3zDj8zr1y//5wtJxT8PHnsMrrsOXn4Z9tqrcOe9\n7jo/CmjMmMKdUyRfNmzwc2LuvRe6dSvceV94Afr0gVdegQMPLNx5C03FP2LvvQdt2/obvYXugvn0\nUz957PbboWfPwp5bJGoXXQTNm8Pvf1/4c//857BkCTzySOHPXSgq/hEbOtRfnt58c5jzP/mkv/G7\naBE0aRImg0iunnwSLr8cXn8ddt+98OffutUP+xw50l8FpJGKf4TmzPGtlcWLw7xhK1xxhR/3f8cd\n4TKI1FVcCu/s2X4m/euv+6Uh0kbFPyKlpb5/8n/+BwYODBqFjz/2cwrGjoUzzwybRaS2RoyA116D\nCRNCJ/FX0Xvumc55NCr+Efn97/1ErmnTCjO6pzrjxvlM8+ZBPS3IIQlRMTfmlVcKM7qnOhs3Qps2\nfmHF9u1Dp4mWin8E1q2DE06A556LbvmGXJWV+RvO110H558fOo1IzfTp4xdb+/GPQyf53F//6ods\nz5oVOkm0VPwjcNllsP/+8ZsYMmeO77NcsgR22SV0GpGdmzsXLrgAli2L1/u1tNS3/v/859wWZYwb\nFf8cLVvmL1OXLy/smP6a6tvXt6R+9KPQSUSq5pyfpX7ZZb7BEjcPP+z305g/Pz3dqHUp/in50aMx\nYoTvWolj4Qc/5PTmm/0aQCJx9cQTfoLiRReFTlK5QYP8vbw0j/uvCbX8yy1c6C8D33wT9tij4Kev\nsSuv9CMWfve70ElEvqqszC+p8Itf+D0q4mrWLL+EyhtvpGMTJbX8czB8uF9iNs6FH3zOu+/265aI\nxM348b6Ynntu6CQ717UrHHqo/13KKrX88et+9+3rW/2NGxf01HVy9dV+j9Nf/Sp0EpHPbd8OX/86\n/OUv0KVL6DTVmzfPdwG99VbyW/9q+dfRf/+330YuCYUf/BXKqFHwz3+GTiLyuYkT/Sq0nTuHTlIz\nJ5/sh3M/+GDoJGFkvvgvXOhX7Lz88tBJaq5VK79WuZZ8kLhwzo+g+elP4zExsqaGDfO5y8pCJym8\nzBf/kSP9ev1xGotcEzfe6Kepb94cOomIX6t/0ybffZokXbvCrrvC44+HTlJ4mS7+b7/td8zK9+5c\n+dCmDZx6arZvWEl83HKL3zg9aePmzfx+vzfd5K9esiTTN3xvuAE++yy5Cz3Nn+8XnnvzTWjUKHQa\nyapXXoFevWDFiuRdQYO/Ud26td9o5owzQqepG93wrYVPPoG//Q1++MPQSerupJPgiCPisWKiZNdv\nf+t/j5JY+MFv8P7Tn4bbtyOUzLb8b73Vt5yTfqd/4kQ/4evZZ0MnkSxatcpP6lqxwk8+TKqtW/24\n/6eegmOOCZ2m9tTyr6HSUt/V85OfhE6Suz59/L2Ll14KnUSy6I474OKLk134wd/0veIKP0chKzLZ\n8h8/3u+NO2dOXk9TML/9rZ+mft99oZNIlmzdCi1a+KvOuCx/not16/yuY6tXJ2+3L7X8a+iOO+C7\n3w2dIjqXX+43md+wIXQSyZKHHvJdPmko/OA3nOncGcaMCZ2kMDJX/Jcs8fvyxn3tkdpo2tSP+rnr\nrtBJJEv+8hf43vdCp4jW977n1/qPWYdIXmSu+I8a5dcZT9vQyGuu8Vc0paWhk0gWvPgirF8PPXuG\nThKtoiL/35KSkCkKI1PFf/Nmf0l35ZWhk0SvbVs4/HB47LHQSSQL/vxnPzmyfv3QSaJl9nnrP+0y\ndcP3nnv8mPgpU/Jy+ODGjfM/44wZoZNImm3c6OeXLFsG++4bOk30Nm2Cli3h1Vf9De0k0A3fatxx\nh9/AIa3694cFC2DlytBJJM3uu88PMU5j4Qc/0ueCC9K/dEpmiv+LL/oNULp3D50kf3bdFS680E9T\nF8kH5/zM+DR2ne7o8sv9H7k0r/aZmeJ/113+DZu2Psovu/xyX/y3bw+dRNLo+ed9QTzttNBJ8qtd\nO9h7b5g9O3SS/MlE8d+82U/suvji0Eny7/jj4cAD1e8v+XHPPXDppclas7+uLrvM/7xplYkbvg88\n4Ef5PPFEpIeNrTvvhOnT4dFHQyeRNPn0Uz8R6vXXfQMj7T780G+ctHKlvwqIM93wrcJ99/nWSlYM\nGeIvV9evD51E0uTRR313TxYKP8A++/h7hGPHhk6SH6kv/mvW+BEw/fqFTlI4TZr4GcxZmaYuhXHP\nPb4rJEsuvzy9XT+pL/733w+DB/uRMFlS8aaNWa+eJNSbb/rFA3v3Dp2ksDp3hg8+8BvWpE2qi79z\n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\nRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7efc2b996a58>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x = np.arange(0,3*np.pi,0.1)\n",
"y = np.sin(x)\n",
"#plot the points using matplotlib\n",
"plt.plot(x,y)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7efc290e1550>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nnEvKfwE4bo/iU/5XKwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7efc2963f320>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"y_cos = np.cos(x)\n",
"y_sin = np.sin(x)\n",
"# plot the points using matplotlib\n",
"plt.plot(x, y_sin)\n",
"plt.plot(x,y_cos)\n",
"plt.xlabel('x axis label')\n",
"plt.ylabel('y axis label')\n",
"plt.title('Sine and Cosine')\n",
"plt.legend(['Sine','Cosine'])"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[6 7]]\n"
]
}
],
"source": [
"import numpy as np\n",
"# Create the following ranl 2 array with shape (3,4)\n",
"# [[1 2 3 4]\n",
"# [5 6 7 8]\n",
"# [9 10 11 12]]\n",
"a = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])\n",
"# Use slicing to pull out the subsisdiary consisting of the first 2 rows\n",
"# and columns 1 and 2; b is the following array of shape (2,2):\n",
"# [[2,3]\n",
"# [6,7]]\n",
"b = a[1:2,1:3] # The slicing operation is a little bit weird for matlab user\n",
"print(b)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python [Root]",
"language": "python",
"name": "Python [Root]"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
{
"cells": [
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1, 1, 2, 3, 6, 8, 10]\n"
]
}
],
"source": [
"\"\"\"Python is a high-level,dynamically typed multiparadigm language. Python code is often said to be almost like \n",
"pseudocode,since it allows you to express very powerful ideas in very few lines of code while being very readable\"\"\"\n",
"# quicksort\n",
"import numpy as np\n",
"def quicksort(arr):\n",
" if len(arr) <= 1:\n",
" return arr\n",
" pivot = arr[np.uint8(len(arr)/2)]\n",
" left = [x for x in arr if x < pivot]\n",
" middle = [x for x in arr if x == pivot]\n",
" right = [x for x in arr if x> pivot]\n",
" return quicksort(left)+middle+quicksort(right)\n",
"print(quicksort(np.uint8([3,6,8,10,1,2,1])))"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3 <class 'int'>\n"
]
}
],
"source": [
"# Basic data Types\n",
"# numbers\n",
"x = 3\n",
"print (x, type(x))"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"4\n",
"2\n",
"6\n",
"9\n"
]
}
],
"source": [
"print(x+1) # addition\n",
"print(x-1) # subtraction\n",
"print(x*2) # Multiplication\n",
"print(x**2)# Exponentiation"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"4\n",
"8\n",
"6\n"
]
}
],
"source": [
"x += 1 \n",
"print(x) # prints \"4\"\n",
"x *= 2\n",
"print(x) # prints \"8\"\n",
"x -=2 \n",
"print(x) # prints \"6\""
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'float'>\n",
"2.5 3.5 5.0 6.25\n"
]
}
],
"source": [
"y = 2.5\n",
"print(type(y)) # prints \"<type 'float'>\"\n",
"print(y,y+1,y*2,y**2) #prints \"2.5 3.5 5.0 6.25\""
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'bool'>\n",
"False\n",
"True\n",
"False\n",
"True\n"
]
}
],
"source": [
"t,f = True, False\n",
"print(type(t)) # prints \"<type 'bool'>\"\n",
"print (t and f) # logical AND;\n",
"print (t or f) # logical OR;\n",
"print (not t) # logical NOT;\n",
"print (t!=f) #logical Xor;"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"ename": "SyntaxError",
"evalue": "unexpected EOF while parsing (<ipython-input-16-9ffbc4f99f3d>, line 16)",
"output_type": "error",
"traceback": [
"\u001b[1;36m File \u001b[1;32m\"<ipython-input-16-9ffbc4f99f3d>\"\u001b[1;36m, line \u001b[1;32m16\u001b[0m\n\u001b[1;33m #print(' world '.strip()) # strip leading and trailing whitespace; prints \"world\"\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m unexpected EOF while parsing\n"
]
}
],
"source": [
"hello = 'hello' # string literals can use single quotes\n",
"world = \"world\" # 04 Double quotes; it does not matter.\n",
"print(hello,len(hello))\n",
"# string concatenation\n",
"hw = hello + '' + world # string concatenation\n",
"print(hw) # prints \"hello world\"\n",
"hw12 = '%s %s %d' %(hello,world,12) # sprintf style string formatting\n",
"print(hw12) # prints\"hello world 12\"\n",
"s = \"hello\"\n",
"print( s.capitalize()) # capitalize a string; prints \"Hello\"\n",
"print(s.upper()) # Convert a string to uppercase; prints \"HELLO\"\n",
"print(s.rjust(7))# Right-justify a string, padding with spaces; print \" hello\"\n",
"print(s.center(7) # center a string, padding with spaces; prints \" hello \"\n",
"#print(s.replace('l','(ell)'))# Replace all instances of one substring with another;\n",
" #prints \"he(ell)(ell)o\"\n",
"#print(' world '.strip()) # strip leading and trailing whitespace; prints \"world\""
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[3, 1, 2] 2\n",
"[3, 1, 'foo']\n",
"[3, 1, 'foo', 'bar']\n",
"bar\n"
]
}
],
"source": [
"# Containers - Python includes several built-in container types: lists, dictionaries, sets and tuples.\n",
"# Lists - A List is the python equivalent of an array, but is resizeable and \n",
"# can contain elements of different types\n",
"xs = [3,1,2] # Create a List\n",
"print(xs,xs[2])\n",
"#print xs[-1] # Negative indices count from the end of the list; prints \"2\"\n",
"xs[2] = 'foo' # Lists can contain elements of different types\n",
"print(xs)\n",
"xs.append('bar') # Lists cana contain elements of different types\n",
"print(xs)\n",
"x=xs.pop() # Remove and Return the last element of the list\n",
"print(x)\n"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"foo\n"
]
}
],
"source": [
"x=xs.pop() # Remove and Return the last element of the list\n",
"print(x)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"range(0, 5)\n",
"range(2, 4)\n",
"range(2, 5)\n",
"range(0, 2)\n"
]
}
],
"source": [
"# Slicing : In addition to accessing list elements one at a time, \n",
"# Python provides concise syntax to access sublists; This is known as slicing\n",
"nums = range(5) # range is a built-in function that creates a list of integers\n",
"print(nums) # Prints \"[0,1,2,3,4]\"\n",
"print(nums[2:4]) # Get a slice from index 2 to 4 (exclusive); prints \"[2,3]\"\n",
"print(nums[2:]) # Get a slice from index 2 to the end; prints \"[2,3,4]\"\n",
"print(nums[:2]) # Get a slice from the start to index 2 (exclusive); prints \"[0,1]\"\n",
"#print(nums[:]) # Get a slice of the whole list; prints [\"0,1,2,3,4\"]\n",
"#print(nums[:-1]) # slice indices can be negative; prints [0,1,2,3]\n",
"#nums[2:4] = [8,9] # Assign a new sublist to a slice\n",
"#print(nums) # Prints \"[0,1,8,9,4]\""
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"cat\n",
"dog\n",
"monkey\n"
]
}
],
"source": [
"# Loops\n",
"animals = ['cat','dog','monkey']\n",
"for animal in animals:\n",
" print (animal)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"#1: cat\n",
"#2: dog\n",
"#3: monkey\n"
]
}
],
"source": [
"# If we want to access to the index of each element within the body of a loop. use the built-in enumerate function:\n",
"animals = ['cat','dog','monkey']\n",
"for idx, animal in enumerate(animals):\n",
" print('#%d: %s' %(idx+1, animal))"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0, 1, 4, 9, 16]\n",
"[0, 1, 4, 9, 16]\n"
]
}
],
"source": [
"# List comprehensions: When programming, frequently we want to transform one type of data into another. As a \n",
"# simple example, consider the following:\n",
"nums = [0,1,2,3,4]\n",
"squares = []\n",
"for x in nums: \n",
" squares.append(x**2)\n",
"print(squares)\n",
"# you can make this code simpler using a list comprehension:\n",
"nums = [0,1,2,3,4]\n",
"squares = [x**2 for x in nums]\n",
"print (squares)"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0, 4, 16]\n"
]
}
],
"source": [
"nums = [0,1,2,3,4] \n",
"even_squares = [x**2 for x in nums if x%2 == 0] \n",
"print(even_squares)"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"cute\n",
"True\n"
]
}
],
"source": [
"# Dictionaries : A dictionary stores (key,value) pairs, similar to a Map in JAVA or an object in Javascript\n",
"d = {'cat':'cute','dog':'furry'} # Create a new dictionary with some data\n",
"print(d['cat']) # Get an entry from a dictionary, prints \"cute\"\n",
"print('cat' in d) # Check if dictionary has a given key; prints \"True\"\n"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": false
},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'monkey' is not defined",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m<ipython-input-37-4d77223504ed>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0md\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mmonkey\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;31m# KeyError: 'monkey' not a key of d\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[1;31mNameError\u001b[0m: name 'monkey' is not defined"
]
}
],
"source": [
"print(d[monkey]) # KeyError: 'monkey' not a key of d"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"N/A\n",
"wet\n",
"{'dog': 'furry', 'cat': 'cute'}\n"
]
}
],
"source": [
"print(d.get('monkey','N/A')) # Get an element with a default; prints \"N/A\"\n",
"print(d.get('fish','wet')) # Get an element with a default; prints \"wet\"\n",
"print(d)"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": false
},
"outputs": [
{
"ename": "KeyError",
"evalue": "'fish'",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m<ipython-input-42-a04978364b1f>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;32mdel\u001b[0m \u001b[0md\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'fish'\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;31m# Remove an element from a dictionary\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0md\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'fish'\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;34m'N/A'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;31m# 'fish' is no longer a key; prints \"N/A\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0md\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;31mKeyError\u001b[0m: 'fish'"
]
}
],
"source": [
"del d['fish'] # Remove an element from a dictionary\n",
"print(d.get('fish','N/A')) # 'fish' is no longer a key; prints \"N/A\"\n"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"collapsed": false
},
"outputs": [
{
"ename": "AttributeError",
"evalue": "'dict' object has no attribute 'iteritems'",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m<ipython-input-45-76b5d387da60>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# It is easy to iterate over the keys in a dictionary:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[0md\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m{\u001b[0m\u001b[1;34m'person'\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;36m2\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;34m'cat'\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;36m4\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;34m'spider'\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;36m8\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[1;32mfor\u001b[0m \u001b[0manimal\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mlegs\u001b[0m \u001b[1;32min\u001b[0m \u001b[0md\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0miteritems\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 4\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'A %s has %d legs'\u001b[0m\u001b[1;33m%\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0manimal\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mlegs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;31mAttributeError\u001b[0m: 'dict' object has no attribute 'iteritems'"
]
}
],
"source": [
"# It is easy to iterate over the keys in a dictionary:\n",
"d = {'person':2,'cat':4,'spider':8}\n",
"for animal,legs in d.iteritems():\n",
" print('A %s has %d legs'%(animal,legs)) "
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{0: 0, 2: 4, 4: 16}\n"
]
}
],
"source": [
"nums = [0,1,2,3,4]\n",
"even_num_square = {x:x**2 for x in nums if x % 2 == 0}\n",
"print(even_num_square)"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"True\n",
"False\n"
]
}
],
"source": [
"#sets A set is a collection of distinct elements. As a simple example, consider the following:\n",
"animals = {'cat','dog'}\n",
"print('cat' in animals) # check if an element is in a set; prints \"True\"\n",
"print('fish' in animals) # prints False"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"True\n",
"3\n"
]
}
],
"source": [
"animals.add('fish') # Add an element to a set\n",
"print('fish'in animals)\n",
"print(len(animals)) # Number of elements in a set"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3\n",
"2\n"
]
}
],
"source": [
"animals.add('cat') # Adding an element that is already in the set does nothing\n",
"print(len(animals))\n",
"animals.remove('dog') # removing an element that is already in the set\n",
"print(len(animals))"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"#1: dog\n",
"#2: fish\n",
"#3: cat\n"
]
}
],
"source": [
"# Loops: iterating over a set has the same syntax as iterating over a list; however since sets are unordered\n",
"# you cannot make assumptions about the order in which you can visit the elements of the set:\n",
"animals = {'cat','dog','fish'}\n",
"for idx,animal in enumerate(animals):\n",
" print('#%d: %s'%(idx+1, animal))"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{0, 1, 2, 3, 4, 5}\n"
]
}
],
"source": [
"# set comprehensions:like lists and dictionaries, we can easily construct sets using set comprehensions\"\n",
"from math import sqrt\n",
"print({int(sqrt(x)) for x in range(30)})"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'tuple'>\n",
"5\n",
"1\n"
]
}
],
"source": [
"# Tuples A Tuple is an (immutable) ordered list of values. A tuple is in many ways similar to a list; \n",
"# one of the most important differences is that tuples can be used as keys in dictionaries and as elements if sets,\n",
"# while lists cannot. \n",
"d = {(x,x + 1): x for x in range(10)} #Create a dictionary with tuple keys\n",
"t = (5,6) # Create a Tuple\n",
"print(type(t))\n",
"print(d[t])\n",
"print(d[(1,2)])"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"collapsed": false
},
"outputs": [
{
"ename": "TypeError",
"evalue": "'tuple' object does not support item assignment",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m<ipython-input-57-9c0b399baae2>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# Tuples cannnot be change unlike lists\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mt\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[1;31mTypeError\u001b[0m: 'tuple' object does not support item assignment"
]
}
],
"source": [
"# Tuples cannnot be change unlike lists\n",
"t[0] = 1"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"negative\n",
"zero\n",
"positive\n"
]
}
],
"source": [
"# Functions\n",
"def sign(x):\n",
" if x > 0:\n",
" return 'positive'\n",
" elif x < 0:\n",
" return 'negative'\n",
" else:\n",
" return 'zero'\n",
" \n",
"for x in [-1,0,1]:\n",
" print(sign(x))"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Hello, Bob!\n",
"HELLO, FRED\n"
]
}
],
"source": [
"# We will often define functions to take optional keywords arguments, like this:\n",
"def hello(name, loud = False):\n",
" if loud:\n",
" print('HELLO, %s' % name.upper())\n",
" else:\n",
" print('Hello, %s!'%name)\n",
"hello('Bob')\n",
"hello('Fred', loud = True)"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Hello, Fred\n",
"HELLO, FRED!\n"
]
}
],
"source": [
"# The syntax for defininf classes in Python is straightforward:\n",
"class Greeter:\n",
" \n",
" # constructor\n",
" def __init__(self, name):\n",
" self.name = name # create an instance variable\n",
" \n",
" # Instance method\n",
" def greet(self, loud = False):\n",
" if loud:\n",
" print('HELLO, %s!' % self.name.upper())\n",
" else:\n",
" print('Hello, %s' % self.name)\n",
"g = Greeter('Fred') # Construct an instance of the greeter class\n",
"g.greet() # Call an instance method; prints \"Hello, Fred\"\n",
"g.greet(loud=True) # Call an instance method; prints \"HELLO,FRED!\""
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python [Root]",
"language": "python",
"name": "Python [Root]"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment