در این مطلب، ویدئو تطبیق الگوی پویا با پایتون با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:16:13
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,960 –> 00:00:03,280
به ارائه
2
00:00:03,280 –> 00:00:05,680
الگوی پویای مقاله ما که با پایتون برای
3
00:00:05,680 –> 00:00:08,720
سمپوزیوم زبان پویا 2020 مطابقت دارد خوش آمدید
4
00:00:08,720 –> 00:00:10,800
نام من توبیاس کون است و میخواهم
5
00:00:10,800 –> 00:00:11,840
6
00:00:11,840 –> 00:00:14,480
جنبههای کلیدی مقاله خود را امشب به
7
00:00:14,480 –> 00:00:15,839
شما ارائه دهم، البته شما توضیح بسیار
8
00:00:15,839 –> 00:00:16,400
9
00:00:16,400 –> 00:00:18,400
دقیقتری از نحوه انجام آن خواهید یافت. ما این
10
00:00:18,400 –> 00:00:21,439
ویژگیها را در پایتون در مقاله واقعی پیادهسازی کردیم
11
00:00:21,439 –> 00:00:23,279
همچنین توجه داشته باشید که یک
12
00:00:23,279 –> 00:00:25,119
پیشنهاد بهبود پایتون همراه
13
00:00:25,119 –> 00:00:26,960
با جزئیات بیشتر در
14
00:00:26,960 –> 00:00:30,400
سمت پیادهسازی وجود
15
00:00:30,400 –> 00:00:32,000
دارد که معمولاً تطبیق الگو را
16
00:00:32,000 –> 00:00:34,719
به عنوان ابزاری برای زبانهای تایپشده
17
00:00:34,719 –> 00:00:36,640
و کاربردی در نظر میگیرید،
18
00:00:36,640 –> 00:00:39,440
بنابراین ما تصمیم گرفتیم نحوه انجام آن را بررسی کنیم.
19
00:00:39,440 –> 00:00:41,760
ادغام و تطبیق این ویژگی با
20
00:00:41,760 –> 00:00:44,960
زبان برنامه نویسی پویا python
21
00:00:44,960 –> 00:00:47,120
در این ارائه ابتدا
22
00:00:47,120 –> 00:00:48,000
به طور خلاصه به
23
00:00:48,000 –> 00:00:50,480
تطبیق الگو به طور کلی نگاه می کنیم
24
00:00:50,480 –> 00:00:51,120
و سپس
25
00:00:51,120 –> 00:00:54,559
نحوه محاسبه اشیاء پویا را
26
00:00:54,559 –> 00:00:56,960
می توان
27
00:00:56,960 –> 00:00:59,840
در مقاله واقعی
28
00:01:01,199 –> 00:01:03,359
هدف تطبیق الگو پیدا کرد. همانطور که
29
00:01:03,359 –> 00:01:04,479
30
00:01:04,479 –> 00:01:06,960
میدانیم فیلتر کردن و استخراج دادههایی است
31
00:01:06,960 –> 00:01:09,520
که در ساختارهای درختی سازماندهی شدهاند
32
00:01:09,520 –> 00:01:12,000
به این معناست که میخواهیم
33
00:01:12,000 –> 00:01:14,159
برخی از محدودیتهای ساختاری را بر روی دادههایی
34
00:01:14,159 –> 00:01:16,479
که کد ما قرار است با آنها کار کند، اعمال کنیم
35
00:01:16,479 –> 00:01:18,960
و سپس بهطور خودکار
36
00:01:18,960 –> 00:01:20,560
بیتهای مربوطه از اطلاعات را
37
00:01:20,560 –> 00:01:25,119
از آن دادهها استخراج کنیم و آنها را بیشتر پردازش
38
00:01:25,119 –> 00:01:28,560
کنیم، اجازه دهید با یک مثال ساده شروع کنیم
39
00:01:28,560 –> 00:01:30,479
، عبارت در اینجا فقط یک محصول است. از
40
00:01:30,479 –> 00:01:32,240
یک عدد و یک متغیر
41
00:01:32,240 –> 00:01:34,560
می توانیم این را در
42
00:01:34,560 –> 00:01:37,360
درخت نحو انتزاعی با یک گره عملگر باینری
43
00:01:37,360 –> 00:01:40,079
حاوی سه گره دیگر بیان کنیم، یکی
44
00:01:40,079 –> 00:01:41,079
برای عدد
45
00:01:41,079 –> 00:01:44,079
123 یکی برای عملگر ستاره برای
46
00:01:44,079 –> 00:01:45,280
ضرب
47
00:01:45,280 –> 00:01:47,759
و یکی برای نام n که نشان دهنده
48
00:01:47,759 –> 00:01:49,040
متغیر است،
49
00:01:49,040 –> 00:01:51,600
می توانید این را به صورت بنویسید. یک تاپل یا
50
00:01:51,600 –> 00:01:52,960
شیء
51
00:01:52,960 –> 00:01:56,079
برچسبگذاری شده در صورت تمایل که در آن binob یک تگ یا کلاس است که به دنبال
52
00:01:56,079 –> 00:01:56,479
آن یک
53
00:01:56,479 –> 00:01:58,799
تاپل واقعی حاوی سه
54
00:01:58,799 –> 00:02:00,079
عنصر مربوطه
55
00:02:00,079 –> 00:02:04,240
که این گره عملگر باینری را تشکیل میدهند،
56
00:02:04,640 –> 00:02:06,799
اکنون برای تطبیق الگو، فرض
57
00:02:06,799 –> 00:02:08,560
میکنیم که دادههایی
58
00:02:08,560 –> 00:02:11,840
مانند ساختار درختی به ما داده میشود. مانند
59
00:02:11,840 –> 00:02:13,680
گره عملگر باینری که به تازگی مشاهده کردید
60
00:02:13,680 –> 00:02:14,720
61
00:02:14,720 –> 00:02:17,520
و سپس یک الگو یا
62
00:02:17,520 –> 00:02:18,720
الگو را
63
00:02:18,720 –> 00:02:20,800
بر روی ساختار داده ها مشخص می کنیم
64
00:02:20,800 –> 00:02:22,480
که انتظار داریم چگونه باشد.
65
00:02:22,480 –> 00:02:24,640
در این حالت، گره عملگر باینری
66
00:02:24,640 –> 00:02:25,760
در بالا در واقع
67
00:02:25,760 –> 00:02:28,959
با الگو یا الگوی زیر مطابقت دارد،
68
00:02:28,959 –> 00:02:32,480
بنابراین میتوانیم عدد 123 را به
69
00:02:32,480 –> 00:02:33,680
اولین شکاف
70
00:02:33,680 –> 00:02:36,319
و نام n را به شکاف سوم اختصاص
71
00:02:36,319 –> 00:02:38,239
دهیم که به ما امکان میدهد این سه عنصر را استخراج کرده
72
00:02:38,239 –> 00:02:39,040
73
00:02:39,040 –> 00:02:43,360
و در متغیرهای x ذخیره کنیم. و y
74
00:02:44,239 –> 00:02:46,400
در واقعیت البته ما می
75
00:02:46,400 –> 00:02:48,480
خواهیم بیش از یک ساختار ممکن
76
00:02:48,480 –> 00:02:50,640
که داده های ما ممکن است
77
00:02:50,640 –> 00:02:53,760
در این مورد داشته باشند را در نظر بگیریم، به عنوان مثال،
78
00:02:53,760 –> 00:02:57,360
یک گره عملگر یکنواخت با دو عنصر
79
00:02:57,360 –> 00:02:59,680
یا یک گره عملگر باینری را برای
80
00:02:59,680 –> 00:03:03,040
ضرب در نظر می گیریم همانطور که قبلاً
81
00:03:03,040 –> 00:03:05,519
در در مورد اول فقط یک
82
00:03:05,519 –> 00:03:06,959
بیت از اطلاعات را استخراج می کنیم
83
00:03:06,959 –> 00:03:09,040
و در حالت دوم در واقع
84
00:03:09,040 –> 00:03:10,720
دو بیت را استخراج می کنیم
85
00:03:10,720 –> 00:03:14,480
و سپس آنها را
86
00:03:15,360 –> 00:03:17,840
در کد پایتون پردازش می کنیم، این را از طریق یک
87
00:03:17,840 –> 00:03:19,440
دستور مطابقت بیان می کنیم
88
00:03:19,440 –> 00:03:21,519
که در آن مطابقت صفحه کلید توسط موضوع داده دنبال می شود
89
00:03:21,519 –> 00:03:23,200
،
90
00:03:23,200 –> 00:03:26,000
این همان داده ای است که ما داریم. ورودی داده می
91
00:03:26,000 –> 00:03:27,840
شود که می خواهیم آن را تجزیه و تحلیل کنیم و
92
00:03:27,840 –> 00:03:30,239
اطلاعات را از آن استخراج کنیم و
93
00:03:30,239 –> 00:03:32,480
سپس یک یا چند
94
00:03:32,480 –> 00:03:33,840
بند موردی را دنبال می کنیم که
95
00:03:33,840 –> 00:03:36,640
هر کدام از آنها با الگوی خاص خود
96
00:03:36,640 –> 00:03:37,360
به ما می
97
00:03:37,360 –> 00:03:39,760
گوید که در نوع ساختاری که
98
00:03:39,760 –> 00:03:40,400
در این
99
00:03:40,400 –> 00:03:43,120
مورد خاص انتظار داریم و نوع
100
00:03:43,120 –> 00:03:46,080
اطلاعاتی که میخواهیم از آنها استخراج کنیم،
101
00:03:46,080 –> 00:03:49,599
توجه داشته باشید که هر بند موردی دارای
102
00:03:49,599 –> 00:03:52,640
کد فرآیند خاص خود است تا سپس
103
00:03:52,640 –> 00:03:56,080
دادههایی را که در اینجا استخراج میشوند، بیشتر مدیریت کند
104
00:03:56,799 –> 00:03:59,840
، یک مثال بسیار ساده یک
105
00:03:59,840 –> 00:04:00,640
تابع سادهسازی است.
106
00:04:00,640 –> 00:04:03,120
که انتظار یک عبارت آزاد از نحو انتزاعی را
107
00:04:03,120 –> 00:04:04,480
دارد
108
00:04:04,480 –> 00:04:06,319
و سپس به دو ساختار ممکن اجازه می دهد
109
00:04:06,319 –> 00:04:09,280
تا آنها را ساده تر کنند،
110
00:04:09,280 –> 00:04:11,120
در حالت اول، ما یک گره عملگر یکنواخت داریم
111
00:04:11,120 –> 00:04:13,599
که حاوی یک
112
00:04:13,599 –> 00:04:15,920
گره عملگر یکنواخت نیست،
113
00:04:15,920 –> 00:04:18,639
این نشان دهنده یک منهای منهای برخی از
114
00:04:18,639 –> 00:04:19,680
عبارت ها است
115
00:04:19,680 –> 00:04:21,759
در آن صورت ما می توانیم فقط آن را لغو کنیم.
116
00:04:21,759 –> 00:04:24,240
منهای و برگرداندن ساده سازی
117
00:04:24,240 –> 00:04:24,720
118
00:04:24,720 –> 00:04:27,440
عبارت در مرکز در حالت دوم
119
00:04:27,440 –> 00:04:30,160
، یک گره عملگر باینری داریم
120
00:04:30,160 –> 00:04:32,479
که نشان دهنده ضرب یک
121
00:04:32,479 –> 00:04:34,720
عبارت با عدد یک است،
122
00:04:34,720 –> 00:04:37,680
در این صورت ممکن است تصمیم بگیریم که فقط می توانیم
123
00:04:37,680 –> 00:04:39,919
ضرب را دور بریزیم و عدد را
124
00:04:39,919 –> 00:04:41,520
برگردانیم. سادهسازی
125
00:04:41,520 –> 00:04:42,080
عبارت
126
00:04:42,080 –> 00:04:46,479
سمت چپ در واقعیت، البته
127
00:04:46,479 –> 00:04:49,600
این موارد موارد بسیار بیشتری
128
00:04:49,600 –> 00:04:50,800
برای توضیح بیشتر خواهد داشت.
129
00:04:50,800 –> 00:04:53,840
تنوع ساختاری، اما این
130
00:04:53,840 –> 00:04:56,240
در واقع باید ایده
131
00:04:56,240 –> 00:04:56,960
و احساس
132
00:04:56,960 –> 00:05:00,560
اصلی تطابق الگو در پایتون را منتقل کند
133
00:05:01,840 –> 00:05:04,880
، روشی متفاوت از نحوه نگاه کردن به
134
00:05:04,880 –> 00:05:06,160
تطبیق الگو
135
00:05:06,160 –> 00:05:09,120
، فکر کردن به تطبیق الگو یا در نظر
136
00:05:09,120 –> 00:05:10,240
گرفتن یک الگو
137
00:05:10,240 –> 00:05:13,039
به عنوان سازنده یک ساختار درختی
138
00:05:13,039 –> 00:05:15,759
مانند یک تاپل است. بگویید
139
00:05:15,759 –> 00:05:18,560
که در این مورد در سمت
140
00:05:18,560 –> 00:05:19,280
چپ،
141
00:05:19,280 –> 00:05:21,680
ساختاری برای یک گره عملگر باینری داریم
142
00:05:21,680 –> 00:05:22,720
که در آن مورد اول
143
00:05:22,720 –> 00:05:25,759
عدد یک است، دومی
144
00:05:25,759 –> 00:05:27,440
عملگر ستاره است،
145
00:05:27,440 –> 00:05:31,280
اما مورد سوم سوراخی است
146
00:05:31,280 –> 00:05:34,400
با برچسب y، بنابراین مقداری از آن را از دست می دهیم.
147
00:05:34,400 –> 00:05:36,400
اطلاعات
148
00:05:36,400 –> 00:05:39,840
و ما می خواهیم که شی به
149
00:05:39,840 –> 00:05:42,160
دست آمده توسط این سازنده برابر با
150
00:05:42,160 –> 00:05:43,919
موضوعی باشد که داده شده است،
151
00:05:43,919 –> 00:05:47,039
بنابراین می خواهیم مقداری برای
152
00:05:47,039 –> 00:05:49,440
y پیدا کنیم که بتوانیم آن را در اینجا وصل کنیم تا
153
00:05:49,440 –> 00:05:51,039
ساختار سمت چپ
154
00:05:51,039 –> 00:05:54,240
همان شی را به دست دهد که موضوعی که
155
00:05:54,240 –> 00:05:56,240
به
156
00:05:56,240 –> 00:05:58,880
عبارت دیگر داده شده است. با دادن یک الگوی p با
157
00:05:58,880 –> 00:05:59,919
متغیرهای x
158
00:05:59,919 –> 00:06:03,000
y و غیره و موضوع به عنوان جایگزینی را پیدا کنید
159
00:06:03,000 –> 00:06:04,639
160
00:06:04,639 –> 00:06:06,880
که به هر یک از متغیرهای الگو مقداری اختصاص می دهد به
161
00:06:06,880 –> 00:06:08,240
162
00:06:08,240 –> 00:06:11,440
طوری که اگر متغیرهای مربوطه را با t جایگزین کنیم.
163
00:06:11,440 –> 00:06:12,319
164
00:06:12,319 –> 00:06:15,360
مقادیر وارث در
165
00:06:15,360 –> 00:06:18,560
الگو، موضوع را برمیگردانیم،
166
00:06:18,639 –> 00:06:21,120
بنابراین به
167
00:06:21,120 –> 00:06:22,319
محض اینکه
168
00:06:22,319 –> 00:06:25,280
از تاپلهای برچسبگذاریشده به اشیاء واقعی
169
00:06:25,280 –> 00:06:27,600
منتقل میشویم، این قسمت جالب است.
170
00:06:27,600 –> 00:06:28,800
171
00:06:28,800 –> 00:06:31,680
172
00:06:31,680 –> 00:06:33,759
عناصر آن به
173
00:06:33,759 –> 00:06:34,880
صورت متوالی
174
00:06:34,880 –> 00:06:37,280
به آنها اشاره می کند، اما
175
00:06:37,280 –> 00:06:38,880
176
00:06:38,880 –> 00:06:41,919
از طرف دیگر یک کلاس ممکن است ساختار یک شی را
177
00:06:41,919 –> 00:06:44,080
به طور کامل تعیین یا توصیف نکند،
178
00:06:44,080 –> 00:06:46,240
179
00:06:46,240 –> 00:06:48,639
مثلاً یک شی
180
00:06:48,639 –> 00:06:50,880
که نمونه ای از یک زیر کلاس
181
00:06:50,880 –> 00:06:53,120
یا در پایتون است، زیرا یک
182
00:06:53,120 –> 00:06:54,639
زبان پویا است. ما در واقع میتوانیم
183
00:06:54,639 –> 00:06:57,680
ویژگیهایی را در هر زمان معینی به یک شی اضافه یا حذف
184
00:06:57,680 –> 00:06:59,039
کنیم
185
00:06:59,039 –> 00:07:01,759
که توسط کلاس شی منعکس نمیشود.
186
00:07:01,759 –> 00:07:04,240
187
00:07:04,240 –> 00:07:06,639
188
00:07:06,639 –> 00:07:07,680
189
00:07:07,680 –> 00:07:09,919
190
00:07:09,919 –> 00:07:10,800
191
00:07:10,800 –> 00:07:14,319
در واقع
192
00:07:14,319 –> 00:07:16,240
باید این واقعیت را در نظر گرفت
193
00:07:16,240 –> 00:07:19,120
که ستاره و نام سه نت
194
00:07:19,120 –> 00:07:19,919
195
00:07:19,919 –> 00:07:22,720
در واقع با
196
00:07:22,720 –> 00:07:23,599
موقعیت اشاره
197
00:07:23,599 –> 00:07:26,880
نمیشوند، بلکه با نام ذکر میشوند، بنابراین
198
00:07:26,880 –> 00:07:29,360
گره شماره در یک
199
00:07:29,360 –> 00:07:30,000
ویژگی ذخیره میشود.
200
00:07:30,000 –> 00:07:33,120
ستاره را در یک ویژگی op
201
00:07:33,120 –> 00:07:35,759
و نام an را در یک ویژگی درست در
202
00:07:35,759 –> 00:07:37,919
این مورد رها کردهاید،
203
00:07:37,919 –> 00:07:40,080
اما چیزی به ما نمیگوید که
204
00:07:40,080 –> 00:07:41,039
این ترتیب
205
00:07:41,039 –> 00:07:43,360
یک و درست این سه
206
00:07:43,360 –> 00:07:45,039
ویژگی نامگذاری شده است،
207
00:07:45,039 –> 00:07:48,240
بنابراین ممکن است دریابیم که op در واقع
208
00:07:48,240 –> 00:07:51,120
اولین مورد از این ویژگیها است. ویژگیها و
209
00:07:51,120 –> 00:07:53,280
چپ و راست به ترتیب دوم و سوم
210
00:07:53,280 –> 00:07:54,960
هستند،
211
00:07:54,960 –> 00:07:57,280
حتی بدتر از آن، ممکن است یک
212
00:07:57,280 –> 00:07:59,360
ویژگی اضافی برای شماره خطی
213
00:07:59,360 –> 00:08:01,440
که عبارت اصلی در آن یافت شده است، وجود داشته
214
00:08:01,440 –> 00:08:02,720
215
00:08:02,720 –> 00:08:06,080
باشد، بنابراین واقعاً این سؤال