در این مطلب، ویدئو کد نویسی زنده در پایتون نسخه 4.2 (Emacs) با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:29:12
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:01,280 –> 00:00:03,840
من یک حالت emacs به نام برنامهنویسی زنده
2
00:00:03,840 –> 00:00:05,839
در پایتون ساختهام که به شما امکان میدهد کد پایتون خود
3
00:00:05,839 –> 00:00:07,359
را هنگام تایپ آن اجرا کنید، به
4
00:00:07,359 –> 00:00:09,840
عنوان مثال این کد یک تبریک
5
00:00:09,840 –> 00:00:11,280
به دوست من آلیس چاپ میکند
6
00:00:11,280 –> 00:00:14,799
وقتی نام را تغییر میدهم تا
7
00:00:14,799 –> 00:00:16,800
صفحه نمایش را فوراً روی بهروزرسانیهای درست تغییر
8
00:00:16,800 –> 00:00:18,400
دهم. حتی باید
9
00:00:18,400 –> 00:00:19,840
فایل را
10
00:00:19,840 –> 00:00:21,680
در این آموزش ذخیره کنید، من قصد دارم
11
00:00:21,680 –> 00:00:24,960
دو
12
00:00:25,519 –> 00:00:28,000
چیز را نشان دهم: نمایش برنامه نویسی زنده که اخیراً نشان دادم
13
00:00:28,000 –> 00:00:28,800
14
00:00:28,800 –> 00:00:32,159
و آزمایش واحد زنده اگر می خواهید
15
00:00:32,159 –> 00:00:33,360
این ابزارها را امتحان کنید،
16
00:00:33,360 –> 00:00:35,680
می توانید به وب سایت بروید و
17
00:00:35,680 –> 00:00:37,360
دستورالعمل های نصب را پیدا
18
00:00:37,360 –> 00:00:39,920
کنید، همچنین می توانید
19
00:00:39,920 –> 00:00:41,440
اگر از emacs استفاده نمیکنید، نسخههای دیگر این
20
00:00:41,440 –> 00:00:43,680
را پیدا کنید، میتوانید نسخه pycharm را پیدا کنید که
21
00:00:43,680 –> 00:00:46,079
شامل برخی از گرافیکهای لاکپشت است،
22
00:00:46,079 –> 00:00:48,480
میتوانید نسخه متنی sublime را پیدا کنید یا
23
00:00:48,480 –> 00:00:49,680
اگر نمیخواهید چیزی نصب
24
00:00:49,680 –> 00:00:50,640
کنید، میتوانید یک
25
00:00:50,640 –> 00:00:54,000
نسخه آزمایشی کوچک را امتحان کنید که در آن اجرا میشود. مرورگر شما،
26
00:00:54,000 –> 00:00:58,960
پس بیایید با یک مثال بی اهمیت شروع کنیم،
27
00:00:58,960 –> 00:01:02,239
به راحتی می توانید ببینید که
28
00:01:02,239 –> 00:01:04,959
s با hello شروع می شود و سپس به hello world تبدیل می شود،
29
00:01:04,959 –> 00:01:07,680
30
00:01:07,760 –> 00:01:09,520
اما اکثر کدهایی که روی آن کار می کنید پیچیده تر هستند، با این
31
00:01:09,520 –> 00:01:11,040
حال
32
00:01:11,040 –> 00:01:12,799
شما نتیجه را با ru پیش بینی می کنید.
33
00:01:12,799 –> 00:01:14,799
از طریق کدی که در سر خود دارید یا
34
00:01:14,799 –> 00:01:16,720
آن را اجرا می کنید تا نتایج را مشاهده کنید
35
00:01:16,720 –> 00:01:18,560
یکی از اهداف اصلی این پروژه برای
36
00:01:18,560 –> 00:01:20,640
کدنویسی زنده این است که اگر می توانید نتایج کد را در مقابل شما ببینید، به مغز برنامه نویس اجازه می دهد
37
00:01:20,640 –> 00:01:22,000
به جای اجرای کد روی نوشتن کد تمرکز کند.
38
00:01:22,000 –> 00:01:24,640
39
00:01:24,640 –> 00:01:26,479
40
00:01:26,479 –> 00:01:26,960
41
00:01:26,960 –> 00:01:28,400
لازم نیست همه چیز را در ذهن خود نگه دارید
42
00:01:28,400 –> 00:01:30,640
43
00:01:30,799 –> 00:01:34,400
تا ببینید چه اتفاقی می افتد من می توانم
44
00:01:34,400 –> 00:01:37,439
حالت برنامه نویسی زنده را روشن
45
00:01:38,479 –> 00:01:41,840
کنم و این به من نشان می دهد که
46
00:01:41,840 –> 00:01:46,560
همانطور که انتظار می رود با سلام دنیا به پایان می رسد
47
00:01:47,840 –> 00:01:49,439
بیایید کار جالب تری انجام دهیم و
48
00:01:49,439 –> 00:01:51,040
یک تابع کتابخانه بنویسیم که
49
00:01:51,040 –> 00:01:53,200
جستجوی باینری برای یک مقدار در یک آرایه مرتب شده انجام
50
00:01:53,200 –> 00:01:54,159
51
00:01:54,159 –> 00:01:55,680
می دهد، کدگذاری زنده به ما نشان می دهد که
52
00:01:55,680 –> 00:01:57,119
در کد ما چه اتفاقی می افتد، بنابراین لازم نیست
53
00:01:57,119 –> 00:01:57,920
همه آن را
54
00:01:57,920 –> 00:02:02,719
در ذهن خود نگه داریم، بنابراین بیایید دوباره شروع
55
00:02:03,759 –> 00:02:08,318
کنیم و یک تابع جستجو را تعریف کنیم،
56
00:02:08,318 –> 00:02:09,758
بنابراین n عددی که می خواهیم به
57
00:02:09,758 –> 00:02:11,520
دنبال آن بگردیم و
58
00:02:11,520 –> 00:02:14,800
a در آرایه یا لیست
59
00:02:14,800 –> 00:02:19,200
اعداد مرتب شده ما است، اکنون
60
00:02:19,200 –> 00:02:22,239
با یک تابع بسیار گنگ شروع می کنیم
61
00:02:22,239 –> 00:02:24,080
که وقتی پیدا نمی کند هرگز
62
00:02:24,080 –> 00:02:26,000
چیزی را پیدا نمی کند
63
00:02:26,000 –> 00:02:27,280
64
00:02:27,280 –> 00:02:28,879
. در لیست و اگر انجام
65
00:02:28,879 –> 00:02:30,879
می دهد آن را پیدا نمی کند، یک عدد منفی برمی گرداند،
66
00:02:30,879 –> 00:02:32,640
67
00:02:32,640 –> 00:02:34,879
بنابراین یک تابع جستجوی بد است که هرگز
68
00:02:34,879 –> 00:02:35,760
چیزی پیدا نمی کند،
69
00:02:35,760 –> 00:02:37,360
اما بیایید ببینیم وقتی آن را صدا می زنیم چگونه کار می
70
00:02:37,360 –> 00:02:39,519
کند،
71
00:02:42,720 –> 00:02:44,560
بنابراین با آن تماس می گیریم، ما به دنبال
72
00:02:44,560 –> 00:02:46,640
شماره دو
73
00:02:46,640 –> 00:02:51,840
در لیست یک دو و چهار هستیم
74
00:02:52,239 –> 00:02:55,280
و همانطور که انتظار می رود، می توانیم ببینیم که
75
00:02:55,280 –> 00:02:57,920
i به یک منفی ختم می شود،
76
00:02:57,920 –> 00:03:00,159
یک منفی را از تابع برمی گردانیم
77
00:03:00,159 –> 00:03:04,319
و در i قرار می گیرد، همچنین می توانید ببینید
78
00:03:04,319 –> 00:03:07,920
که پارامترهای ورودی نمایش داده می شوند
79
00:03:07,920 –> 00:03:11,040
، عدد مورد نظر ما n 2 است
80
00:03:11,040 –> 00:03:12,640
و لیست اعداد برای نگاه
81
00:03:12,640 –> 00:03:16,720
کردن به a برابر 1 2 و 4 است. بنابراین
82
00:03:16,720 –> 00:03:19,120
بیایید سعی کنیم در لیست
83
00:03:19,120 –> 00:03:20,080
اعداد جستجو
84
00:03:20,080 –> 00:03:21,360
کنیم، اولین جایی که نگاه می کنیم در
85
00:03:21,360 –> 00:03:23,519
وسط است، بنابراین
86
00:03:23,519 –> 00:03:26,720
انتهای پایین
87
00:03:26,720 –> 00:03:30,000
لیست همیشه شاخص صفر است
88
00:03:30,000 –> 00:03:32,720
و پایان بالا را می توانیم با گرفتن محاسبه کنیم.
89
00:03:32,720 –> 00:03:33,760
90
00:03:33,760 –> 00:03:37,840
طول منهای یک
91
00:03:37,840 –> 00:03:39,519
و سپس وسط فقط
92
00:03:39,519 –> 00:03:40,959
میانگین آن دو است، بنابراین می گوییم
93
00:03:40,959 –> 00:03:44,080
mid برابر است با کم
94
00:03:44,080 –> 00:03:48,480
به علاوه زیاد تقسیم بر 2.
95
00:03:48,480 –> 00:03:50,720
بنابراین در سمت چپ می توانید
96
00:03:50,720 –> 00:03:51,840
کد ما را با
97
00:03:51,840 –> 00:03:56,000
فرمول هایی ببینید که مقادیر چقدر خواهد بود
98
00:03:56,000 –> 00:03:57,439
و سپس در سمت راست می
99
00:03:57,439 –> 00:03:59,280
توانید نتیجه محاسبه آن
100
00:03:59,280 –> 00:04:00,319
فرمول ها را مشاهده کنید
101
00:04:00,319 –> 00:04:02,480
و میتوانید ببینید اوه، ما با mid اشتباه کردهایم،
102
00:04:02,480 –> 00:04:03,920
103
00:04:03,920 –> 00:04:06,879
زیرا در پایتون یک تقسیم پایه به
104
00:04:06,879 –> 00:04:07,920
من یک float برمیگرداند
105
00:04:07,920 –> 00:04:10,879
آنچه من میخواهم یک عدد صحیح است، زیرا یک
106
00:04:10,879 –> 00:04:14,480
شاخص در لیست همیشه یک عدد صحیح است،
107
00:04:14,480 –> 00:04:16,880
بنابراین ما محاسبه کردهایم که
108
00:04:16,880 –> 00:04:18,000
شاخص چقدر است. از
109
00:04:18,000 –> 00:04:20,720
عدد وسط اکنون بیایید عدد واقعی را بدست
110
00:04:20,720 –> 00:04:21,839
آوریم که می گوییم
111
00:04:21,839 –> 00:04:26,800
v برابر است با وسط
112
00:04:26,800 –> 00:04:28,560
و می بینید که عدد وسط
113
00:04:28,560 –> 00:04:30,400
2 است بنابراین در نهایت به 2
114
00:04:30,400 –> 00:04:32,880
در v می رسیم، بنابراین اکنون بیایید بررسی کنیم
115
00:04:32,880 –> 00:04:34,479
که آیا این عددی است که ما هستیم به دنبال
116
00:04:34,479 –> 00:04:38,639
اینکه اگر n برابر با v
117
00:04:38,639 –> 00:04:41,520
باشد، ایندکس را در جایی که آن را پیدا کردیم در
118
00:04:41,520 –> 00:04:43,360
وسط
119
00:04:43,360 –> 00:04:45,280
خوب برمی گردانیم که خوش شانس بود که در وهله اول جستجو
120
00:04:45,280 –> 00:04:47,199
بودیم، بنابراین
121
00:04:47,199 –> 00:04:51,040
1 را برمی گردانیم و i برابر با 1 است. البته یک
122
00:04:51,040 –> 00:04:52,560
تابع جستجو معمولاً چیزی را که به دنبالش است پیدا نمی کند.
123
00:04:52,560 –> 00:04:53,280
124
00:04:53,280 –> 00:04:56,080
در وهله اول که به نظر می رسد، پس
125
00:04:56,080 –> 00:04:56,800
بیایید
126
00:04:56,800 –> 00:04:58,400
چیز کمی چالش برانگیزتر را امتحان کنیم و
127
00:04:58,400 –> 00:05:00,320
128
00:05:00,320 –> 00:05:04,240
در لیست قبلی به دنبال یک عدد بگردیم، بنابراین
129
00:05:04,240 –> 00:05:07,759
کاری که می خواهیم انجام
130
00:05:07,759 –> 00:05:11,199
دهیم این است که یک حلقه در آنجا قرار داده و به تدریج
131
00:05:11,199 –> 00:05:12,000
به دنبال موارد
132
00:05:12,000 –> 00:05:14,000
کوچکتر و کوچکتر بگردیم. بخشهای کوچکتری از
133
00:05:14,000 –> 00:05:15,600
لیست،
134
00:05:15,600 –> 00:05:17,840
بنابراین ما یک حلقه while قرار میدهیم و
135
00:05:17,840 –> 00:05:19,520
با whi شروع میکنیم درست است، ما
136
00:05:19,520 –> 00:05:21,120
در عرض یک دقیقه متوجه خواهیم شد که شرایط چگونه است،
137
00:05:21,120 –> 00:05:24,160
همه چیز را تغییر دادیم تا
138
00:05:24,160 –> 00:05:24,479
139
00:05:24,479 –> 00:05:28,560
در حلقه قرار بگیریم، اوه آن یکی را به درستی انجام نخواهیم داد
140
00:05:28,560 –> 00:05:31,520
و بنابراین در سمت راست
141
00:05:31,520 –> 00:05:32,240
اکنون می توانید
142
00:05:32,240 –> 00:05:34,400
ببینید که هر زمانی که از
143
00:05:34,400 –> 00:05:35,600
حلقه عبور می کند،
144
00:05:35,600 –> 00:05:39,520
یک ستون به نمایشگر اضافه می کند،
145
00:05:39,520 –> 00:05:43,199
بنابراین فرض کنید اگر عدد
146
00:05:43,199 –> 00:05:46,400
با
147
00:05:46,400 –> 00:05:49,840
آیتم وسط uh در قسمتی که در آن جستجو می کنیم مطابقت نداشت،
148
00:05:49,840 –> 00:05:52,400
خوب اگر عدد مورد نظر ما
149
00:05:52,400 –> 00:05:53,759
150
00:05:53,759 –> 00:05:56,800
n کمتر از مقدار باشد. ما در
151
00:05:56,800 –> 00:05:58,479
152
00:05:58,479 –> 00:06:01,840
وسط آن بخش پیدا کردیم، سپس باید به
153
00:06:01,840 –> 00:06:05,520
مجموعه کوچکتر نیمی از لیست نگاه
154
00:06:05,520 –> 00:06:09,440
کنیم، بنابراین می خواهیم بگوییم که شاخص بالا
155
00:06:09,440 –> 00:06:13,759
برابر با وسط
156
00:06:13,759 –> 00:06:17,759
منهای یک است و اکنون می توانید ببینید
157
00:06:17,759 –> 00:06:18,720
158
00:06:18,720 –> 00:06:20,960
که حلقه اجرا می شود. دوبرابر اولی همان کاری
159
00:06:20,960 –> 00:06:22,319
است که دفعه قبل انجام دادیم که فقط
160
00:06:22,319 –> 00:06:24,319
در وسط کل لیست به نظر میرسد،
161
00:06:24,319 –> 00:06:27,919
سپس مقدار بالا را به پایین به شاخص صفر میبریم،
162
00:06:27,919 –> 00:06:28,400
بنابراین اکنون
163
00:06:28,400 –> 00:06:31,199
کم و زیاد هر دو صفر هستند، این تنها چیزی
164
00:06:31,199 –> 00:06:32,000
165
00:06:32,000 –> 00:06:35,199
است که در لیست باید مشاهده شود. سپس
166
00:06:35,199 –> 00:06:37,360
اواسط راه بین صفر
167
00:06:37,360 –> 00:06:39,199
و صفر را محاسبه می کنیم که صفر است
168
00:06:39,199 –> 00:06:42,240
و مقدار o را بدست می آوریم ne که
169
00:06:42,240 –> 00:06:43,840
با عددی که به دنبال آن بودیم مطابقت دارد
170
00:06:43,840 –> 00:06:48,400
و شاخص صفر huzzah را برمیگردانیم
171
00:06:48,400 –> 00:06:50,160
حالا بیایید بعداً
172
00:06:50,160 –> 00:06:52,080
در لیست
173
00:06:52,080 –> 00:06:54,479
به دنبال چیزی بگردیم بنابراین شماره یک
174
00:06:54,479 –> 00:06:56,319
شماره چهار را جستجو
175
00:06:56,319 –> 00:06:59,360
176
00:06:59,360 –> 00:07:01,840
میکنیم و بنابراین اکنون فهرستی را در اینجا
177
00:07:01,840 –> 00:07:03,520
بررسی میکنیم. ببینید آیا با عدد وسط مطابقت دارد
178
00:07:03,520 –> 00:07:04,479
179
00:07:04,479 –> 00:07:07,680
نه اگر از عدد وسط
180
00:07:07,680 –> 00:07:10,160
کمتر است خیر اگر هیچکدام از آن ها نیست
181
00:07:10,160 –> 00:07:11,280
باید بزرگتر از
182
00:07:11,280 –> 00:07:14,319
آن باشد بنابراین اگر
183
00:07:14,319 –> 00:07:16,000
بزرگتر از چیزی است که می خواهیم به
184
00:07:16,000 –> 00:07:17,759
نیمه بزرگتر لیست
185
00:07:17,759 –> 00:07:21,520
در سمت راست نگاه کنیم می گوییم. و بنابراین
186
00:07:21,520 –> 00:07:22,800
عدد پایین را جابهجا
187
00:07:22,800 –> 00:07:25,599
میکنیم و میگوییم که برابر است با وسط بعلاوه
188
00:07:25,599 –> 00:07:27,520
یک
189
00:07:27,520 –> 00:07:30,800
آه، بنابراین مشکلی پیش آمده است،
190
00:07:30,800 –> 00:07:33,919
در اینجا با یک خطای شاخص مواجه
191
00:07:33,919 –> 00:07:35,440
شدهایم، حالا اینجا جایی است که تفاوت
192
00:07:35,440 –> 00:07:37,759
بین کدنویسی زنده
193
00:07:37,759 –> 00:07:39,759
و یک اشکالزدای معمولی را در یک
194
00:07:39,759 –> 00:07:41,360
دیباگر معمولی میبینیم. یا
195
00:07:41,360 –> 00:07:44,400
فقط کد را به طور معمول اجرا کنید، میبینید که در کجا
196
00:07:44,400 –> 00:07:47,039
اتفاقی افتاده است، مشکلی پیش آمده است
197
00:07:47,039 –> 00:07:49,360
و ممکن است یک ردیابی پشته دریافت کنید،
198
00:07:49,360 –> 00:07:52,400
اما معمولاً نمیبینید که چگونه در
199
00:07:52,400 –> 00:07:52,720
این
200
00:07:52,720 –> 00:07:56,080
موقعیت قرار گرفتهاید، در اینجا میتوانیم بخوانیم ما میتوانیم
201
00:07:56,080 –> 00:07:58,879
در زمان به عقب برویم. خواندن
202
00:07:58,879 –> 00:08:00,400
ba از میان این نمایشگرها به سمت عقب حرکت کنید،
203
00:08:00,400 –> 00:08:03,280
بنابراین خطای ایندکس
204
00:08:03,280 –> 00:08:03,840
در اینجا رخ داده است،
205
00:08:03,840 –> 00:08:06,000
میتوانید ببینید که شاخصی که استفاده
206
00:08:06,000 –> 00:08:07,360
میکنیم mid است
207
00:08:07,360 –> 00:08:09,360
و سپس یک قدم به عقب نگاه میکنیم و میبینیم
208
00:08:09,360 –> 00:08:11,120
mid برابر با سه است.
209
00:08:11,120 –> 00:08:14,479
210
00:08:14,479 –> 00:08:17,919
کرانه ها
211
00:08:17,919 –> 00:08:20,639
پس چگونه mid به b3 رسید خوب mid
212
00:08:20,639 –> 00:08:21,199
برابر است با
213
00:08:21,199 –> 00:08:24,319
کم به علاوه زیاد تقسیم بر دو
214
00:08:24,319 –> 00:08:28,000
بنابراین کم دو و زیاد است دو
215
00:08:28,000 –> 00:08:31,440
بنابراین میانگین آن ها باید دو باشد آه
216
00:08:31,440 –> 00:08:34,240
اینجا اشتباه ما است که تقسیم قبل از جمع اتفاق می افتد
217
00:08:34,240 –> 00:08:35,760
218
00:08:35,760 –> 00:08:38,000
بنابراین در نهایت با دو تقسیم بر دو
219
00:08:38,000 –> 00:08:40,080
یک به علاوه 2 می شود 3.
220
00:08:40,080 –> 00:08:42,159
این درست نیست، باید چند
221
00:08:42,159 –> 00:08:44,959
پرانتز در اینجا قرار
222
00:08:44,959 –> 00:08:48,720
دهیم، بنابراین آن و آن را اضافه می کنیم
223
00:08:48,720 –> 00:08:51,440
و اکنون می بینیم که mid همان 2 است که
224
00:08:51,440 –> 00:08:52,560
می
225
00:08:52,560 –> 00:08:54,480
خواهیم، مقدار 4 را به دست می آوریم که همان چیزی است که می کن
226
00:08:54,480 –> 00:08:56,080
م. دوباره به دنبال آن هستیم و ما
227
00:08:56,080 –> 00:09:00,080
ایندکس 2 را برمی گردانیم.
228
00:09:00,080 –> 00:09:01,839
در حال حاضر بیایید سعی کنیم عددی را جستجو
229
00:09:01,839 –> 00:09:04,080
کنیم که در لیست
230
00:09:04,080 –> 00:09:07,680
نیست، بنابراین به 3
231
00:09:07,680 –> 00:09:11,839
می رویم و با خطای زمان اجرا مواجه می شویم که
232
00:09:11,839 –> 00:09:13,920
محدودیت پیام کدگذاری زنده از حد گذشته است بسیار خوب،
233
00:09:13,920 –> 00:09:16,240
بنابراین
234
00:09:16,240 –> 00:09:19,760
اگر اینجا را جستجو کنیم می توانید اینجا چه اتفاقی می افتد. ببینید
235
00:09:19,760 –> 00:09:23,040
که اساساً
236
00:09:23,040 –> 00:09:26,640
در یک حلقه بی نهایت گیر کرده است، بنابراین اگر ما برویم
237
00:09:26,640 –> 00:09:28,880
در اینجا بالا و ما به پنجره دیگر تغییر می کنیم،
238
00:09:28,880 –> 00:09:30,399
239
00:09:30,399 –> 00:09:33,920
اگر به سمت راست
240
00:09:33,920 –> 00:09:38,320
بروید، می توانید تکرارهای بعدی حلقه را ببینید،
241
00:09:38,320 –> 00:09:41,680
بنابراین چه اتفاقی
242
00:09:41,680 –> 00:09:44,480
می افتد شما حدس می زنم که اوه، در حالی که درست است، در نهایت
243
00:09:44,480 –> 00:09:46,000
ایده خوبی نبود، پس
244
00:09:46,000 –> 00:09:48,560
چه زمانی باید متوقف شویم
245
00:09:48,560 –> 00:09:50,160
246
00:09:50,160 –> 00:09:53,279
247
00:09:53,279 –> 00:09:56,080
وقتی به
248
00:09:56,080 –> 00:09:57,839
حلقه سوم می
249
00:09:57,839 –> 00:10:01,360
250
00:10:01,360 –> 00:10:05,120
251
00:10:05,120 –> 00:10:08,160
رسیم، می توانید ببینید که اعداد بعد از حلقه دوم تغییر نمی کنند. این که
252
00:10:08,160 –> 00:10:11,200
بالا یک است و پایین دو است،
253
00:10:11,200 –> 00:10:13,600
بنابراین وقتی وارد این حلقه سوم شدیم، پایین تر از زیاد
254
00:10:13,600 –> 00:10:16,160
255
00:10:16,160 –> 00:10:19,600
است، یعنی از
256
00:10:19,600 –> 00:10:21,040
هر دو طرف تا وسط آمده ایم و
257
00:10:21,040 –> 00:10:22,000
از
258
00:10:22,000 –> 00:10:25,839
آن رد شده ایم، بنابراین به جای اینکه بگوییم درست است،
259
00:10:25,839 –> 00:10:29,760
می دانید که این زمان تسلیم شدن زمانی است که
260
00:10:29,760 –> 00:10:33,200
اگر در حالی که
261
00:10:33,200 –> 00:10:36,640
پایین کمتر یا مساوی با زیاد است،
262
00:10:36,640 –> 00:10:38,959
ادامه می دهیم و اگر از
263
00:10:38,959 –> 00:10:40,079
آن نقطه گذشتید،
264
00:10:40,079 –> 00:10:42,959
وقت آن است که رها کنید، بنابراین در اینجا بعد از
265
00:10:42,959 –> 00:10:43,839
حلقه دوم،
266
00:10:43,839 –> 00:10:47,519
high کمتر از پایین است و بنابراین
267
00:10:47,519 –> 00:10:50,880
از این حلقه خارج می شود و -1 را برمیگرداند
268
00:10:50,880 –> 00:10:52,160
زیرا آن عددی را که شما به آن
269
00:10:52,160 –> 00:10:54,880
نگاه میکردید g for در حال حاضر در لیست
270
00:10:54,880 –> 00:10:58,000
نبود، فکر میکنم کارم تمام شده است، میتوانم
271
00:10:58,000 –> 00:10:59,600
کمی با آن بازی کنم،
272
00:10:59,600 –> 00:11:05,200
شاید یک لیست طولانیتر درست کنم
273
00:11:06,000 –> 00:11:08,560
و چند مورد دیگر را در آن جستجو کنم
274
00:11:08,560 –> 00:11:12,240
، ببینیم آیا شش وجود دارد
275
00:11:12,839 –> 00:11:16,079
و
276
00:11:16,079 –> 00:11:20,640
600 مورد نیست، خوب است بسیار خوب
277
00:11:20,640 –> 00:11:22,160
و تنها چیز دیگر این است که اگر من
278
00:11:22,160 –> 00:11:23,760
یک
279
00:11:23,760 –> 00:11:26,720
تابع جستجوی واقعی مینویسم و آن را در یک ما
280
00:11:26,720 –> 00:11:28,160
ول کتابخانه میگذارم، ن
281
00:11:28,160 –> 00:11:31,440
یخواهم این فراخوانی را
282
00:11:31,440 –> 00:11:32,959
ا تابع جستجو در پا
283
00:11:32,959 –> 00:11:36,480
ین فایل داشته باشم تا بتوانم با
284
00:11:36,480 –> 00:11:39,360
ستفاده از یک تابع مشابه از آن محافظت کنم. الگوی روشی که
285
00:11:39,360 –> 00:11:40,880
تابع اصلی خود را فراخوانی می کنید،
286
00:11:40,880 –> 00:11:45,440
بنابراین می گویم که اگر نام برابر است،
287
00:11:45,440 –> 00:11:48,880
اما به جای main یک
288
00:11:48,880 –> 00:11:51,360
نام ویژه برای آن وجود دارد به نام برنامه نویسی زنده زمانی
289
00:11:51,360 –> 00:11:53,839
که آن را در این حالت برنامه نویسی زنده اجرا می کنید
290
00:11:53,839 –> 00:11:56,560
و به این ترتیب زمانی که
291
00:11:56,560 –> 00:11:57,200
292
00:11:57,200 –> 00:11:59,360
در حال ویرایش آن هستید، آن را به گونه ای تبدیل می کند که در حالت کدنویسی زنده
293
00:11:59,360 –> 00:12:01,200
میتوانید ببینید چه اتفاقی میافتد،
294
00:12:01,200 –> 00:12:02,800
اما وقتی
295
00:12:02,800 –> 00:12:04,639
این ماژول را از یک برنامه واقعی وارد میکنید، این مورد فراخوانی نمیشود،
296
00:12:04,639 –> 00:12:07,040
297
00:12:07,040 –> 00:12:10,079
حالا بیایید از کدنویسی زنده به
298
00:12:10,079 –> 00:12:13,279
تستهای واحد زنده تغییر مکان دهیم، همانطور که در حال انجام آن بودیم
299
00:12:13,279 –> 00:12:16,399
و هر
300
00:12:16,399 –> 00:12:17,600
بار که تغییر میدادیم، تابع جستجو را ایجاد میکردیم.
301
00:12:17,600 –> 00:12:20,000
پارامترهای برای فراخوانی تابع جستجو
302
00:12:20,000 –> 00:12:21,760
با
303
00:12:21,760 –> 00:12:25,600
آن یک مورد آزمایشی خوب میسازد،
304
00:12:25,600 –> 00:12:29,200
بنابراین برای بخش بعدی من میخواهم
305
00:12:29,200 –> 00:12:32,959
یک تابع دیگر بسازم و مجموعهای
306
00:12:32,959 –> 00:12:33,360
307
00:12:33,360 –> 00:12:37,200
از تستهای واحد را در حین پیشروی بسازم،
308
00:12:37,200 –> 00:12:41,120
بنابراین اجازه دهید سوئیچ کدگذاری زنده
309
00:12:42,240 –> 00:12:45,519
را به یک تابع جدید uh خاموش
310
00:12:45,519 –> 00:12:49,120
کنیم. فایل جدید و
311
00:12:49,120 –> 00:12:52,399
من یک کلاس آزمایشی را در اینجا راه اندازی کرده ام
312
00:12:52,399 –> 00:12:55,519
و این نمایش از
313
00:12:55,519 –> 00:12:56,480
314
00:12:56,480 –> 00:12:59,519
ماژول تست واحد داخلی استفاده می کند، اما این
315
00:12:59,519 –> 00:13:00,240
تکنیک با
316
00:13:00,240 –> 00:13:04,639
تست pi یا هر چارچوب تست دیگری که
317
00:13:04,839 –> 00:13:06,160
دوست دارید به خوبی کار می کند،
318
00:13:06,160 –> 00:13:09,200
بنابراین ابتدا من می
319
00:13:09,200 –> 00:13:11,600
نویسم روشی که ما می خواهیم
320
00:13:11,600 –> 00:13:12,639
این تابع را صدا کنیم،
321
00:13:12,639 –> 00:13:15,839
این تابع کمی
322
00:13:15,839 –> 00:13:16,720
عجیب است
323
00:13:16,720 –> 00:13:19,040
که باید تعداد کلمات یک لیست را بشمارد،
324
00:13:19,040 –> 00:13:20,880
بنابراین بیایید
325
00:13:20,880 –> 00:13:24,160
با لیست کلمات شروع
326
00:13:24,560 –> 00:13:27,680
کنیم، مثلا سیب و
327
00:13:27,680 –> 00:13:32,240
لیمو، قسمت عجیب این است که
328
00:13:32,240 –> 00:13:34,720
وقتی دو کلمه دارای حروف یکسانی
329
00:13:34,720 –> 00:13:35,440
مانند
330
00:13:35,440 –> 00:13:38,240
لیمو و خربزه هستند، فقط آنها را
331
00:13:38,240 –> 00:13:40,240
یکی می شماریم، بنابراین در واقع آناگرام ها
332
00:13:40,240 –> 00:13:40,639
را می
333
00:13:40,639 –> 00:13:44,880
شماریم نه همه کلمات
334
00:13:44,880 –> 00:13:47,040
درست نیست، اما بیایید راحت تر شروع کنیم و
335
00:13:47,040 –> 00:13:48,639
از شر خربزه خلاص می
336
00:13:48,639 –> 00:13:51,120
شویم و فقط لیستی را بشمارید
337
00:13:51,120 –> 00:13:53,440
که هیچ تکراری در آن وجود ندارد
338
00:13:53,440 –> 00:13:55,199
بنابراین لیست کلمات به این
339
00:13:55,199 –> 00:13:56,720
شکل است
340
00:13:56,720 –> 00: