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