This commit is contained in:
Jen Looper 2021-11-20 21:35:21 -05:00
Родитель 61c09446c4
Коммит ec7eedc0ca
3 изменённых файлов: 348 добавлений и 270 удалений

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Просмотреть файл

@ -1,10 +1,10 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"cell_type": "markdown",
"source": [
"# Introduction to Programming with Python\n",
"\n",
@ -14,29 +14,44 @@
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"trusted": true
},
"cell_type": "code",
"outputs": [],
"source": [
"import jturtle as turtle"
],
"execution_count": 1,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": [
"To simplify writing, let us use a variable `size` to represent the size of the house. First thing we need to do is to draw a square:"
]
},
{
"metadata": {
"trusted": true,
"scrolled": true
},
"cell_type": "markdown",
"metadata": {},
"source": [
"In the last challenge, did you notice yourself writing a lot of the same numbers repeatedly? You can save typing by using a variable. Create one named 'size' to represent the size of the house. The first thing we need to do is to draw a square:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"scrolled": true,
"trusted": true
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAOcAAADnCAYAAADl9EEgAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAAAsTAAALEwEAmpwYAAAC2klEQVR4nO3cwQ3DIBAAQV/k/lu+NJCv8SqaKYCDxwpezO5eQM/n7Q0Av4kTosQJUeKEKHFClDghSpwQJU6IEidEiROixAlR4oQocUKUOCFKnBAlTogSJ0SJE6LECVHihChxQpQ4IUqcEHWfGDIzPsflL+3uPLX2kTiv69lDwBuevnQ8ayFKnBAlTogSJ0SJE6LECVHihChxQpQ4IUqcECVOiBInRIkTosQJUeKEKHFClDghSpwQJU6IEidEiROixAlR4oQocUKUOCFKnBAlTogSJ0SJE6LECVHihChxQpQ4IUqcECVOiBInRIkTosQJUeKEKHFClDghSpwQJU6IEidEiROixAlR4oQocUKUOCFKnBAlTogSJ0SJE6LECVHihChxQpQ4IUqcECVOiBInRIkTosQJUeKEKHFClDghSpwQJU6IEidEiROixAlR4oQocUKUOCFKnBAlTogSJ0SJE6LECVHihChxQpQ4IUqcECVOiBInRIkTosQJUeKEKHFClDghSpwQJU6IEidEiROixAlR4oQocUKUOCFKnBAlTogSJ0SJE6LECVHihChxQpQ4IUqcECVOiBInRIkTosQJUeKEKHFClDghSpwQJU6IEidEiROixAlR4oQocUKUOCFKnBAlTogSJ0SJE6LECVHihChxQpQ4IUqcECVOiBInRIkTosQJUeKEKHFClDghSpwQJU6IEidEiROixAlR4oQocUKUOCFKnBAlTogSJ0SJE6LECVHihChxQpQ4IUqcECVOiBInRIkTosQJUeKEKHFClDghSpwQJU6IEidEiROixAlR4oQocUKUOCFKnBAlTogSJ0SJE6LECVHihChxQpQ4IUqcECVOiBInRN2nBs3MnpoF/2B2NQNFnrUQJU6IEidEiROixAlR4oQocUKUOCFKnBAlTogSJ0SJE6LECVHihChxQpQ4IUqcECVOiBInRIkTosQJUeKEKHFC1BcH9hDP2xJZHgAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"size=120\n",
"turtle.forward(size)\n",
@ -48,33 +63,35 @@
"turtle.forward(size)\n",
"turtle.right(90)\n",
"turtle.done()"
],
"execution_count": 2,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAQEAAAD4CAYAAADsBlOYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAAyxJREFUeJzt3cEJwzAQAEFfcP8tX5qIEfHOFCAOgVbopdndC+j6nB4AOEsEIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIO4+PcAvzYxPFHil3Z2n1n5VBK7r2c2CE56+3DwHIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIO4+PcCvzcyengH+yew6M1DmOQBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxX5PAEPHBIswIAAAAAElFTkSuQmCC\n",
"text/plain": "<Figure size 432x288 with 1 Axes>"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, after drawing the main square, let us draw the roof. After the code above, the turtle is in the low left corner of the square, so we need to move up, and then draw a triangle:"
"Now, after drawing the main square, let's draw the roof. After the code above, the turtle is in the lower left corner of the square, so we need to move up and then draw a triangle:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"trusted": true
},
"cell_type": "code",
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAOcAAADnCAYAAADl9EEgAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKtElEQVR4nO3de9BtdV3H8fcHyEItU8ucMhxn0FSQi3KyTPHCMCLMiKmQnKLBkJEyJXEElUupqXjBIMexZIYsc3Bwxql0SDPLkAFLI80b1pRNWU1NdjEio/TbH2unJzqnc9t7/757r/frT85z9vryzHk/v73Xs9ZvpaqQ1M8howeQtHvGKTVlnFJTxik1ZZxSU8YpNWWcUlPGKTVlnFJTxik1ZZxSU8YpNWWcUlPGKTVlnFJTxik1ZZxSU8YpNWWcUlPGKTVlnFJTxik1ZZz7IMl9k9xt9ByaF+PciyQBPg5cO3gUzYxx7t1pwJ3AKUnuP3oYzUfc8X3PFm9lPw08HzgJuE9VnTt2Ks3FYaMHaO4FwOeq6n1JbgFuS3JCVX1s9GDafq6ce5DkO5hWzcdU1Z8s/tu5wI8Bjy2/cVoxP3Pu2auAX/6fMBfeBhwOPGvIRJoVV87dSPJI4AbgoVX1z3f5s8cB71j82R0DxtNMuHLexeJXJ1cDl901TICq+jBwM3DRmkfTzLhy3kWSHwJeApxQVV/Zw9ccAfwRcHxV/eU659N8GOcuktwd+CxwdlXduJev/Rmmt7Z+/tRKGOcuklwOHF1VZ+7D194duA344cVbXWmpjHMhyXczXab3qKr6i338O2cBLwZ27OktsHSgPCH0da8F3ryvYS68E7gDOGcVA2neXDmBJI8FrmP6DPlv+/l3HwW8d/F3/2UV82meZr9yJjkEuAq4eH/DBKiqP2T6neilSx5NMzf7lTPJs4HzgB840EvyFnerfAr4/qr602XOp/madZxJvoXpjOvpVfXRg3yti5iuuX3qUobT7M39be0lwPsPNsyFq4GHJ3nyEl5Lmu/KmeTBwC3AI6rqb5f0mk8FrgCOrar/XMZrar7mvHK+AXj9ssJceA/wBeDHl/iamqlZrpxJTgZ+AXh4Vf3Hkl/7KOBDwMOq6h+W+dqal9nFmeQw4BPAJVX1ays6xpuAQ6vqJ1bx+pqHOcb5k8DTgJNXtZtBkvswnQU+qao+uYpjaPvNKs4k92W66+RJVfWpFR/recAzmAKdzzdZSzO3E0IvB65fdZgLvwjcj2mVlvbbbFbOJEcDv8N0ouaLazrmScA1TCeevryOY2p7zGLlXGw9chXwynWFCVBVHwT+GHjhuo6p7TGLlTPJ6cCrgePWfXFAkiOBjwDHVNXfrPPY2mxbH2eSbwQ+A5xfVR8YNMMVwP2r6pwRx9dmmkOcFzNtDH36wBm+Gfgc8LSq+oNRc2izbHWcnW7lSnIOcD7TD4qvjpxFm2HbTwi9Grh2dJgLvwIcCuwcPYg2w9aunEl2AL8BfE9VfWn0PABJHgNcz7Slye2j51FvW7ly7rJr+yVdwgSoqpuB3wMuHj2L+tvKlTPJTuBC4Hu7fb5L8gCmC+/3eQtOzdPWxZnkHkwXnZ9VVTeNnmd3klzG9HvPM0bPor628W3tRcBNXcNceAOwI8njRw+ivrZq5UzyQOBWNuABQ0nOBF7G9PbW3eL1f2zbyvk64Oe7h7nwLuBLwLmjB1FPW7NyJjkReDvTXScb8VDbJMcDv8luHtIrbUWcSQ4FPgq8rqreOXqe/ZHkrcDtVXXh6FnUy7bE+Rymhwk9btN2HUhyP+DTTLPfNnoe9bHxcSa5F9NF5actnluycZK8iGk7k1NHz6I+tuGE0GXAezc1zIU3AUcmMU59zUavnEkeAtwMHFVVfzd6noOR5DTgSqaLE+4cPY/G2/SV80rgtZse5sINwOeB540eRD1s7MqZ5BSmt4NHL3vX9lGSPAy4kemdwN+PnkdjbWScSb6BaeOsi6rqPaPnWaYkVwGHV9VzR8+isTY1zguAU4FTNu1XJ3uT5N5MF+4/uao+PngcDbRxcSb5NqZd2x9fVZ8ZPc8qJDkfeBbwxG374aN9t4knhF4BXLetYS5cA9yb6XEOmqmNWjmTHAN8gOn62X8cPc8qJXki8EtM/6//Pnoerd/GrJy77Nr+8m0PE6Cqfhf4GPCi0bNojI1ZOZM8nelBRMdX1X+NnmcdkjyIKdBjquqvR8+j9dqIOJN8E9Ou7ectnj8yG0leBRxRVWePnkXrtSlxvpRps64fHD3LuiW5J9OF/c+sqltGz6P1aR9nku9kuuDg0VX1Z6PnGSHJ2cDzge/rtpugVmcTTgi9BrhmrmEuvAP4KuBb2xlpvXImeTTwbqZtPP519Dwj+b2Yn7YrZ5JD+Pqu7bP/x1hVvw98EHjp6Fm0Hm1XziQ/AlzA9FnTz1lAku9i+vy9o6r+fPQ8Wq2WcS7OUN4GnOEZyv8tycuAE6rq6aNn0Wp1fVv7EuBDhrlbbwSOT/Kk0YNotdqtnLtcFXNsVX1h9DwdJXkG8NPAI+dytdQcdVw5Xw9cZZj/r3cDXwTOGz2IVqfVypnkCcDb8E6MvUpyLPBbzOAOnblqE+di1/ZbgZ+tqneNnmcTJHkLcGdVXTB6Fi1fpzifC+wEnuDd//smybcz3RCwtbtCzFmLON0358Al+SngKWzhfkpz1+WE0OXArxvmAXkzcARw2uhBtFzDV84kDwU+jHu1HrBd9vA9yt3it0eHlfONwGsM88BV1fuY7vl8wehZtDxDV87Fg3t+DniEP/EPzjY9N0aTYXEmuRvwSeCFVXXDkCG2TJIrgXtV1XNGz6KDNzLOC4GTq+opQwbYQkm+lems96lVdevgcXSQhsS5y9OcT6yqz659gC2W5DzgR5m+t/5qZYONOiH0SuBXDXMlrgXuCZw5ehAdnLWvnEmOA97PtN3GP6314DOR5ETg7UzX3d4xeh4dmLWunItd268GLjfM1amqG4GPAC8ePYsO3FpXziRnAJcy3Yf4lbUdeIaSPJDpRoLjquqvRs+j/be2OJMczvTovmcvngOiFUvyCuDIqto5ehbtv3XGeSnTT/FnruWAIsk9mH61clZV3TR6Hu2ftcSZ5AHAJ5g2pvr8yg+or0myk+lJZTvcxXCzrOuE0BXAWwxziOuALwPnDJ5D+2nlK+firpPfZvrVye0rPZh2K8kO4HrgwW4ItjnW9bbWK1UaqKqMnkH77rB1Hch/GGP5A3LzdLifU9JuGKfUlHFKTRmn1JRxSk0Zp9SUcUpNGafUlHFKTRmn1JRxSk0Zp9SUcUpNGafUlHFKTRmn1JRxSk0Zp9SUcUpNGafUlHFKTRmn1JRxSk0Zp9SUcUpNGafUlHFKTRmn1JRxSk0Zp9SUcUpNGafUlHFKTRmn1JRxSk0Zp9SUcUpNGafUlHFKTRmn1JRxSk0Zp9SUcUpNGafUlHFKTRmn1JRxSk0Zp9SUcUpNGafUlHFKTRmn1JRxSk0Zp9SUcUpNGafUlHFKTRmn1JRxSk0Zp9SUcUpNGafUlHFKTRmn1JRxSk0Zp9SUcUpNGafUlHFKTRmn1JRxSk0Zp9SUcUpNGafUlHFKTRmn1JRxSk0Zp9SUcUpNGafUlHFKTRmn1JRxSk0Zp9SUcUpNGafUlHFKTRmn1JRxSk0Zp9SUcUpNGafUlHFKTRmn1JRxSk0dtq4DJal1HUvaBqmyGakj39ZKTRmn1JRxSk0Zp9SUcUpNGafUlHFKTRmn1JRxSk0Zp9SUcUpNGafUlHFKTRmn1JRxSk0Zp9SUcUpNGafUlHFKTRmn1JRxSk0Zp9SUcUpN/TcYlq2CRkXLBQAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"turtle.forward(size)\n",
"turtle.right(90)\n",
@ -92,33 +109,35 @@
"turtle.forward(size)\n",
"turtle.right(120)\n",
"turtle.done()"
],
"execution_count": 3,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAQEAAAD4CAYAAADsBlOYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAACyVJREFUeJzt3XvQrWVZx/HvD8hCLU9FThlOM2gqyEHZWaZ4YBgRZsQTJLtoMGSkTEkcQeVQaioeMMhxrJgh8zA4OONYOnjKMmTA0khTFGvKpqymJsuMyCi9+uNZ5Y44vIe11r3Wur6fP9nvu9a193757vt51vM8d6oKSX3tN3oASWMZAak5IyA1ZwSk5oyA1JwRkJozAlJzRkBqzghIzRkBqTkjIDVnBKTmjIDUnBGQmjMCUnNGQGrOCEjNGQGpOSMgNWcEpOaMgNScEZCaMwIrJMn9ktxt9BzqxQisiCQBPg1cMXoW9WIEVseJwK3A8UnuP3oY9RF3IBpvdghwI/B84FjgvlV1xtip1MUBowcQAC8AvlhVH0xyPXBTkqOr6lOjB9PmcyUwWJLvZVoFPLqq/nT2384Afhp4TPkXpAXznMB4rwJ+838CMPNW4EDgWUMmUiuuBAZK8gjgauAhVfXV2/zaY4F3zn7tlhHzqQdXAoPMPhK8DLjwtgEAqKqPA9cB5y57NvXiSmCQJD8OvAQ4uqq+cQdfczDwx8BRVfVXy5xPfRiBAZLcHfgCcFpVXXMXX/uLTIcEnh/QQhiBAZJcBBxWVads4WvvDtwE/MTsEEGaKyOwZEl+gOny4EdW1V9u8XtOBV4M7LmjQwdppzwxuHyvBd681QDMvAu4BTh9EQOpN1cCS5TkMcCVTMf4/7bN730k8P7Z9/7LIuZTT64EliTJfsClwHnbDQBAVf0R0zUFF8x7NvXmSmBJkjwbOBP4sZ1eCjy7u/BzwI9W1Z/Ncz71ZQSWIMl3MZ3hP6mqPrnL1zqX6Z6Cp8xlOLXn4cBynA98aLcBmLkMeFiSJ83htSRXAouW5EHA9cDDq+rv5vSaTwEuBo6oqv+cx2uqL1cCi/cG4PXzCsDM+4AvAz8zx9dUU64EFijJccCvAg+rqv+Y82sfCnwMeGhV/eM8X1u9GIEFSXIA8Bng/Kp674Le403A/lX1s4t4ffVgBBYkyc8BTwWOW9TTgZLcl+lTh2Or6rOLeA9tPiOwAEnux3SX4BOr6nMLfq/nAc9gCoF/mdo2TwwuxsuBqxYdgJlfAw5iWnVI2+ZKYM6SHAb8LtMJu68s6T2PBS5nOgH59WW8pzaHK4E5mj0y7FLglcsKAEBVfRT4E+CFy3pPbQ5XAnOU5CTg1cCRy76IJ8khwCeAw6vqb5f53lpvRmBOknw78HngrKr6yKAZLgbuX1Wnj3h/rScjMCdJzmPaQOSkgTN8J/BF4KlV9Yej5tB6MQJzsEq3+CY5HTiLKUjfHDmL1oMnBufj1cAVowMw8zZgf2Dv6EG0HlwJ7FKSPcBvAz9UVV8bPQ9AkkcDVzE9iuzm0fNotbkS2IV9dhE6f1UCAFBV1wG/D5w3ehatPlcCu5BkL3AO8MOrdvyd5AFMNzBt+dHm6skI7FCSezDdvHNqVV07ep7bk+RCpusGTh49i1aXhwM7dy5w7aoGYOYNwJ4kjxs9iFaXK4EdSPJA4AbWYKPQJKcAL2M6LHD3Iv0/rgR25nXAr6x6AGbeDXwNOGP0IFpNrgS2KckxwNuZ7hK8ZfQ8W5HkKOADTB8ZfnX0PFotRmAbkuwPfBJ4XVW9a/Q825Hk14Gbq+qc0bNotRiBbUjyHKZNQR+7bk/xSXIQcCPT7DeNnkerwwhsUZJ7Md2cc+JsX8C1k+RFTI8hO2H0LFodnhjcuguB969rAGbeBBySxAjof7kS2IIkDwauAw6tqr8fPc9uJDkRuITpIqJbR8+j8VwJbM0lwGvXPQAzVwNfAp43ehCtBlcCdyHJ8UzL6MPmvYvQKEkeClzDtLL5h9HzaCwjcCeSfBvTAzzPrar3jZ5nnpJcChxYVc8dPYvGMgJ3IsnZwAnA8ev2keBdSXIfphugnlRVnx49j8YxAncgyXcz7SL0uKr6/Oh5FiHJWcCzgCdsWuS0dZ4YvGOvAK7c1ADMXA7ch2kbMzXlSuB2JDkc+AjT/QH/NHqeRUryBOA3mH6v/z56Hi2fK4Hb2GcXoZdvegAAqur3gE8BLxo9i8ZwJXAbSZ7OtKHoUVX1X6PnWYYkP8gUgsOr6m9Gz6PlMgL7SPIdTLsInTnb36+NJK8CDq6q00bPouUyAvtI8lKmh4Y+bfQsy5bknkw3SD2zqq4fPY+WxwjMJPk+pguDHlVVfz56nhGSnAY8H/iRVXt6shbHE4Pf8hrg8q4BmHkn8E3AQ4JGXAkASR4FvIfp8Vv/Onqekfyz6Kf9SiDJfnxrF6H2P/RV9QfAR4GXjp5Fy9F+JZDkJ4Gzmc4FeBwMJPl+pvMje6rqL0bPo8VqHYHZGfGbgJM9I/5/JXkZcHRVPX30LFqs7ocDLwE+ZgBu1xuBo5I8cfQgWqy2K4F9rpI7oqq+PHqeVZTkGcAvAI/ocvVkR51XAq8HLjUAd+o9wFeAM0cPosVpuRJI8njgrXjn3F1KcgTwYRrcUdlVuwjMdhG6Afilqnr36HnWQZK3ALdW1dmjZ9H8dYzAc4G9wON9ms7WJPkephurNvYpS521ioDP1du5JD8PPJkNfN5id91ODF4E/JYB2JE3AwcDJ44eRPPVZiWQ5CHAx/FZ+zu2zx4Mh7p70ebotBJ4I/AaA7BzVfVBpmcOvGD0LJqfFiuB2Qacvww83H/BdmeT9mXUZOMjkORuwGeBF1bV1aPn2QRJLgHuVVXPGT2Ldq9DBM4BjquqJ4+eZVMkuTfTpywnVNUNo+fR7mx0BJIcBNwIHFNVXxg9zyZJcibwU0x/tpv7Q9TApp8YfCXwDgOwEFcA9wROGT2IdmdjVwJJjgQ+xPSYrH8ePc8mSnIM8Ham+wpuGT2PdmYjVwKzXYQuAy4yAItTVdcAnwBePHoW7dxGrgSSnAxcwHQf/DdGz7PJkjyQ6YasI6vqr0fPo+3buAgkOZBpS/Fnz/bZ04IleQVwSFXtHT2Ltm8TI3AB079Kzxw9SxdJ7sH0keGpVXXt6Hm0PRsVgSQPAD7D9IDML42ep5Mke5l2Nt7jU5vXy6adGLwYeIsBGOJK4OvA6YPn0DZtzEpgdpfg7zB9JHjz6Hk6SrIHuAp4kA8mXR8bEwGAJJvzm1ljVZXRM2jrDhg9wLz5AziWIV4/m3ZOQNI2GQGpOSMgNWcEpOaMgNScEZCaMwJSc0ZAas4ISM0ZAak5IyA1ZwSk5oyA1JwRkJozAlJzRkBqzghIzRkBqTkjIDVnBKTmjIDUnBGQmjMCUnNGQGrOCEjNGQGpOSMgNWcEpOaMgNScEZCaMwJSc0ZAas4ISM0ZAak5IyA1ZwSk5oyA1JwRkJozAlJzRkBqzghIzRkBqTkjIDVnBKTmjIDUnBGQmjMCUnNGQGrOCEjNGQGpOSMgNWcEpOaMgNScEZCaMwJSc0ZAas4ISM0ZAak5IyA1ZwSk5oyA1JwRkJozAlJzRkBqzghIzRkBqTkjIDVnBKTmjIDUnBGQmjMCUnNGQGrOCEjNGQGpOSMgNWcEpOaMgNScEZCaMwJSc0ZAas4ISM0ZAak5IyA1ZwSk5oyA1JwRkJozAlJzRkBqzghIzRkBqTkjIDVnBKTmjIDUnBGQmjMCUnMHjB5g3pLU6BmkdZIq/5+ROvNwQGrOCEjNGQGpOSMgNWcEpOaMgNScEZCaMwJSc0ZAas4ISM0ZAak5IyA1ZwSk5oyA1JwRkJozAlJzRkBqzghIzRkBqTkjIDVnBKTmjIDUnBGQmjMCUnNGQGrOCEjNGQGpOSMgNWcEpOaMgNScEZCaMwJSc0ZAas4ISM0ZAak5IyA1ZwSk5oyA1JwRkJozAlJz/w27Uq2k03mw/gAAAABJRU5ErkJggg==\n",
"text/plain": "<Figure size 432x288 with 1 Axes>"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Finally, to draw a window, we need to put the pen up to stop drawing, move 2/3 of the `size` down and 1/3 left, and draw a smaller square:"
"Finally, to draw a window, we need to raise the pen up to stop drawing, move 2/3 of the `size` down and 1/3 left, and draw a smaller square:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"trusted": true
},
"cell_type": "code",
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Draw a square\n",
"turtle.forward(size)\n",
@ -156,24 +175,11 @@
"turtle.right(90)\n",
"\n",
"turtle.done()"
],
"execution_count": 4,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAQEAAAD4CAYAAADsBlOYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAC0NJREFUeJzt3XuwrXVdx/H3B8hCLW9FThlOM2gqyEU5WaZ4YRgRZsQbJKdoMGSkTEkcQeVSaipeMMhxrJgh8zI4OONYOnjLMmTA0khTFGvKpqymJsuMyCj99sezyhNx2Ze11m+t9X2//jxn77W++5y93/v3PGs9zy9VhaS+9hs9gKSxjIDUnBGQmjMCUnNGQGrOCEjNGQGpOSMgNWcEpOaMgNScEZCaMwJSc0ZAas4ISM0ZAak5IyA1ZwSk5oyA1JwRkJozAlJzRkBqzghIzRmBFZLkfknuNnoO9WIEVkSSAJ8Grhg9i3oxAqvjROBW4Pgk9x89jPqIOxCNNzsEuBF4PnAscN+qOmPsVOrigNEDCIAXAF+sqg8muR64KcnRVfWp0YNp87kSGCzJ9zKtAh5dVX86+7MzgJ8GHlP+B2nBPCcw3quA3/yfAMy8FTgQeNaQidSKK4GBkjwCuBp4SFV99TZ/91jgnbO/u2XEfOrBlcAgs5cELwMuvG0AAKrq48B1wLnLnk29uBIYJMmPAy8Bjq6qb9zBxxwM/DFwVFX91TLnUx9GYIAkdwe+AJxWVdfcxcf+ItMhgecHtBBGYIAkFwGHVdUpW/jYuwM3AT8xO0SQ5soILFmSH2B6e/Ajq+ovt/g5pwIvBvbc0aGDtFOeGFy+1wJv3moAZt4F3AKcvoiB1JsrgSVK8hjgSqZj/H/b5uc+Enj/7HP/ZRHzqSdXAkuSZD/gUuC87QYAoKr+iOk9BRfMezb15kpgSZI8GzgT+LGdvhV4dnXh54Afrao/m+d86ssILEGS72I6w39SVX1yl491LtM1BU+Zy3Bqz8OB5Tgf+NBuAzBzGfCwJE+aw2NJrgQWLcmDgOuBh1fV383pMZ8CXAwcUVX/OY/HVF+uBBbvDcDr5xWAmfcBXwZ+Zo6PqaZcCSxQkuOAXwUeVlX/MefHPhT4GPDQqvrHeT62ejECC5LkAOAzwPlV9d4FPcebgP2r6mcX8fjqwQgsSJKfA54KHLeouwMluS/Tqw7HVtVnF/Ec2nxGYAGS3I/pKsEnVtXnFvxczwOewRQC/zO1bZ4YXIyXA1ctOgAzvwYcxLTqkLbNlcCcJTkM+F2mE3ZfWdJzHgtcznQC8uvLeE5tDlcCczS7ZdilwCuXFQCAqvoo8CfAC5f1nNocrgTmKMlJwKuBI5f9Jp4khwCfAA6vqr9d5nNrvRmBOUny7cDngbOq6iODZrgYuH9VnT7i+bWejMCcJDmPaQORkwbO8J3AF4GnVtUfjppD68UIzMEqXeKb5HTgLKYgfXPkLFoPnhicj1cDV4wOwMzbgP2BvaMH0XpwJbBLSfYAvw38UFV9bfQ8AEkeDVzFdCuym0fPo9XmSmAX9tlF6PxVCQBAVV0H/D5w3uhZtPpcCexCkr3AOcAPr9rxd5IHMF3AtOVbm6snI7BDSe7BdPHOqVV17eh5bk+SC5neN3Dy6Fm0ujwc2LlzgWtXNQAzbwD2JHnc6EG0ulwJ7ECSBwI3sAYbhSY5BXgZ02GBuxfp/3ElsDOvA35l1QMw827ga8AZowfRanIlsE1JjgHeznSV4C2j59mKJEcBH2B6yfCro+fRajEC25Bkf+CTwOuq6l2j59mOJL8O3FxV54yeRavFCGxDkucwbQr62HW7i0+Sg4AbmWa/afQ8Wh1GYIuS3Ivp4pwTZ/sCrp0kL2K6DdkJo2fR6vDE4NZdCLx/XQMw8ybgkCRGQP/LlcAWJHkwcB1waFX9/eh5diPJicAlTG8iunX0PBrPlcDWXAK8dt0DMHM18CXgeaMH0WpwJXAXkhzPtIw+bN67CI2S5KHANUwrm38YPY/GMgJ3Ism3Md3A89yqet/oeeYpyaXAgVX13NGzaCwjcCeSnA2cABy/bi8J3pUk92G6AOpJVfXp0fNoHCNwB5J8N9MuQo+rqs+PnmcRkpwFPAt4wqZFTlvnicE79grgyk0NwMzlwH2YtjFTU64EbkeSw4GPMF0f8E+j51mkJE8AfoPpa/330fNo+VwJ3MY+uwi9fNMDAFBVvwd8CnjR6Fk0hiuB20jydKYNRY+qqv8aPc8yJPlBphAcXlV/M3oeLZcR2EeS72DaRejM2f5+bSR5FXBwVZ02ehYtlxHYR5KXMt009GmjZ1m2JPdkukDqmVV1/eh5tDxGYCbJ9zG9MehRVfXno+cZIclpwPOBH1m1uydrcTwx+C2vAS7vGoCZdwLfBDwkaMSVAJDkUcB7mG6/9a+j5xnJf4t+2q8EkuzHt3YRav9NX1V/AHwUeOnoWbQc7VcCSX4SOJvpXIDHwUCS72c6P7Knqv5i9DxarNYRmJ0Rvwk42TPi/1eSlwFHV9XTR8+ixep+OPAS4GMG4Ha9ETgqyRNHD6LFarsS2OddckdU1ZdHz7OKkjwD+AXgEV3ePdlR55XA64FLDcCdeg/wFeDM0YNocVquBJI8HngrXjl3l5IcAXyYBldUdtUuArNdhG4Afqmq3j16nnWQ5C3ArVV19uhZNH8dI/BcYC/weO+mszVJvofpwqqNvctSZ60i4H31di7JzwNPZgPvt9hdtxODFwG/ZQB25M3AwcCJowfRfLVZCSR5CPBxvNf+ju2zB8Oh7l60OTqtBN4IvMYA7FxVfZDpngMvGD2L5qfFSmC2AecvAw/3N9jubNK+jJpsfASS3A34LPDCqrp69DybIMklwL2q6jmjZ9HudYjAOcBxVfXk0bNsiiT3ZnqV5YSqumH0PNqdjY5AkoOAG4FjquoLo+fZJEnOBH6K6d92c7+JGtj0E4OvBN5hABbiCuCewCmjB9HubOxKIMmRwIeYbpP1z6Pn2URJjgHeznRdwS2j59HObORKYLaL0GXARQZgcarqGuATwItHz6Kd28iVQJKTgQuYroP/xuh5NlmSBzJdkHVkVf316Hm0fRsXgSQHMm0p/uzZPntasCSvAA6pqr2jZ9H2bWIELmD6rfTM0bN0keQeTC8ZnlpV146eR9uzURFI8gDgM0w3yPzS6Hk6SbKXaWfjPd61eb1s2onBi4G3GIAhrgS+Dpw+eA5t08asBGZXCf4O00uCN4+ep6Mke4CrgAd5Y9L1sTERAEiyOV/MGquqjJ5BW3fA6AHmzW/AsQzx+tm0cwKStskISM0ZAak5IyA1ZwSk5oyA1JwRkJozAlJzRkBqzghIzRkBqTkjIDVnBKTmjIDUnBGQmjMCUnNGQGrOCEjNGQGpOSMgNWcEpOaMgNScEZCaMwJSc0ZAas4ISM0ZAak5IyA1ZwSk5oyA1NzGbU0+2ipsze327NoOI7AAI38IVyFCWi8eDkjNGQGpOSMgNWcEpOaMgNScEZCaMwJSc0ZAas4ISM0ZAak5IyA1ZwSk5oyA1JwRkJozAlJzRkBqzghIzRkBqTkjIDVnBKTmjIDUnBGQmjMCUnNGQGrOCEjNGQGpOSMgNWcEpOaMgNScEZCac2vyBXB7cK0TIzBnVZXRM0jb4eGA1JwRkJozAlJzRkBqzghIzRkBqTkjIDVnBKTmjIDUnBGQmjMCUnNGQGrOCEjNGQGpOSMgNWcEpOaMgNScEZCaMwJSc0ZAas4ISM0ZAak5IyA1ZwSk5oyA1JwRkJozAlJzRkBqzghIzRkBqTkjIDV3wOgB5i1JjZ5BWiep8mdG6szDAak5IyA1ZwSk5oyA1JwRkJozAlJzRkBqzghIzRkBqTkjIDVnBKTmjIDUnBGQmjMCUnNGQGrOCEjNGQGpOSMgNWcEpOaMgNScEZCaMwJSc0ZAas4ISM0ZAak5IyA1ZwSk5oyA1JwRkJozAlJzRkBqzghIzRkBqTkjIDVnBKTmjIDUnBGQmjMCUnNGQGrOCEjN/Tem07msqxN4lwAAAABJRU5ErkJggg==\n",
"text/plain": "<Figure size 432x288 with 1 Axes>"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"You can notice that as the program becomes rather big, it is also getting more difficult to understand. One thing to simplify understanding a program is by using **comments**. Comments are pieces of text that can be embedded into the program, and which are ignored by Python. Anything that starts with `#` sign and until the end of line is considered a comment, and is discarded.\n",
"\n",
@ -185,8 +191,8 @@
]
},
{
"metadata": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## Introducing Functions\n",
"\n",
@ -196,10 +202,12 @@
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"trusted": true
},
"cell_type": "code",
"outputs": [],
"source": [
"def square(x):\n",
" turtle.forward(x)\n",
@ -210,43 +218,43 @@
" turtle.right(90)\n",
" turtle.forward(x)\n",
" turtle.right(90)"
],
"execution_count": 19,
"outputs": []
]
},
{
"metadata": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"When we run this code, nothing is drawn on the screen --- we just specify the list of commands that comprise a function. However, once the cell above has been executed, Python gets to know a new command `square`. To actually draw a square we need to **call** this function:"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": [
"square(100)\n",
"turtle.done()"
],
"execution_count": 21,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAQEAAAD4CAYAAADsBlOYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAAy1JREFUeJzt3dEJAyEQQMHbcP23vGkiieTeTAGyCD7xy9ndC+h6nR4AOEsEIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIO4+PcAnzYxPFHic3Z1vrv+oCFzX9zcMfukXF5vnAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMTdpwf4tJnZ0zPAP5ldZwbKPAcgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQg7g2jwBDx4wvyuAAAAABJRU5ErkJggg==\n",
"text/plain": "<Figure size 432x288 with 1 Axes>"
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAQEAAAD4CAYAAADsBlOYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAAy1JREFUeJzt3dEJAyEQQMHbcP23vGkiieTeTAGyCD7xy9ndC+h6nR4AOEsEIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIO4+PcAnzYxPFHic3Z1vrv+oCFzX9zcMfukXF5vnAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMSJAMTdpwf4tJnZ0zPAP5ldZwbKPAcgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQgTgQg7g2jwBDx4wvyuAAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
}
},
"output_type": "display_data"
}
],
"source": [
"square(100)\n",
"turtle.done()"
]
},
{
"metadata": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Because we need to draw squares of different sizes, this function has one **argument**, or **parameter**. It is denoted by `(x)` after the function's name, and it is in fact a kind of variable, which takes the value that is passed to the function during the call. In the case above, we have called the function `square(100)`, so in the functions's body variable `x` will be equal to 100. We can use any expression in place of a parameter, for example `square(size/2+10)` would be a perfectly valid call. Expression `size/2+10` would be computed, and the result associated with parameter `x`. When defining a function you always use some names in place of parameters, which will act as \"placeholders\" - you cannot use expressions. \n",
"\n",
@ -254,10 +262,25 @@
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"trusted": true
},
"cell_type": "code",
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"square(size)\n",
"\n",
@ -277,40 +300,27 @@
"square(size/3)\n",
"\n",
"turtle.done()"
],
"execution_count": 24,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": "<Figure size 432x288 with 1 Axes>"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Inside functions we can of course call other functions. As a simple exercise, please take the code that draws a house above, and turn it into a function with one parameter -- the size of the house. Put your code in the cell below, and test it:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": [],
"execution_count": null,
"outputs": []
"outputs": [],
"source": []
},
{
"metadata": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"If you did not succeed, or if you are getting some syntax errors, take a note of the following:\n",
"\n",
@ -320,8 +330,8 @@
]
},
{
"metadata": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## Blocks and Line Indentation\n",
"\n",
@ -354,8 +364,8 @@
]
},
{
"metadata": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## Functions that Return a Value\n",
"\n",
@ -365,21 +375,21 @@
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"trusted": true
},
"cell_type": "code",
"outputs": [],
"source": [
"def interest(amount, rate):\n",
" x = amount * (1+rate/100)\n",
" return x"
],
"execution_count": 25,
"outputs": []
]
},
{
"metadata": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"In this function, `amount` is the amount of money we currently have, and `rate` is the yearly interest rate in percents. We calculate the amount after one year and denote it by `x`, and then return this value using the `return` statement.\n",
"\n",
@ -387,80 +397,86 @@
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"trusted": true
},
"cell_type": "code",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"102.49999999999999\n"
]
}
],
"source": [
"result = interest(100, 2.5)\n",
"print(result)"
],
"execution_count": 26,
"outputs": [
{
"output_type": "stream",
"text": "102.49999999999999\n",
"name": "stdout"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"We can also directly use `interest` in any expression, for example, just to print the amount in one year, we can write"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": [
"interest(100, 2.5)"
],
"execution_count": 27,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 27,
"data": {
"text/plain": "102.49999999999999"
"text/plain": [
"102.49999999999999"
]
},
"metadata": {}
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"interest(100, 2.5)"
]
},
{
"metadata": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"And to calculate the resulting amount in two years:"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": [
"interest(interest(100, 2.5),2.5)"
],
"execution_count": 28,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 28,
"data": {
"text/plain": "105.06249999999997"
"text/plain": [
"105.06249999999997"
]
},
"metadata": {}
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"interest(interest(100, 2.5),2.5)"
]
},
{
"metadata": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## Local and Global Variables\n",
"\n",
@ -470,10 +486,20 @@
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"trusted": true
},
"cell_type": "code",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"107.68906249999996\n"
]
}
],
"source": [
"interest_rate = 2.5\n",
"\n",
@ -481,19 +507,11 @@
" return x * (1+interest_rate/100)\n",
"\n",
"print(interest(interest(interest(100))))"
],
"execution_count": 30,
"outputs": [
{
"output_type": "stream",
"text": "107.68906249999996\n",
"name": "stdout"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## Tuples\n",
"\n",
@ -503,105 +521,121 @@
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"trusted": true
},
"cell_type": "code",
"outputs": [],
"source": [
"point = (0,10)"
],
"execution_count": 31,
"outputs": []
]
},
{
"metadata": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"To access individual coordinates of a point, we can use the notation `point[0]` and `point[1]`:"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": [
"print(\"Our coordinates are: x=\",point[0],', y=',point[1])"
],
"execution_count": 32,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "Our coordinates are: x= 0 , y= 10\n",
"name": "stdout"
"text": [
"Our coordinates are: x= 0 , y= 10\n"
]
}
],
"source": [
"print(\"Our coordinates are: x=\",point[0],', y=',point[1])"
]
},
{
"metadata": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Another way to decompose a tuple into parts is assigning it to a pair of variables. You can write:"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"trusted": true
},
"cell_type": "code",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Our coordinates are: x= 0 , y= 10\n"
]
}
],
"source": [
"x,y = point\n",
"print(\"Our coordinates are: x=\",x,', y=',y)"
],
"execution_count": 33,
"outputs": [
{
"output_type": "stream",
"text": "Our coordinates are: x= 0 , y= 10\n",
"name": "stdout"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"By the way, using tuples you can write nice assignments for several variables at once, for example"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"trusted": true
},
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": [
"10"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x,y = 0,10\n",
"x+y"
],
"execution_count": 34,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 34,
"data": {
"text/plain": "10"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Coming back to the interest rate example, we can return total amount and accumulated interest using a tuple:"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"trusted": true
},
"cell_type": "code",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"102.5 2.5\n"
]
}
],
"source": [
"def interest(x,rate):\n",
" acc = x*rate/100\n",
@ -609,19 +643,11 @@
"\n",
"total, acc = interest(100,2.5)\n",
"print(total,acc)"
],
"execution_count": 35,
"outputs": [
{
"output_type": "stream",
"text": "102.5 2.5\n",
"name": "stdout"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## Another Style of Drawing\n",
"\n",
@ -637,56 +663,58 @@
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"trusted": true
},
"cell_type": "code",
"outputs": [],
"source": [
"def square(x1,y1,x2,y2):\n",
" turtle.line((x1,y1),(x1,y2))\n",
" turtle.line((x1,y1),(x2,y1))\n",
" turtle.line((x2,y2),(x1,y2))\n",
" turtle.line((x2,y2),(x2,y1))"
],
"execution_count": 5,
"outputs": []
]
},
{
"metadata": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Using this function, we can draw a house:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"trusted": true
},
"cell_type": "code",
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAQEAAAD4CAYAAADsBlOYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAABMBJREFUeJzt2K2OpFUYRtFzyBCCIUFiEdwEnqsAMQ7PpZCgUQiCwnAtaBwBLAnmoEhmPjrQ01Nd389eS5d4k6pnJ6fmWmsAXe/sfQCwLxGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBEImXN+Mud8b+87OBYRCJhzfjjn/GGM8fMY448555d738RxiMCFvTL+38YYn44xXo4xvh9jfD3n/F0MGEMELumB8X+x1vporfXtWuvlGOODMcaPQwwYInAp/zH+71793FrrTzHgHyJwAY8d/5YYMIYInNpTx78lBm0icEK3Gv+WGDSJwIk81/i3xKBFBE7gXuPfEoMGETiwvca/JQbXJgIHdJTxb4nBNYnAgRx1/FticC0icABnGf+WGFyDCOzorOPfEoNzE4EdXGX8W2JwTiJwR1cd/5YYnIsI3EFl/FticA4i8Iyq498Sg2MTgWdg/A8Tg2MSgRsy/scRg2MRgRsw/qcRg2MQgbdg/LchBvsSgScw/uchBvsQgTdg/PchBvclAo9g/PsQg/sQgf9g/McgBs9LBB5g/MckBs9DBF5h/OcgBrclAsP4z0oMbiMdAeO/BjF4O8kIGP81icHTpCJg/A1i8GYSETD+JjF4nEtHwPgZQwz+zyUjYPw8RAwedqkIGD+PIQavm2utvW+4iTnnZ2OMn8YYv44xvjJ8HmvO+f4Y45sxxudjjF/WWh/vfNJdXSkC744x/tr7Ds5vrTX3vuGeLhOBMcaYc67aF8htFX9Dl/pPAHhzIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxL/Y+gNfNOdfeN7yttdbc+wYeTwQO6MwjukLEajwHIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIO7F3gfwb3POtfcNdIjAway15t430OI5AHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEv9j7g1uaca+8b4EzmWjYDZZ4DECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCEPc33Gm/GI8qlCkAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"square(0,0,120,120)\n",
"square(40,40,80,80)\n",
"turtle.line((0,120),(60,150))\n",
"turtle.line((60,150),(120,120))\n",
"turtle.done()"
],
"execution_count": 7,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAQEAAAD4CAYAAADsBlOYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAABMBJREFUeJzt2K2OpFUYRtFzyBCCIUFiEdwEnqsAMQ7PpZCgUQiCwnAtaBwBLAnmoEhmPjrQ01Nd389eS5d4k6pnJ6fmWmsAXe/sfQCwLxGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBGAOBEImXN+Mud8b+87OBYRCJhzfjjn/GGM8fMY448555d738RxiMCFvTL+38YYn44xXo4xvh9jfD3n/F0MGEMELumB8X+x1vporfXtWuvlGOODMcaPQwwYInAp/zH+71793FrrTzHgHyJwAY8d/5YYMIYInNpTx78lBm0icEK3Gv+WGDSJwIk81/i3xKBFBE7gXuPfEoMGETiwvca/JQbXJgIHdJTxb4nBNYnAgRx1/FticC0icABnGf+WGFyDCOzorOPfEoNzE4EdXGX8W2JwTiJwR1cd/5YYnIsI3EFl/FticA4i8Iyq498Sg2MTgWdg/A8Tg2MSgRsy/scRg2MRgRsw/qcRg2MQgbdg/LchBvsSgScw/uchBvsQgTdg/PchBvclAo9g/PsQg/sQgf9g/McgBs9LBB5g/MckBs9DBF5h/OcgBrclAsP4z0oMbiMdAeO/BjF4O8kIGP81icHTpCJg/A1i8GYSETD+JjF4nEtHwPgZQwz+zyUjYPw8RAwedqkIGD+PIQavm2utvW+4iTnnZ2OMn8YYv44xvjJ8HmvO+f4Y45sxxudjjF/WWh/vfNJdXSkC744x/tr7Ds5vrTX3vuGeLhOBMcaYc67aF8htFX9Dl/pPAHhzIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxIgBxL/Y+gNfNOdfeN7yttdbc+wYeTwQO6MwjukLEajwHIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIE4EIO7F3gfwb3POtfcNdIjAway15t430OI5AHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEiAHEv9j7g1uaca+8b4EzmWjYDZZ4DECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCECcCEPc33Gm/GI8qlCkAAAAASUVORK5CYII=\n",
"text/plain": "<Figure size 432x288 with 1 Axes>"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## An Exercise\n",
"\n",
@ -715,57 +743,62 @@
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"trusted": true
},
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": [
"4.0"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import math\n",
"math.sqrt(16)"
],
"execution_count": 13,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 13,
"data": {
"text/plain": "4.0"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"cell_type": "code",
"outputs": [],
"source": [
"# Write your solution here"
],
"execution_count": null,
"outputs": []
]
}
],
"metadata": {
"interpreter": {
"hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49"
},
"kernelspec": {
"name": "python36",
"display_name": "Python 3.6",
"language": "python"
"language": "python",
"name": "python3"
},
"language_info": {
"mimetype": "text/x-python",
"nbconvert_exporter": "python",
"name": "python",
"pygments_lexer": "ipython3",
"version": "3.6.6",
"file_extension": ".py",
"codemirror_mode": {
"version": 3,
"name": "ipython"
}
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.9"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
}

Просмотреть файл

@ -28,7 +28,7 @@ If Python and pip are installed a version number will be displayed, such as *3.8
### Visual Studio Code
The instructions for this workshop assume you are using [Visual Studio Code](https://code.visualstudio.com?WT.mc_id=academic-49102-chrhar), an open source code editor. You will also need the [Pylance extension](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance&WT.mc_id=academic-49102-chrhar), which will provide additional functionality when writing Python.
The instructions for this workshop assume you are using [Visual Studio Code](https://code.visualstudio.com?WT.mc_id=academic-50029-jelooper), an open source code editor. You will also need the [Jupyter extension](https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter&WT.mc_id=academic-50029-jelooper), which will provide additional functionality when writing Python.
* Use [GitHub Codespaces](https://github.com/features/codespaces). Currently you need to apply for early access to this technology and there may be costs involved in using it, but it works well with Python.
* Use **Binder** by clicking on the button at the top of this page. Keep in mind that when using Binder all changes you make to notebooks are not saved by default, and the environment tends to expire after some time - thus it is very easy to lose your work.