ch02: automated tests
This commit is contained in:
21
02-array-seq/README.md
Normal file
21
02-array-seq/README.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# An Array of Sequences
|
||||||
|
|
||||||
|
Sample code for Chapter 2 of _Fluent Python 2e_ by Luciano Ramalho (O'Reilly, 2020)
|
||||||
|
|
||||||
|
## Running the tests
|
||||||
|
|
||||||
|
### Doctests
|
||||||
|
|
||||||
|
Use Python's standard ``doctest`` module, for example:
|
||||||
|
|
||||||
|
$ python3 -m doctest bisect_demo.py -v
|
||||||
|
|
||||||
|
### Jupyter Notebook
|
||||||
|
|
||||||
|
Install ``pytest`` and the ``nbval`` plugin:
|
||||||
|
|
||||||
|
$ pip install pytest nbval
|
||||||
|
|
||||||
|
Run:
|
||||||
|
|
||||||
|
$ pytest --nbval
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
Sample code for Chapter 2 - "An array of sequences"
|
|
||||||
|
|
||||||
From the book "Fluent Python" by Luciano Ramalho (O'Reilly, 2015)
|
|
||||||
http://shop.oreilly.com/product/0636920032519.do
|
|
||||||
@@ -923,21 +923,10 @@
|
|||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 35,
|
"execution_count": 35,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [],
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"text/plain": [
|
|
||||||
"139840389979848"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"execution_count": 35,
|
|
||||||
"metadata": {},
|
|
||||||
"output_type": "execute_result"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"source": [
|
"source": [
|
||||||
"l = [1, 2, 3]\n",
|
"l = [1, 2, 3]\n",
|
||||||
"id(l)"
|
"idl = id(l)"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -948,7 +937,7 @@
|
|||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"text/plain": [
|
"text/plain": [
|
||||||
"[1, 2, 3, 1, 2, 3]"
|
"4414271936"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 36,
|
"execution_count": 36,
|
||||||
@@ -956,31 +945,32 @@
|
|||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"source": [
|
||||||
|
"# NBVAL_IGNORE_OUTPUT\n",
|
||||||
|
"idl"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 37,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"text/plain": [
|
||||||
|
"[1, 2, 3, 1, 2, 3]"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"execution_count": 37,
|
||||||
|
"metadata": {},
|
||||||
|
"output_type": "execute_result"
|
||||||
|
}
|
||||||
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"l *= 2\n",
|
"l *= 2\n",
|
||||||
"l"
|
"l"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": 37,
|
|
||||||
"metadata": {},
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"text/plain": [
|
|
||||||
"139840389979848"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"execution_count": 37,
|
|
||||||
"metadata": {},
|
|
||||||
"output_type": "execute_result"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"source": [
|
|
||||||
"id(l) # same list"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 38,
|
"execution_count": 38,
|
||||||
@@ -989,7 +979,7 @@
|
|||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"text/plain": [
|
"text/plain": [
|
||||||
"139840321336880"
|
"True"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 38,
|
"execution_count": 38,
|
||||||
@@ -998,29 +988,59 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"t = (1, 2, 3)\n",
|
"id(l) == idl # same list"
|
||||||
"id(t)"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 39,
|
"execution_count": 39,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"t = (1, 2, 3)\n",
|
||||||
|
"idt = id(t)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 40,
|
||||||
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"text/plain": [
|
"text/plain": [
|
||||||
"139840440497640"
|
"4414275328"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 39,
|
"execution_count": 40,
|
||||||
|
"metadata": {},
|
||||||
|
"output_type": "execute_result"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"# NBVAL_IGNORE_OUTPUT\n",
|
||||||
|
"idt"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 41,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"text/plain": [
|
||||||
|
"False"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"execution_count": 41,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"t *= 2\n",
|
"t *= 2\n",
|
||||||
"id(t) # new tuple"
|
"id(t) == idt # new tuple"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1032,7 +1052,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 40,
|
"execution_count": 42,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1053,7 +1073,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 41,
|
"execution_count": 43,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1062,7 +1082,7 @@
|
|||||||
"(1, 2, [30, 40, 50, 60])"
|
"(1, 2, [30, 40, 50, 60])"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 41,
|
"execution_count": 43,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -1080,7 +1100,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 42,
|
"execution_count": 44,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1115,7 +1135,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 43,
|
"execution_count": 45,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1124,7 +1144,7 @@
|
|||||||
"['apple', 'banana', 'grape', 'raspberry']"
|
"['apple', 'banana', 'grape', 'raspberry']"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 43,
|
"execution_count": 45,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -1136,7 +1156,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 44,
|
"execution_count": 46,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1145,53 +1165,13 @@
|
|||||||
"['grape', 'raspberry', 'apple', 'banana']"
|
"['grape', 'raspberry', 'apple', 'banana']"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 44,
|
|
||||||
"metadata": {},
|
|
||||||
"output_type": "execute_result"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"source": [
|
|
||||||
"fruits"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": 45,
|
|
||||||
"metadata": {},
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"text/plain": [
|
|
||||||
"['raspberry', 'grape', 'banana', 'apple']"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"execution_count": 45,
|
|
||||||
"metadata": {},
|
|
||||||
"output_type": "execute_result"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"source": [
|
|
||||||
"sorted(fruits, reverse=True)"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": 46,
|
|
||||||
"metadata": {},
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"text/plain": [
|
|
||||||
"['grape', 'apple', 'banana', 'raspberry']"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"execution_count": 46,
|
"execution_count": 46,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"sorted(fruits, key=len)"
|
"fruits"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1202,7 +1182,7 @@
|
|||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"text/plain": [
|
"text/plain": [
|
||||||
"['raspberry', 'banana', 'grape', 'apple']"
|
"['raspberry', 'grape', 'banana', 'apple']"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 47,
|
"execution_count": 47,
|
||||||
@@ -1211,7 +1191,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"sorted(fruits, key=len, reverse=True)"
|
"sorted(fruits, reverse=True)"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1222,7 +1202,7 @@
|
|||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"text/plain": [
|
"text/plain": [
|
||||||
"['grape', 'raspberry', 'apple', 'banana']"
|
"['grape', 'apple', 'banana', 'raspberry']"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 48,
|
"execution_count": 48,
|
||||||
@@ -1231,7 +1211,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"fruits"
|
"sorted(fruits, key=len)"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1242,7 +1222,7 @@
|
|||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"text/plain": [
|
"text/plain": [
|
||||||
"['apple', 'banana', 'grape', 'raspberry']"
|
"['raspberry', 'banana', 'grape', 'apple']"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 49,
|
"execution_count": 49,
|
||||||
@@ -1250,6 +1230,46 @@
|
|||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"source": [
|
||||||
|
"sorted(fruits, key=len, reverse=True)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 50,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"text/plain": [
|
||||||
|
"['grape', 'raspberry', 'apple', 'banana']"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"execution_count": 50,
|
||||||
|
"metadata": {},
|
||||||
|
"output_type": "execute_result"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"fruits"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 51,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"text/plain": [
|
||||||
|
"['apple', 'banana', 'grape', 'raspberry']"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"execution_count": 51,
|
||||||
|
"metadata": {},
|
||||||
|
"output_type": "execute_result"
|
||||||
|
}
|
||||||
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"fruits.sort()\n",
|
"fruits.sort()\n",
|
||||||
"fruits"
|
"fruits"
|
||||||
@@ -1271,7 +1291,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 50,
|
"execution_count": 52,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1318,7 +1338,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 51,
|
"execution_count": 53,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1354,7 +1374,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 52,
|
"execution_count": 54,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1363,7 +1383,7 @@
|
|||||||
"['F', 'D', 'D', 'C', 'C', 'B', 'B', 'A', 'A']"
|
"['F', 'D', 'D', 'C', 'C', 'B', 'B', 'A', 'A']"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 52,
|
"execution_count": 54,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -1385,7 +1405,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 53,
|
"execution_count": 55,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1394,7 +1414,7 @@
|
|||||||
"['F', 'F', 'D', 'D', 'C', 'C', 'B', 'B', 'A']"
|
"['F', 'F', 'D', 'D', 'C', 'C', 'B', 'B', 'A']"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 53,
|
"execution_count": 55,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -1416,7 +1436,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 54,
|
"execution_count": 56,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1470,40 +1490,6 @@
|
|||||||
"#### Example 2-19. Creating, saving, and loading a large array of floats"
|
"#### Example 2-19. Creating, saving, and loading a large array of floats"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": 55,
|
|
||||||
"metadata": {},
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"text/plain": [
|
|
||||||
"0.5963321947530882"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"execution_count": 55,
|
|
||||||
"metadata": {},
|
|
||||||
"output_type": "execute_result"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"source": [
|
|
||||||
"from array import array\n",
|
|
||||||
"from random import random\n",
|
|
||||||
"\n",
|
|
||||||
"floats = array('d', (random() for i in range(10**7)))\n",
|
|
||||||
"floats[-1]"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": 56,
|
|
||||||
"metadata": {},
|
|
||||||
"outputs": [],
|
|
||||||
"source": [
|
|
||||||
"with open('floats.bin', 'wb') as fp:\n",
|
|
||||||
" floats.tofile(fp)"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 57,
|
"execution_count": 57,
|
||||||
@@ -1520,6 +1506,40 @@
|
|||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"source": [
|
||||||
|
"from array import array\n",
|
||||||
|
"from random import random\n",
|
||||||
|
"\n",
|
||||||
|
"floats = array('d', (random() for i in range(10**7)))\n",
|
||||||
|
"floats[-1]"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 58,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"with open('floats.bin', 'wb') as fp:\n",
|
||||||
|
" floats.tofile(fp)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 59,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"text/plain": [
|
||||||
|
"0.5963321947530882"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"execution_count": 59,
|
||||||
|
"metadata": {},
|
||||||
|
"output_type": "execute_result"
|
||||||
|
}
|
||||||
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"floats2 = array('d')\n",
|
"floats2 = array('d')\n",
|
||||||
"\n",
|
"\n",
|
||||||
@@ -1531,7 +1551,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 58,
|
"execution_count": 60,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1540,7 +1560,7 @@
|
|||||||
"True"
|
"True"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 58,
|
"execution_count": 60,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -1565,7 +1585,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 59,
|
"execution_count": 61,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1574,7 +1594,7 @@
|
|||||||
"5"
|
"5"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 59,
|
"execution_count": 61,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -1587,7 +1607,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 60,
|
"execution_count": 62,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1596,7 +1616,7 @@
|
|||||||
"-2"
|
"-2"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 60,
|
"execution_count": 62,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -1607,7 +1627,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 61,
|
"execution_count": 63,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1616,7 +1636,7 @@
|
|||||||
"[254, 255, 255, 255, 0, 0, 1, 0, 2, 0]"
|
"[254, 255, 255, 255, 0, 0, 1, 0, 2, 0]"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 61,
|
"execution_count": 63,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -1628,7 +1648,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 62,
|
"execution_count": 64,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1637,7 +1657,7 @@
|
|||||||
"array('h', [-2, -1, 1024, 1, 2])"
|
"array('h', [-2, -1, 1024, 1, 2])"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 62,
|
"execution_count": 64,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -1663,7 +1683,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 63,
|
"execution_count": 65,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1672,7 +1692,7 @@
|
|||||||
"array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])"
|
"array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 63,
|
"execution_count": 65,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -1685,7 +1705,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 64,
|
"execution_count": 66,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1694,7 +1714,7 @@
|
|||||||
"numpy.ndarray"
|
"numpy.ndarray"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 64,
|
"execution_count": 66,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -1705,7 +1725,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 65,
|
"execution_count": 67,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1714,7 +1734,7 @@
|
|||||||
"(12,)"
|
"(12,)"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 65,
|
"execution_count": 67,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -1725,7 +1745,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 66,
|
"execution_count": 68,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1736,7 +1756,7 @@
|
|||||||
" [ 8, 9, 10, 11]])"
|
" [ 8, 9, 10, 11]])"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 66,
|
"execution_count": 68,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -1748,7 +1768,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 67,
|
"execution_count": 69,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1757,7 +1777,7 @@
|
|||||||
"array([ 8, 9, 10, 11])"
|
"array([ 8, 9, 10, 11])"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 67,
|
"execution_count": 69,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -1768,7 +1788,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 68,
|
"execution_count": 70,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1777,7 +1797,7 @@
|
|||||||
"9"
|
"9"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 68,
|
"execution_count": 70,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -1788,7 +1808,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 69,
|
"execution_count": 71,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1797,7 +1817,7 @@
|
|||||||
"array([1, 5, 9])"
|
"array([1, 5, 9])"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 69,
|
"execution_count": 71,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -1808,7 +1828,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 70,
|
"execution_count": 72,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1820,7 +1840,7 @@
|
|||||||
" [ 3, 7, 11]])"
|
" [ 3, 7, 11]])"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 70,
|
"execution_count": 72,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -1838,7 +1858,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 71,
|
"execution_count": 73,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
@@ -1849,7 +1869,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 72,
|
"execution_count": 74,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
@@ -1858,7 +1878,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 73,
|
"execution_count": 75,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1867,7 +1887,7 @@
|
|||||||
"array([0.29150425, 0.33893554, 0.08112756])"
|
"array([0.29150425, 0.33893554, 0.08112756])"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 73,
|
"execution_count": 75,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -1878,7 +1898,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 74,
|
"execution_count": 76,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1887,7 +1907,7 @@
|
|||||||
"array([0.14575213, 0.16946777, 0.04056378])"
|
"array([0.14575213, 0.16946777, 0.04056378])"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 74,
|
"execution_count": 76,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -1899,16 +1919,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 75,
|
"execution_count": 77,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"text/plain": [
|
"text/plain": [
|
||||||
"0.00606649300607387"
|
"True"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 75,
|
"execution_count": 77,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -1916,12 +1936,14 @@
|
|||||||
"source": [
|
"source": [
|
||||||
"from time import perf_counter as pc\n",
|
"from time import perf_counter as pc\n",
|
||||||
"\n",
|
"\n",
|
||||||
"t0 = pc(); floats /= 3; pc() - t0"
|
"t0 = pc()\n",
|
||||||
|
"floats /= 3\n",
|
||||||
|
"(pc() - t0) < 0.01"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 76,
|
"execution_count": 78,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
@@ -1932,7 +1954,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 77,
|
"execution_count": 79,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1941,7 +1963,7 @@
|
|||||||
"memmap([0.29150425, 0.33893554, 0.08112756])"
|
"memmap([0.29150425, 0.33893554, 0.08112756])"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 77,
|
"execution_count": 79,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -1966,7 +1988,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 78,
|
"execution_count": 80,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1975,7 +1997,7 @@
|
|||||||
"deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])"
|
"deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 78,
|
"execution_count": 80,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -1989,7 +2011,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 79,
|
"execution_count": 81,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -1998,7 +2020,7 @@
|
|||||||
"deque([7, 8, 9, 0, 1, 2, 3, 4, 5, 6])"
|
"deque([7, 8, 9, 0, 1, 2, 3, 4, 5, 6])"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 79,
|
"execution_count": 81,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -2010,7 +2032,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 80,
|
"execution_count": 82,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -2019,7 +2041,7 @@
|
|||||||
"deque([1, 2, 3, 4, 5, 6, 7, 8, 9, 0])"
|
"deque([1, 2, 3, 4, 5, 6, 7, 8, 9, 0])"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 80,
|
"execution_count": 82,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -2031,7 +2053,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 81,
|
"execution_count": 83,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -2040,7 +2062,7 @@
|
|||||||
"deque([-1, 1, 2, 3, 4, 5, 6, 7, 8, 9])"
|
"deque([-1, 1, 2, 3, 4, 5, 6, 7, 8, 9])"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 81,
|
"execution_count": 83,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -2052,7 +2074,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 82,
|
"execution_count": 84,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -2061,7 +2083,7 @@
|
|||||||
"deque([3, 4, 5, 6, 7, 8, 9, 11, 22, 33])"
|
"deque([3, 4, 5, 6, 7, 8, 9, 11, 22, 33])"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 82,
|
"execution_count": 84,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -2073,7 +2095,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 83,
|
"execution_count": 85,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -2082,7 +2104,7 @@
|
|||||||
"deque([40, 30, 20, 10, 3, 4, 5, 6, 7, 8])"
|
"deque([40, 30, 20, 10, 3, 4, 5, 6, 7, 8])"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 83,
|
"execution_count": 85,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -2108,7 +2130,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 84,
|
"execution_count": 86,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
@@ -2117,7 +2139,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 85,
|
"execution_count": 87,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -2144,7 +2166,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 86,
|
"execution_count": 88,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -2153,7 +2175,7 @@
|
|||||||
"[0, '1', 5, 6, '9', 14, 19, '23', 28, '28']"
|
"[0, '1', 5, 6, '9', 14, 19, '23', 28, '28']"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 86,
|
"execution_count": 88,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -2166,7 +2188,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 87,
|
"execution_count": 89,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -2175,7 +2197,7 @@
|
|||||||
"[0, '1', 14, 19, '23', 28, '28', 5, 6, '9']"
|
"[0, '1', 14, 19, '23', 28, '28', 5, 6, '9']"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 87,
|
"execution_count": 89,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@@ -2208,7 +2230,7 @@
|
|||||||
"name": "python",
|
"name": "python",
|
||||||
"nbconvert_exporter": "python",
|
"nbconvert_exporter": "python",
|
||||||
"pygments_lexer": "ipython3",
|
"pygments_lexer": "ipython3",
|
||||||
"version": "3.7.2"
|
"version": "3.8.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbformat": 4,
|
"nbformat": 4,
|
||||||
|
|||||||
@@ -1,3 +1,41 @@
|
|||||||
|
"""
|
||||||
|
bisect_demo.py
|
||||||
|
|
||||||
|
Demonstration of ``bisect.bisect``::
|
||||||
|
|
||||||
|
>>> import bisect
|
||||||
|
>>> demo(bisect.bisect)
|
||||||
|
31 @ 14 | | | | | | | | | | | | | |31
|
||||||
|
30 @ 14 | | | | | | | | | | | | | |30
|
||||||
|
29 @ 13 | | | | | | | | | | | | |29
|
||||||
|
23 @ 11 | | | | | | | | | | |23
|
||||||
|
22 @ 9 | | | | | | | | |22
|
||||||
|
10 @ 5 | | | | |10
|
||||||
|
8 @ 5 | | | | |8
|
||||||
|
5 @ 3 | | |5
|
||||||
|
2 @ 1 |2
|
||||||
|
1 @ 1 |1
|
||||||
|
0 @ 0 0
|
||||||
|
|
||||||
|
|
||||||
|
Demonstration of ``bisect.bisect_left``::
|
||||||
|
|
||||||
|
>>> demo(bisect.bisect_left)
|
||||||
|
31 @ 14 | | | | | | | | | | | | | |31
|
||||||
|
30 @ 13 | | | | | | | | | | | | |30
|
||||||
|
29 @ 12 | | | | | | | | | | | |29
|
||||||
|
23 @ 9 | | | | | | | | |23
|
||||||
|
22 @ 9 | | | | | | | | |22
|
||||||
|
10 @ 5 | | | | |10
|
||||||
|
8 @ 4 | | | |8
|
||||||
|
5 @ 2 | |5
|
||||||
|
2 @ 1 |2
|
||||||
|
1 @ 0 1
|
||||||
|
0 @ 0 0
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
# BEGIN BISECT_DEMO
|
# BEGIN BISECT_DEMO
|
||||||
import bisect
|
import bisect
|
||||||
import sys
|
import sys
|
||||||
|
|||||||
@@ -1,3 +1,16 @@
|
|||||||
|
"""
|
||||||
|
metro_lat_long.py
|
||||||
|
|
||||||
|
Demonstration of nested tuple unpacking::
|
||||||
|
|
||||||
|
>>> main()
|
||||||
|
| lat. | long.
|
||||||
|
Mexico City | 19.4333 | -99.1333
|
||||||
|
New York-Newark | 40.8086 | -74.0204
|
||||||
|
Sao Paulo | -23.5478 | -46.6358
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
metro_areas = [
|
metro_areas = [
|
||||||
('Tokyo', 'JP', 36.933, (35.689722, 139.691667)), # <1>
|
('Tokyo', 'JP', 36.933, (35.689722, 139.691667)), # <1>
|
||||||
('Delhi NCR', 'IN', 21.935, (28.613889, 77.208889)),
|
('Delhi NCR', 'IN', 21.935, (28.613889, 77.208889)),
|
||||||
@@ -6,8 +19,12 @@ metro_areas = [
|
|||||||
('Sao Paulo', 'BR', 19.649, (-23.547778, -46.635833)),
|
('Sao Paulo', 'BR', 19.649, (-23.547778, -46.635833)),
|
||||||
]
|
]
|
||||||
|
|
||||||
print('{:15} | {:^9} | {:^9}'.format('', 'lat.', 'long.'))
|
def main():
|
||||||
fmt = '{:15} | {:9.4f} | {:9.4f}'
|
print('{:15} | {:^9} | {:^9}'.format('', 'lat.', 'long.'))
|
||||||
for name, cc, pop, (latitude, longitude) in metro_areas: # <2>
|
fmt = '{:15} | {:9.4f} | {:9.4f}'
|
||||||
if longitude <= 0: # <3>
|
for name, cc, pop, (latitude, longitude) in metro_areas: # <2>
|
||||||
print(fmt.format(name, latitude, longitude))
|
if longitude <= 0: # <3>
|
||||||
|
print(fmt.format(name, latitude, longitude))
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
|
|||||||
4
02-array-seq/test.sh
Executable file
4
02-array-seq/test.sh
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
python3 -m doctest bisect_demo.py
|
||||||
|
python3 -m doctest metro_lat_long.py
|
||||||
|
pytest -q --nbval
|
||||||
Reference in New Issue
Block a user