mirror of
https://github.com/rasbt/python_reference.git
synced 2025-04-07 13:25:59 +00:00
self assessment
This commit is contained in:
parent
ccb3947fde
commit
4dac403cdc
@ -62,6 +62,7 @@
|
|||||||
"- [1. LG - Local vs. Global](#section_1) \n",
|
"- [1. LG - Local vs. Global](#section_1) \n",
|
||||||
"- [2. LEG - Local, Enclosed, and Global scope](#section_2) \n",
|
"- [2. LEG - Local, Enclosed, and Global scope](#section_2) \n",
|
||||||
"- [3. LEGB - Local, Enclosed, Global, Built-in](#section_3) \n",
|
"- [3. LEGB - Local, Enclosed, Global, Built-in](#section_3) \n",
|
||||||
|
"- [Self-assessment exercise](#assessment)\n",
|
||||||
"- [Conclusion](#conclusion) \n",
|
"- [Conclusion](#conclusion) \n",
|
||||||
"- [Solutions](#solutions)"
|
"- [Solutions](#solutions)"
|
||||||
]
|
]
|
||||||
@ -498,8 +499,6 @@
|
|||||||
"input": [
|
"input": [
|
||||||
"a_var = 'global variable'\n",
|
"a_var = 'global variable'\n",
|
||||||
"\n",
|
"\n",
|
||||||
"\n",
|
|
||||||
"\n",
|
|
||||||
"def len(in_var):\n",
|
"def len(in_var):\n",
|
||||||
" print('called my len() function')\n",
|
" print('called my len() function')\n",
|
||||||
" l = 0\n",
|
" l = 0\n",
|
||||||
@ -511,8 +510,7 @@
|
|||||||
" len_in_var = len(in_var)\n",
|
" len_in_var = len(in_var)\n",
|
||||||
" print('Input variable is of length', len_in_var)\n",
|
" print('Input variable is of length', len_in_var)\n",
|
||||||
"\n",
|
"\n",
|
||||||
"#a_func('Hello, World!')\n",
|
"#a_func('Hello, World!')"
|
||||||
" "
|
|
||||||
],
|
],
|
||||||
"language": "python",
|
"language": "python",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
@ -550,6 +548,65 @@
|
|||||||
"Since the exact same names can be used to map names to different objects - as long as the names are in different name spaces - there is no problem of reusing the name `len` to define our own length function (this is just for demonstration pruposes, it is NOT recommended). As we go up in Python's L -> E -> G -> B hierarchy, the function `a_func()` finds `len()` already in the global scope first before it attempts"
|
"Since the exact same names can be used to map names to different objects - as long as the names are in different name spaces - there is no problem of reusing the name `len` to define our own length function (this is just for demonstration pruposes, it is NOT recommended). As we go up in Python's L -> E -> G -> B hierarchy, the function `a_func()` finds `len()` already in the global scope first before it attempts"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"<a name =\"assessment\"></a>\n",
|
||||||
|
"<br>\n",
|
||||||
|
"<br>"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"# Self-assessment exercise"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"Now, after we went through a couple of exercises, let us quickly check where we are. So, one more time: What would the following code print out?"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"collapsed": false,
|
||||||
|
"input": [
|
||||||
|
"a = 'global'\n",
|
||||||
|
"\n",
|
||||||
|
"def outer():\n",
|
||||||
|
" \n",
|
||||||
|
" def len(in_var):\n",
|
||||||
|
" print('called my len() function: ', end=\"\")\n",
|
||||||
|
" l = 0\n",
|
||||||
|
" for i in in_var:\n",
|
||||||
|
" l += 1\n",
|
||||||
|
" return l\n",
|
||||||
|
" \n",
|
||||||
|
" a = 'local'\n",
|
||||||
|
" \n",
|
||||||
|
" def inner():\n",
|
||||||
|
" global len\n",
|
||||||
|
" nonlocal a\n",
|
||||||
|
" a += ' variable'\n",
|
||||||
|
" inner()\n",
|
||||||
|
" print('a is', a)\n",
|
||||||
|
" print(len(a))\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"outer()\n",
|
||||||
|
"\n",
|
||||||
|
"print(len(a))\n",
|
||||||
|
"print('a is', a)"
|
||||||
|
],
|
||||||
|
"language": "python",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"prompt_number": 59
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
@ -559,6 +616,13 @@
|
|||||||
"<br>"
|
"<br>"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"[[go to solution](#solutions)]"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
@ -675,6 +739,33 @@
|
|||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"prompt_number": 9
|
"prompt_number": 9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"collapsed": false,
|
||||||
|
"input": [
|
||||||
|
"# Execute to run the self-assessment solution\n",
|
||||||
|
"\n",
|
||||||
|
"sol = \"000010100110111101110101011101000110010101110010001010\"\\\n",
|
||||||
|
"\"0000101001001110100000101000001010011000010010000001101001011100110\"\\\n",
|
||||||
|
"\"0100000011011000110111101100011011000010110110000100000011101100110\"\\\n",
|
||||||
|
"\"0001011100100110100101100001011000100110110001100101000010100110001\"\\\n",
|
||||||
|
"\"1011000010110110001101100011001010110010000100000011011010111100100\"\\\n",
|
||||||
|
"\"1000000110110001100101011011100010100000101001001000000110011001110\"\\\n",
|
||||||
|
"\"1010110111001100011011101000110100101101111011011100011101000100000\"\\\n",
|
||||||
|
"\"0011000100110100000010100000101001100111011011000110111101100010011\"\\\n",
|
||||||
|
"\"0000101101100001110100000101000001010001101100000101001100001001000\"\\\n",
|
||||||
|
"\"0001101001011100110010000001100111011011000110111101100010011000010\"\\\n",
|
||||||
|
"\"1101100\"\n",
|
||||||
|
"\n",
|
||||||
|
"sol_str =''.join(chr(int(sol[i:i+8], 2)) for i in range(0, len(sol), 8))\n",
|
||||||
|
"for line in sol_str.split('\\n'):\n",
|
||||||
|
" print(line)"
|
||||||
|
],
|
||||||
|
"language": "python",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"prompt_number": 58
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"metadata": {}
|
"metadata": {}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user