Skip to content

Commit a08be74

Browse files
committed
chore: ch1 note
1 parent cf3161c commit a08be74

File tree

1 file changed

+117
-80
lines changed

1 file changed

+117
-80
lines changed

01-data-model/data-model.ipynb

Lines changed: 117 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -134,16 +134,16 @@
134134
},
135135
{
136136
"cell_type": "code",
137-
"execution_count": 6,
137+
"execution_count": 8,
138138
"metadata": {},
139139
"outputs": [
140140
{
141141
"data": {
142142
"text/plain": [
143-
"Card(rank='6', suit='diamonds')"
143+
"Card(rank='K', suit='diamonds')"
144144
]
145145
},
146-
"execution_count": 6,
146+
"execution_count": 8,
147147
"metadata": {},
148148
"output_type": "execute_result"
149149
}
@@ -157,7 +157,7 @@
157157
},
158158
{
159159
"cell_type": "code",
160-
"execution_count": 7,
160+
"execution_count": 9,
161161
"metadata": {},
162162
"outputs": [
163163
{
@@ -168,7 +168,7 @@
168168
" Card(rank='4', suit='spades')]"
169169
]
170170
},
171-
"execution_count": 7,
171+
"execution_count": 9,
172172
"metadata": {},
173173
"output_type": "execute_result"
174174
}
@@ -179,7 +179,7 @@
179179
},
180180
{
181181
"cell_type": "code",
182-
"execution_count": 8,
182+
"execution_count": 10,
183183
"metadata": {},
184184
"outputs": [
185185
{
@@ -191,7 +191,7 @@
191191
" Card(rank='A', suit='hearts')]"
192192
]
193193
},
194-
"execution_count": 8,
194+
"execution_count": 10,
195195
"metadata": {},
196196
"output_type": "execute_result"
197197
}
@@ -202,7 +202,7 @@
202202
},
203203
{
204204
"cell_type": "code",
205-
"execution_count": 9,
205+
"execution_count": 11,
206206
"metadata": {},
207207
"outputs": [
208208
{
@@ -271,7 +271,7 @@
271271
},
272272
{
273273
"cell_type": "code",
274-
"execution_count": 10,
274+
"execution_count": 12,
275275
"metadata": {},
276276
"outputs": [
277277
{
@@ -340,7 +340,7 @@
340340
},
341341
{
342342
"cell_type": "code",
343-
"execution_count": 11,
343+
"execution_count": 13,
344344
"metadata": {},
345345
"outputs": [
346346
{
@@ -349,7 +349,7 @@
349349
"True"
350350
]
351351
},
352-
"execution_count": 11,
352+
"execution_count": 13,
353353
"metadata": {},
354354
"output_type": "execute_result"
355355
}
@@ -360,7 +360,7 @@
360360
},
361361
{
362362
"cell_type": "code",
363-
"execution_count": 12,
363+
"execution_count": 14,
364364
"metadata": {},
365365
"outputs": [
366366
{
@@ -369,7 +369,7 @@
369369
"False"
370370
]
371371
},
372-
"execution_count": 12,
372+
"execution_count": 14,
373373
"metadata": {},
374374
"output_type": "execute_result"
375375
}
@@ -380,65 +380,65 @@
380380
},
381381
{
382382
"cell_type": "code",
383-
"execution_count": 13,
383+
"execution_count": 16,
384384
"metadata": {},
385385
"outputs": [
386386
{
387387
"name": "stdout",
388388
"output_type": "stream",
389389
"text": [
390-
"Card(rank='2', suit='clubs')\n",
391-
"Card(rank='2', suit='diamonds')\n",
392-
"Card(rank='2', suit='hearts')\n",
393-
"Card(rank='2', suit='spades')\n",
394-
"Card(rank='3', suit='clubs')\n",
395-
"Card(rank='3', suit='diamonds')\n",
396-
"Card(rank='3', suit='hearts')\n",
397-
"Card(rank='3', suit='spades')\n",
398-
"Card(rank='4', suit='clubs')\n",
399-
"Card(rank='4', suit='diamonds')\n",
400-
"Card(rank='4', suit='hearts')\n",
401-
"Card(rank='4', suit='spades')\n",
402-
"Card(rank='5', suit='clubs')\n",
403-
"Card(rank='5', suit='diamonds')\n",
404-
"Card(rank='5', suit='hearts')\n",
405-
"Card(rank='5', suit='spades')\n",
406-
"Card(rank='6', suit='clubs')\n",
407-
"Card(rank='6', suit='diamonds')\n",
408-
"Card(rank='6', suit='hearts')\n",
409-
"Card(rank='6', suit='spades')\n",
410-
"Card(rank='7', suit='clubs')\n",
411-
"Card(rank='7', suit='diamonds')\n",
412-
"Card(rank='7', suit='hearts')\n",
413-
"Card(rank='7', suit='spades')\n",
414-
"Card(rank='8', suit='clubs')\n",
415-
"Card(rank='8', suit='diamonds')\n",
416-
"Card(rank='8', suit='hearts')\n",
417-
"Card(rank='8', suit='spades')\n",
418-
"Card(rank='9', suit='clubs')\n",
419-
"Card(rank='9', suit='diamonds')\n",
420-
"Card(rank='9', suit='hearts')\n",
421-
"Card(rank='9', suit='spades')\n",
422-
"Card(rank='10', suit='clubs')\n",
423-
"Card(rank='10', suit='diamonds')\n",
424-
"Card(rank='10', suit='hearts')\n",
425-
"Card(rank='10', suit='spades')\n",
426-
"Card(rank='J', suit='clubs')\n",
427-
"Card(rank='J', suit='diamonds')\n",
428-
"Card(rank='J', suit='hearts')\n",
429-
"Card(rank='J', suit='spades')\n",
430-
"Card(rank='Q', suit='clubs')\n",
431-
"Card(rank='Q', suit='diamonds')\n",
432-
"Card(rank='Q', suit='hearts')\n",
433-
"Card(rank='Q', suit='spades')\n",
434-
"Card(rank='K', suit='clubs')\n",
435-
"Card(rank='K', suit='diamonds')\n",
436-
"Card(rank='K', suit='hearts')\n",
437-
"Card(rank='K', suit='spades')\n",
438-
"Card(rank='A', suit='clubs')\n",
439-
"Card(rank='A', suit='diamonds')\n",
440-
"Card(rank='A', suit='hearts')\n",
441-
"Card(rank='A', suit='spades')\n"
390+
"0 Card(rank='2', suit='clubs')\n",
391+
"1 Card(rank='2', suit='diamonds')\n",
392+
"2 Card(rank='2', suit='hearts')\n",
393+
"3 Card(rank='2', suit='spades')\n",
394+
"4 Card(rank='3', suit='clubs')\n",
395+
"5 Card(rank='3', suit='diamonds')\n",
396+
"6 Card(rank='3', suit='hearts')\n",
397+
"7 Card(rank='3', suit='spades')\n",
398+
"8 Card(rank='4', suit='clubs')\n",
399+
"9 Card(rank='4', suit='diamonds')\n",
400+
"10 Card(rank='4', suit='hearts')\n",
401+
"11 Card(rank='4', suit='spades')\n",
402+
"12 Card(rank='5', suit='clubs')\n",
403+
"13 Card(rank='5', suit='diamonds')\n",
404+
"14 Card(rank='5', suit='hearts')\n",
405+
"15 Card(rank='5', suit='spades')\n",
406+
"16 Card(rank='6', suit='clubs')\n",
407+
"17 Card(rank='6', suit='diamonds')\n",
408+
"18 Card(rank='6', suit='hearts')\n",
409+
"19 Card(rank='6', suit='spades')\n",
410+
"20 Card(rank='7', suit='clubs')\n",
411+
"21 Card(rank='7', suit='diamonds')\n",
412+
"22 Card(rank='7', suit='hearts')\n",
413+
"23 Card(rank='7', suit='spades')\n",
414+
"24 Card(rank='8', suit='clubs')\n",
415+
"25 Card(rank='8', suit='diamonds')\n",
416+
"26 Card(rank='8', suit='hearts')\n",
417+
"27 Card(rank='8', suit='spades')\n",
418+
"28 Card(rank='9', suit='clubs')\n",
419+
"29 Card(rank='9', suit='diamonds')\n",
420+
"30 Card(rank='9', suit='hearts')\n",
421+
"31 Card(rank='9', suit='spades')\n",
422+
"32 Card(rank='10', suit='clubs')\n",
423+
"33 Card(rank='10', suit='diamonds')\n",
424+
"34 Card(rank='10', suit='hearts')\n",
425+
"35 Card(rank='10', suit='spades')\n",
426+
"36 Card(rank='J', suit='clubs')\n",
427+
"37 Card(rank='J', suit='diamonds')\n",
428+
"38 Card(rank='J', suit='hearts')\n",
429+
"39 Card(rank='J', suit='spades')\n",
430+
"40 Card(rank='Q', suit='clubs')\n",
431+
"41 Card(rank='Q', suit='diamonds')\n",
432+
"42 Card(rank='Q', suit='hearts')\n",
433+
"43 Card(rank='Q', suit='spades')\n",
434+
"44 Card(rank='K', suit='clubs')\n",
435+
"45 Card(rank='K', suit='diamonds')\n",
436+
"46 Card(rank='K', suit='hearts')\n",
437+
"47 Card(rank='K', suit='spades')\n",
438+
"48 Card(rank='A', suit='clubs')\n",
439+
"49 Card(rank='A', suit='diamonds')\n",
440+
"50 Card(rank='A', suit='hearts')\n",
441+
"51 Card(rank='A', suit='spades')\n"
442442
]
443443
}
444444
],
@@ -449,8 +449,8 @@
449449
" rank_value = FrenchDeck.ranks.index(card.rank)\n",
450450
" return rank_value * len(suit_values) + suit_values[card.suit]\n",
451451
"\n",
452-
"for card in sorted(deck, key=spades_high):\n",
453-
" print(card)"
452+
"for idx, card in enumerate(sorted(deck, key=spades_high)):\n",
453+
" print(idx, card)"
454454
]
455455
},
456456
{
@@ -469,9 +469,20 @@
469469
},
470470
{
471471
"cell_type": "code",
472-
"execution_count": 14,
472+
"execution_count": 36,
473473
"metadata": {},
474-
"outputs": [],
474+
"outputs": [
475+
{
476+
"data": {
477+
"text/plain": [
478+
"\"Vector('1', 2)\""
479+
]
480+
},
481+
"execution_count": 36,
482+
"metadata": {},
483+
"output_type": "execute_result"
484+
}
485+
],
475486
"source": [
476487
"import math\n",
477488
"\n",
@@ -496,12 +507,15 @@
496507
" return Vector(x, y)\n",
497508
"\n",
498509
" def __mul__(self, scalar):\n",
499-
" return Vector(self.x * scalar, self.y * scalar)"
510+
" return Vector(self.x * scalar, self.y * scalar)\n",
511+
" \n",
512+
"v = Vector(\"1\", 2)\n",
513+
"v.__repr__()"
500514
]
501515
},
502516
{
503517
"cell_type": "code",
504-
"execution_count": 15,
518+
"execution_count": 41,
505519
"metadata": {},
506520
"outputs": [
507521
{
@@ -510,7 +524,7 @@
510524
"Vector(4, 5)"
511525
]
512526
},
513-
"execution_count": 15,
527+
"execution_count": 41,
514528
"metadata": {},
515529
"output_type": "execute_result"
516530
}
@@ -523,7 +537,7 @@
523537
},
524538
{
525539
"cell_type": "code",
526-
"execution_count": 16,
540+
"execution_count": 42,
527541
"metadata": {},
528542
"outputs": [
529543
{
@@ -532,7 +546,7 @@
532546
"5.0"
533547
]
534548
},
535-
"execution_count": 16,
549+
"execution_count": 42,
536550
"metadata": {},
537551
"output_type": "execute_result"
538552
}
@@ -544,7 +558,7 @@
544558
},
545559
{
546560
"cell_type": "code",
547-
"execution_count": 17,
561+
"execution_count": 43,
548562
"metadata": {},
549563
"outputs": [
550564
{
@@ -553,7 +567,7 @@
553567
"Vector(9, 12)"
554568
]
555569
},
556-
"execution_count": 17,
570+
"execution_count": 43,
557571
"metadata": {},
558572
"output_type": "execute_result"
559573
}
@@ -564,7 +578,7 @@
564578
},
565579
{
566580
"cell_type": "code",
567-
"execution_count": 18,
581+
"execution_count": 44,
568582
"metadata": {},
569583
"outputs": [
570584
{
@@ -573,14 +587,37 @@
573587
"15.0"
574588
]
575589
},
576-
"execution_count": 18,
590+
"execution_count": 44,
577591
"metadata": {},
578592
"output_type": "execute_result"
579593
}
580594
],
581595
"source": [
582596
"abs(v * 3)"
583597
]
598+
},
599+
{
600+
"cell_type": "code",
601+
"execution_count": 47,
602+
"metadata": {},
603+
"outputs": [
604+
{
605+
"ename": "AttributeError",
606+
"evalue": "'NoneType' object has no attribute '__len__'",
607+
"output_type": "error",
608+
"traceback": [
609+
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
610+
"\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)",
611+
"Cell \u001b[0;32mIn[47], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m a \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 2\u001b[0m a\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__bool__\u001b[39m()\n\u001b[0;32m----> 3\u001b[0m \u001b[43ma\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__len__\u001b[39;49m()\n",
612+
"\u001b[0;31mAttributeError\u001b[0m: 'NoneType' object has no attribute '__len__'"
613+
]
614+
}
615+
],
616+
"source": [
617+
"a = None\n",
618+
"a.__bool__()\n",
619+
"a.__len__()"
620+
]
584621
}
585622
],
586623
"metadata": {
@@ -599,7 +636,7 @@
599636
"name": "python",
600637
"nbconvert_exporter": "python",
601638
"pygments_lexer": "ipython3",
602-
"version": "3.8.0"
639+
"version": "3.9.6"
603640
}
604641
},
605642
"nbformat": 4,

0 commit comments

Comments
 (0)