\n",
"
Exercise 20.Use a for loop to print your name vertically.\n",
" \n",
"
Exercise 21. Use a for loop to square the numbers 15, 27, 39 and 84.\n",
" \n",
"```\n",
"225\n",
"729\n",
"1521\n",
"7056\n",
"```\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 0,
"metadata": {
"collapsed": false,
"deletable": false,
"editable": false
},
"outputs": [
],
"source": [
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"A\n",
"n\n",
"d\n",
"r\n",
"e\n",
"w\n"
]
}
],
"source": [
"for char in \"Andrew\":\n",
" print(char)"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"225\n",
"729\n",
"1521\n",
"7056\n"
]
}
],
"source": [
"for char in [15,27,39,84]:\n",
" print(char^2)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false,
"deletable": false,
"editable": false
},
"source": [
"## Things to Do with Lists and Loops\n",
"\n",
"### Using loops to make lists\n",
"\n",
"In the previous exercises, you used loops to output values. Often, it is useful to\n",
"store these values in a list.\n",
"\n",
"To start, you’ll need to create a list with no elements. (Think of this as\n",
"tearing out a piece of paper and titling it “Groceries” when making a shopping\n",
"list.) To make such an empty list, enter `listname = []`. Then, use\n",
"`listname.append()` to add computed values to your list.\n",
"\n",
"**Example 6.** This code makes a list of the first ten multiples of 2.\n",
"```\n",
">>mult2 = [] #Set up empty list\n",
">>for n in [1,2,3,4,5,6,7,8,9,10]:\n",
">> mult2.append(2*n) #Compute the n’th multiple of 2 and append to list\n",
">>mult2 #Display the list\n",
"[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]\n",
"```\n",
"
\n",
"Exercise 22. Make a list containing the first five multiples of 3.
\n",
"[3, 6, 9, 12, 15]\n",
" \n",
"Exercise 23. Write a loop that makes a list of the squares of the numbers 0.1,\n",
"0.2, $\\dots$, 0.7. Then, plot your list.\n",
" \n",
"[0.0100000000000000, 0.0400000000000000, 0.0900000000000000,\n",
"0.160000000000000, 0.250000000000000, 0.360000000000000,\n",
"0.490000000000000]\n",
" \n",
"Exercise 24. Create a function and apply it to the numbers 0 through 5,\n",
"inclusive. Plot the list of resulting values.\n",
"
"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"mult3=[]\n",
"for n in [1,2,3,4,5]:\n",
" mult3.append(3*n)"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[3, 6, 9, 12, 15]"
]
},
"execution_count": 57,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"mult3"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"sqr=[]\n",
"for n in [0.1,0.2,0.3,0.4,0.5,0.6,0.7]:\n",
" sqr.append(n^2)"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[0.0100000000000000,\n",
" 0.0400000000000000,\n",
" 0.0900000000000000,\n",
" 0.160000000000000,\n",
" 0.250000000000000,\n",
" 0.360000000000000,\n",
" 0.490000000000000]"
]
},
"execution_count": 59,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"sqr"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAksAAAGGCAYAAABrI8X1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi41LCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvSM8oowAAHdNJREFUeJzt3X2QVmd5P/DvZnGXBMPahLAlZsEdGxNe8sYuQ5YUNRJ3Bp1M0BnFpiVpa6fSITaU2hrKTIuMdZ2qY+wI1HWmttgmwTYxTVtisk4SQqQdky3YTHxparRL6VICGjbBzmKW5/cH4/pbgSMP7HKeXT6fmTPZc3NerufAJN9cz+G+6yqVSiUAAJzQeWUXAABQy4QlAIACwhIAQAFhCQCggLAEAFBAWAIAKCAsAQAUEJYAAAoISwAABYQlAIACpxWWNm3alNbW1kyePDltbW3ZsWPHSY994oknUldXd9z27W9/+7SLBgA4W6oOS1u3bs3q1auzbt267Nq1K4sXL87SpUvT19dXeN53vvOd9Pf3D2+XX375aRcNAHC21FW7kO7ChQszf/78bN68eXhs9uzZWbZsWbq6uo47/oknnsiNN96YH/7wh3nd61535hUDAJxFVXWWjhw5kt7e3nR2do4Y7+zszM6dOwvPve666zJjxowsWbIkjz/+eOGxg4ODGRgYGLENDg5WUyoAwKioKiwdOHAgQ0NDaW5uHjHe3Nycffv2nfCcGTNmpLu7O/fff38eeOCBXHHFFVmyZEmefPLJk96nq6srTU1NI7b169enyiYYAMAZq+pruP/5n//J61//+uzcuTMdHR3D43/6p3+aL37xi6f80vbNN9+curq6PPTQQyf89cHBwRGdpIGBgbS0tOTQoUOZOnXqqZYLAHDGquosTZs2LfX19cd1kfbv339ct6nI9ddfn+eff/6kv97Y2JipU6eO2AAAylBVWGpoaEhbW1t6enpGjPf09GTRokWnfJ1du3ZlxowZ1dwaAKAUk6o9Yc2aNVmxYkXa29vT0dGR7u7u9PX1ZeXKlUmStWvXZu/evdmyZUuS5O67784b3vCGzJ07N0eOHMnf/M3f5P7778/9998/up8EADjn/Nd/JS+/nMydm9TVjc09qg5Ly5cvz8GDB7Nhw4b09/dn3rx52bZtW2bNmpUk6e/vHzHn0pEjR/KhD30oe/fuzfnnn5+5c+fmn//5n/OOd7xj9D4FAHDO+fSnk9///aRSSW65JXnggeS8MVibpOp5lsowMDCQpqYmL3gDAEmSV19NLrgg+fGPfzr21a8mS5aM/r2sDQcAjDt1dcd3kSZV/X3ZqRGWAIBxp74++exnj/0zSVasSN785rG5l6/hAIBx6wc/SA4fTlpaxu4eY9SwAgAYexdddGwbS76GAwAoICwBABQQlgAACtR0WNq4cWPmzJmTBQsWlF0KAHCO8rfhAAAK1HRnCQCgbMISAEABYQkAoICwBABQQFgCACggLAEAFBCWAAAKCEsAAAWEJQCAAsISAEABYQkAoEBNhyUL6QIAZbOQLgBAgZruLAEAlE1YAgAoICwBABQQlgAACghLAAAFhCUAgALCEgBAAWEJAKCAsAQAUEBYAgAoICwBABSo6bBkIV0AoGwW0gUAKFDTnSUAgLIJSwAABYQlAIACwhIAQAFhCQCggLAEAFBAWAIAKCAsAQAUEJYAAAoISwAABYQlAIACNR2WLKQLAJTNQroAAAVqurMEAFA2YQkAoICwBABQQFgCACggLAEAFBCWAAAKnFZY2rRpU1pbWzN58uS0tbVlx44dp3Te1772tUyaNCnXXnvt6dwWAOCsqzosbd26NatXr866deuya9euLF68OEuXLk1fX1/heYcOHcptt92WJUuWnHaxAABnW9WTUi5cuDDz58/P5s2bh8dmz56dZcuWpaur66Tnve9978vll1+e+vr6PPjgg9m9e/cp39OklABAWarqLB05ciS9vb3p7OwcMd7Z2ZmdO3ee9LwvfOEL+e53v5s/+ZM/Ob0qAQBKMqmagw8cOJChoaE0NzePGG9ubs6+fftOeM7zzz+fu+66Kzt27MikSad2u8HBwQwODg7vDwwMVFMmAMCoOa0XvOvq6kbsVyqV48aSZGhoKLfeems+8pGP5E1vetMpX7+rqytNTU3DW0tLy+mUCQBwxqp6Z+nIkSO54IIL8nd/93d517veNTx+5513Zvfu3dm+ffuI41966aX8wi/8Qurr64fHjh49mkqlkvr6+jz66KN529vedtx9TtRZamlp8c4SAHDWVfU1XENDQ9ra2tLT0zMiLPX09OSWW2457vipU6fm2WefHTG2adOmPPbYY/n7v//7tLa2nvA+jY2NaWxsrKY0AIAx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",
"text/plain": [
"Graphics object consisting of 1 graphics primitive"
]
},
"execution_count": 60,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"list_plot(sqr)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false,
"deletable": false,
"editable": false
},
"source": [
"We can use loops to process data.\n",
"
\n",
"Exercise 25. The time in wt5_time
is measured in hours. Create another list\n",
"in which it is given in minutes.\n",
" \n",
"Exercise 26. Convert the temperatures in wt5_temp
from Celsius to Fahrenheit.\n",
"(The formula is $F = (9/5) C + 32$.)\n",
" \n",
"\n",
"Exercise 27. Plot a time series of your transformed data.\n",
" \n",
"Exercise 28. Plot a trajectory of the transformed temperature data and the\n",
"original heart rate data.\n",
"
\n"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {
"collapsed": false
},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'wt5_time' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m
\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mmin\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mn\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mwt5_time\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0mmin\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mInteger\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m50\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mNameError\u001b[0m: name 'wt5_time' is not defined"
]
}
],
"source": [
"min=[]\n",
"for n in wt5_time:\n",
" min.append(n*50"
]
},
{
"cell_type": "code",
"execution_count": 0,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
]
},
{
"cell_type": "code",
"execution_count": 0,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
]
},
{
"cell_type": "code",
"execution_count": 0,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false,
"deletable": false,
"editable": false
},
"source": [
"## Animations\n",
"\n",
"When investigating functions and models, it can be useful to animate their\n",
"response to changes in parameters. Sage’s animate function allows us to easily\n",
"produce such animations.\n",
"\n",
"Animations are created by showing a series of still images one after the other,\n",
"fast enough to create the illusion of motion. The animate function takes a list\n",
"of plots as input and animates it.\n",
"\n",
"**Example 7.** The following code shows how a change in the slope of a line\n",
"affects the line’s appearance.\n",
"```\n",
"plots = [] #Set up empty list to hold plots\n",
"slopes = [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5] #Make a list of slopes\n",
"for m in slopes: #For each m in slope, create plot, add to list\n",
" p=plot(m*x, (x,-10,10))\n",
" plots.append(p)\n",
"a=animate(plots) #Create the animation\n",
"show(a) #Necessary to display the animation\n",
"```\n",
"Try this code now. The show command is necessary to view the animation;\n",
"it can also be used with other graphics.\n",
"\n",
"Oops! The code produces an animation all right, but the animation is useless\n",
"because it’s the axes, not the line, that move. To stop this from happening, we\n",
"can specify maximum and minimum values for $y$, fixing the $y$-axis in place.\n",
"\n",
"**Example 8.** Fixing the y-axis in an animation\n",
"```\n",
"plots = [] #Set up empty list to hold plots\n",
"slopes = [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5] #Make a list of slopes\n",
"for m in slopes: #For each m in slope, create plot, add to list\n",
" p=plot(m*x, (x,-10,10), ymin=-50, ymax=50)\n",
" plots.append(p)\n",
"a=animate(plots) #Create the animation\n",
"show(a) #Necessary to display the animation\n",
"```\n",
"This code produces a useful animated plot.\n",
"\n",
"Exercise 29. Change the animation in Example 8 to make the line green rather\n",
"than blue.\n",
"\n",
"Exercise 30. Change the previous animation to make the slope range from -3\n",
"to 3 in steps of 0.5.\n",
" \n",
"Exercise 31. Rewrite the animation in Exercise 29 so that the slope of the line\n",
"plotted is always 1 but the $y$-intercept ranges between -5 and 5.\n",
"
"
]
},
{
"cell_type": "code",
"execution_count": 87,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true,
"scrolled": true
},
"outputs": [
{
"ename": "TypeError",
"evalue": "unsupported operand parent(s) for +: 'Integer Ring' and ''",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mslopes\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0mInteger\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m3\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0mRealNumber\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'2.5'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0mInteger\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0mRealNumber\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'1.5'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0mInteger\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0mRealNumber\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'0.5'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mInteger\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mRealNumber\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'0.5'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mInteger\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mRealNumber\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'1.5'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mInteger\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mRealNumber\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'2.5'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mInteger\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m3\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;31m#Make a list of slopes\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mm\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mslopes\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;31m#For each m in slope, create plot, add to list\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mp\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mm\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0mInteger\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m5\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mInteger\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m5\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mymin\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0mInteger\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m50\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mymax\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mInteger\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m50\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 5\u001b[0m \u001b[0mplots\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mp\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0manimate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mplots\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcolor\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"green\"\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m#Create the animation\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/ext/sage/sage-9.1/local/lib/python3.7/site-packages/sage/rings/integer.pyx\u001b[0m in \u001b[0;36msage.rings.integer.Integer.__add__ (build/cythonized/sage/rings/integer.c:12304)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1801\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1802\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1803\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mcoercion_model\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbin_op\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mleft\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mright\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moperator\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1804\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1805\u001b[0m \u001b[0mcpdef\u001b[0m \u001b[0m_add_\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mright\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/ext/sage/sage-9.1/local/lib/python3.7/site-packages/sage/structure/coerce.pyx\u001b[0m in \u001b[0;36msage.structure.coerce.CoercionModel.bin_op (build/cythonized/sage/structure/coerce.c:11178)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1253\u001b[0m \u001b[0;31m# We should really include the underlying error.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1254\u001b[0m \u001b[0;31m# This causes so much headache.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1255\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mbin_op_exception\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mop\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1256\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1257\u001b[0m \u001b[0mcpdef\u001b[0m \u001b[0mcanonical_coercion\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mTypeError\u001b[0m: unsupported operand parent(s) for +: 'Integer Ring' and ''"
]
}
],
"source": [
"plots = [] #Set up empty list to hold plots\n",
"slopes = [-3, -2.5, -2, -1.5, -1, -0.5, 0, 0.5, 1, 1.5, 2, 2.5, 3] #Make a list of slopes\n",
"for m in slopes: #For each m in slope, create plot, add to list\n",
" p=plot(m+x, (x,-5,5), ymin=-50, ymax=50)\n",
" plots.append(p)\n",
"a=animate(plots, color=\"green\") #Create the animation\n",
"show(a) #Necessary to display the animation"
]
},
{
"cell_type": "code",
"execution_count": 0,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
]
},
{
"cell_type": "code",
"execution_count": 0,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
]
}
],
"metadata": {
"kernelspec": {
"display_name": "SageMath 9.1",
"language": "sagemath",
"metadata": {
"cocalc": {
"description": "Open-source mathematical software system",
"priority": 10,
"url": "https://www.sagemath.org/"
}
},
"name": "sage-9.1"
},
"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.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}