در این مطلب، ویدئو آموزش تخصصی پایتون شماره 5 – ژنراتورها با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:13:57
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,000 –> 00:00:01,680
سلام به همه و به آموزش های تخصصی پایتون آنها خوش آمدید،
2
00:00:01,680 –> 00:00:03,870
بنابراین ویدیوی امروزی
3
00:00:03,870 –> 00:00:05,640
که در مورد ژنراتورها و ژنراتورها صحبت خواهیم کرد
4
00:00:05,640 –> 00:00:07,410
، یک ویژگی بسیار
5
00:00:07,410 –> 00:00:09,269
ساده و در واقع بسیار مفید در
6
00:00:09,269 –> 00:00:11,519
سطح متخصص در پایتون است و به
7
00:00:11,519 –> 00:00:13,440
احتمال زیاد قبلاً آنها را دیده
8
00:00:13,440 –> 00:00:15,630
اید قبل از اینکه ما دریافت کنیم. به
9
00:00:15,630 –> 00:00:17,160
ژنراتورها باید سریعاً اشاره کنم که این
10
00:00:17,160 –> 00:00:19,740
سری توسط kite حمایت شده است، بنابراین
11
00:00:19,740 –> 00:00:21,689
kite یک تکمیل خودکار هوش مصنوعی برای پایتون است
12
00:00:21,689 –> 00:00:22,769
که من در کل این سری از آن استفاده
13
00:00:22,769 –> 00:00:24,570
کرده ام و فقط از طریق کدنویسی روزانه من
14
00:00:24,570 –> 00:00:26,550
می توانید ببینید که وقتی واقعاً
15
00:00:26,550 –> 00:00:28,289
شروع به تایپ کردن می کنم ما این
16
00:00:28,289 –> 00:00:30,720
پیشنهادات خوب را از بادبادکها
17
00:00:30,720 –> 00:00:32,940
با نماد بادبادک کوچک در اینجا دریافت میکنیم، این
18
00:00:32,940 –> 00:00:35,010
فقط بهترین تکمیل خودکار پایتون است که
19
00:00:35,010 –> 00:00:36,420
بسیار سریع کار میکند و در واقع مقدار زیادی در وقت شما صرفهجویی
20
00:00:36,420 –> 00:00:38,250
میکند و برای
21
00:00:38,250 –> 00:00:39,989
ماژولهای دیگری که فقط در چیزهای پایتون ساخته نشدهاند،
22
00:00:39,989 –> 00:00:41,910
کار میکند. اگر بچه ها
23
00:00:41,910 –> 00:00:43,290
می خواهید آن را دانلود کنید بسیار مفید است، یک لینک
24
00:00:43,290 –> 00:00:44,879
در توضیحات وجود دارد و رایگان است، بنابراین
25
00:00:44,879 –> 00:00:46,530
بدانید که اگر
26
00:00:46,530 –> 00:00:49,649
این کار را انجام دادید، به خودتان کمک کنید تکمیل خودکار خوب است، پس اکنون
27
00:00:49,649 –> 00:00:51,600
اجازه دهید وارد ژنراتورها شویم، در واقع
28
00:00:51,600 –> 00:00:53,309
قبل از اینکه در مورد جنر بحث کنم،
29
00:00:53,309 –> 00:00:54,660
میخواهم مشکلی را
30
00:00:54,660 –> 00:00:57,030
که ژنراتورها به ما در حل آن کمک میکنند را به شما نشان دهم، بنابراین
31
00:00:57,030 –> 00:00:59,129
باید درک کنیم که در رایانه
32
00:00:59,129 –> 00:01:01,199
ما مقدار محدودی حافظه
33
00:01:01,199 –> 00:01:03,600
مقدار محدودی رم داریم و چه زمانی ما یک
34
00:01:03,600 –> 00:01:06,030
برنامه کامپیوتری را اجرا می کنیم، برنامه ما
35
00:01:06,030 –> 00:01:07,650
در آن حافظه بارگذاری می شود و زمانی که ما
36
00:01:07,650 –> 00:01:09,720
چیزها را ذخیره می کنیم، متغیرهای دستکاری همه چیزهایی را
37
00:01:09,720 –> 00:01:11,369
که به خوبی در حافظه کامپیوتر ما ذخیره شده
38
00:01:11,369 –> 00:01:13,650
است فهرست می کند، به این دلیل که
39
00:01:13,650 –> 00:01:15,780
این سریع ترین راه برای ما برای بازیابی و
40
00:01:15,780 –> 00:01:17,820
نوشتن داده ها در حین است. در برنامه ای
41
00:01:17,820 –> 00:01:19,950
هستید که می دانید ما می توانیم برخی چیزها را روی
42
00:01:19,950 –> 00:01:21,840
هارد دیسک قرار دهیم اما این کار بسیار کند است و
43
00:01:21,840 –> 00:01:23,159
واقعاً به کاری که انجام می دهیم بستگی دارد، اما
44
00:01:23,159 –> 00:01:24,750
بیشتر اوقات ما در RAM
45
00:01:24,750 –> 00:01:26,580
کار می کنیم و معنی آن این است که ما
46
00:01:26,580 –> 00:01:28,710
محدود به مقدار رمی که در
47
00:01:28,710 –> 00:01:30,960
کامپیوتر فیزیکی ما وجود دارد هنگام نوشتن
48
00:01:30,960 –> 00:01:33,180
یک برنامه کامپیوتری و در واقع شما می دانید که
49
00:01:33,180 –> 00:01:35,130
بسیاری از ما هرگز حتی خطایی را
50
00:01:35,130 –> 00:01:36,900
که می خواهم به شما نشان دهم نخواهیم دید، اما در
51
00:01:36,900 –> 00:01:39,509
واقع می توان تمام موارد را پر کرد. f RAM
52
00:01:39,509 –> 00:01:42,299
درست است که از تمام RAM استفاده کنید تا چیزی
53
00:01:42,299 –> 00:01:43,619
باقی نماند و در واقع این کاری است که من
54
00:01:43,619 –> 00:01:45,659
سعی می کنم همین الان انجام دهم، بنابراین اگر به
55
00:01:45,659 –> 00:01:47,340
مثال روی صفحه نگاه کنیم و من تازه شروع به
56
00:01:47,340 –> 00:01:48,329
اجرای کد کردم، خواهید دید که این کار انجام
57
00:01:48,329 –> 00:01:50,369
می شود. یک ثانیه برای اجرا و کاری که من
58
00:01:50,369 –> 00:01:52,290
سعی می کنم انجام دهم این است که دنباله
59
00:01:52,290 –> 00:01:55,290
همه مربع ها را از عدد 0 به بالا ایجاد
60
00:01:55,290 –> 00:01:56,969
کنم تا زمانی که بخواهم بگویم این مانند 100
61
00:01:56,969 –> 00:01:58,320
میلیون یا 10 میلیون یا مقداری
62
00:01:58,320 –> 00:02:00,329
مانند آن درست است و سپس من چیست؟
63
00:02:00,329 –> 00:02:01,890
کاری که انجام می دهم این است که روی همه آن اعداد حلقه
64
00:02:01,890 –> 00:02:03,390
بزنید و آنها را چاپ کنید و متوجه خواهید شد
65
00:02:03,390 –> 00:02:05,759
که به زودی بله و ما با
66
00:02:05,759 –> 00:02:07,770
خطای حافظه مواجه
67
00:02:07,770 –> 00:02:09,660
68
00:02:09,660 –> 00:02:10,500
می شویم که در اصل به این معنی است که نه ما نمی توانیم این کار را انجام دهیم.
69
00:02:10,500 –> 00:02:12,209
خیلی بزرگ است، ما
70
00:02:12,209 –> 00:02:14,050
فضای کافی در حافظه نداریم، ما
71
00:02:14,050 –> 00:02:16,300
نباید از آن فضای زیادی استفاده کنیم، نه مجاز نیست،
72
00:02:16,300 –> 00:02:18,220
بنابراین چگونه پیش برویم و چگونه
73
00:02:18,220 –> 00:02:20,530
این خوب را تعمیر
74
00:02:20,530 –> 00:02:23,680
کنیم. یک
75
00:02:23,680 –> 00:02:24,970
ژنراتور من می خواهم در اینجا به چیزی نگاه
76
00:02:24,970 –> 00:02:27,640
کنم اگر تمام کارهایی که در این برنامه خاص انجام می دهم
77
00:02:27,640 –> 00:02:29,380
فقط باشد چاپ یا
78
00:02:29,380 –> 00:02:31,720
پردازش هر بار یک مقدار را بگوید، این
79
00:02:31,720 –> 00:02:33,400
همان کاری است که من انجام میدهم زمانی که در حال چرخش به
80
00:02:33,400 –> 00:02:35,800
این لیست هستم، هر بار یک مقدار را درست یک مقدار انجام
81
00:02:35,800 –> 00:02:37,660
میدهم و به مقادیر دیگر دسترسی
82
00:02:37,660 –> 00:02:39,610
ندارم، به مقادیری نیاز ندارم
83
00:02:39,610 –> 00:02:40,270
در آینده
84
00:02:40,270 –> 00:02:41,860
به مقادیری که در گذشته هستند نیازی ندارم،
85
00:02:41,860 –> 00:02:44,620
پس آیا واقعاً لازم است
86
00:02:44,620 –> 00:02:46,180
که فهرستی مانند این ایجاد کنم تا بتوانم از طریق آن مرور کنم
87
00:02:46,180 –> 00:02:48,040
و پاسخ بدیهی است درست نیست، در
88
00:02:48,040 –> 00:02:50,650
واقع کاری که میتوانم انجام دهم این است که این
89
00:02:50,650 –> 00:02:52,330
حلقه را با فقط جایگزین کنم. یک عبارت چاپی درست است
90
00:02:52,330 –> 00:02:53,950
تا بتوانم کل این مورد را جایگزین کنم،
91
00:02:53,950 –> 00:02:54,850
در واقع ما فقط آن را در اینجا انجام می
92
00:02:54,850 –> 00:02:58,120
دهیم، فرض کنید برای من در محدوده و سپس
93
00:02:58,120 –> 00:02:59,500
همان عدد را تایپ می کنیم
94
00:02:59,500 –> 00:03:00,310
که به اندازه کافی نزدیک است
95
00:03:00,310 –> 00:03:03,370
و سپس کاری که می توانم انجام دهم چاپ توسط
96
00:03:03,370 –> 00:03:05,740
توان 2 درست را دوست دارد و
97
00:03:05,740 –> 00:03:07,510
این همان چیزی است و این ایده
98
00:03:07,510 –> 00:03:09,850
پشت مولدها است، این چیزی نیست که ما
99
00:03:09,850 –> 00:03:12,400
دقیقاً برای تولید این دنباله انجام می دهیم،
100
00:03:12,400 –> 00:03:14,560
اما ژنراتورها اساساً به ما اجازه می دهند که
101
00:03:14,560 –> 00:03:16,900
در یک زمان به یک مقدار نگاه
102
00:03:16,900 –> 00:03:19,209
کنیم و آن را ذخیره نکنیم. تمام
103
00:03:19,209 –> 00:03:21,310
دنباله اعداد وقتی که نیازی
104
00:03:21,310 –> 00:03:23,170
به انجام t نداریم کلاه و من در واقع قصد دارم
105
00:03:23,170 –> 00:03:25,240
نوع الگوی ژنراتور خودمان را
106
00:03:25,240 –> 00:03:28,000
در اینجا کدنویسی کنم که فقط از یک کلاس و
107
00:03:28,000 –> 00:03:30,430
چند روش dundar برای نشان دادن آنچه که
108
00:03:30,430 –> 00:03:32,320
واقعاً در داخل یک ژنراتور
109
00:03:32,320 –> 00:03:34,240
اتفاق میافتد استفاده میکند، اکنون میدانم که
110
00:03:34,240 –> 00:03:35,530
احتمالاً اکثر شما هنوز این کار را نمیکنید. نمی دانم
111
00:03:35,530 –> 00:03:37,420
ژنراتور چیست، اما بعد از اینکه
112
00:03:37,420 –> 00:03:38,650
این کلاس را نوشتم و شروع به نشان دادن شما کردم،
113
00:03:38,650 –> 00:03:40,660
امیدوارم این موضوع منطقی باشد، بنابراین چیزی که
114
00:03:40,660 –> 00:03:43,270
من این را می نامم فقط جن است و کاری که
115
00:03:43,270 –> 00:03:44,680
من می خواهم این کار انجام دهد دقیقاً همان
116
00:03:44,680 –> 00:03:46,390
کاری است که قبل از ما انجام می دادیم. فقط
117
00:03:46,390 –> 00:03:48,250
می خواهم دنباله ای از همه
118
00:03:48,250 –> 00:03:50,140
مربع ها را تا یک عدد ایجاد کنم، فرض کنید که
119
00:03:50,140 –> 00:03:52,540
اعداد پس از آن، در این مورد می خواهم
120
00:03:52,540 –> 00:03:54,640
بگویم بیایید زیرخط زیرخط را تعریف کنیم.
121
00:03:54,640 –> 00:03:57,130
122
00:03:57,130 –> 00:04:00,220
123
00:04:00,220 –> 00:04:03,130
به N و سپس فرض کنید خود
124
00:04:03,130 –> 00:04:05,440
نقطه آخر برابر با صفر است، بنابراین این
125
00:04:05,440 –> 00:04:07,030
آخرین عددی است که
126
00:04:07,030 –> 00:04:09,459
مربع را برای آن ایجاد کرده ایم و
127
00:04:09,459 –> 00:04:11,410
از این متغیر برای پیگیری
128
00:04:11,410 –> 00:04:13,030
آخرین عددی که مربع را برای
129
00:04:13,030 –> 00:04:15,100
آن تولید کرده ایم استفاده می کنیم. بدانید که ch عدد بعدی که باید استفاده کنید
130
00:04:15,100 –> 00:04:16,839
و من به شما نشان خواهم داد که چگونه این کار را انجام
131
00:04:16,839 –> 00:04:19,418
می دهد، در واقع در این مورد
132
00:04:19,418 –> 00:04:20,620
ما روش dunder را انجام می دهیم، بنابراین در
133
00:04:20,620 –> 00:04:22,089
مرحله بعد زیر خط بکشید که خودش را می
134
00:04:22,089 –> 00:04:23,740
گیرد و کاری که انجام می دهد این است که
135
00:04:23,740 –> 00:04:26,800
بعد از آن نقطه خود را برگرداند. حالا میدانم که
136
00:04:26,800 –> 00:04:27,580
هنوز خوداندیشی
137
00:04:27,580 –> 00:04:28,840
بعدی را تعریف نکردهایم که قرار است چه
138
00:04:28,840 –> 00:04:31,030
کاری انجام دهیم، بنابراین خود بعدی را تعریف کنید
139
00:04:31,030 –> 00:04:32,379
و نشنیدم که چه کاری انجام میدهم این است
140
00:04:32,379 –> 00:04:34,389
که دنبالهای را ایجاد کنم که قبلا انجام دادهام،
141
00:04:34,389 –> 00:04:36,039
به جز اینکه من فقط میخواهم این کار را با استفاده از این
142
00:04:36,039 –> 00:04:38,770
دو متغیر انجام نمیدهم، من نمیخواهم آن را با استفاده از
143
00:04:38,770 –> 00:04:40,509
یک حلقه for مانند قبل انجام دهم و
144
00:04:40,509 –> 00:04:42,219
همه چیز را در یک لیست ذخیره کنم، بنابراین آنچه میخواهم
145
00:04:42,219 –> 00:04:45,039
بگویم V برابر است با خود،
146
00:04:45,039 –> 00:04:47,379
به توان دو ادامه نمییابد، بنابراین این
147
00:04:47,379 –> 00:04:48,909
با گفتن اینکه مقدار بازگشتی ما
148
00:04:48,909 –> 00:04:50,860
برابر است با هر عددی که این آخرین عدد باشد
149
00:04:50,860 –> 00:04:52,569
که ما باید به سمت راست قدرت داشته
150
00:04:52,569 –> 00:04:53,620
باشیم، بنابراین مربع آن را پیدا می کنیم،
151
00:04:53,620 –> 00:04:55,539
سپس می گویم آخرین فکر خود
152
00:04:55,539 –> 00:04:59,469
به اضافه یک برابر است که می گوییم اگر
153
00:04:59,469 –> 00:05:01,479
آخرین فکر خود را و در این مورد برابر است
154
00:05:01,479 –> 00:05:06,039
با خود نقطه n به اضافه یک در واقع کاری
155
00:05:06,039 –> 00:05:07,509
که باید انجام دهم این است که آقا من این را در th قرار دادم و
156
00:05:07,509 –> 00:05:09,580
ابتدای حلقه من، بنابراین اگر آخرین فکر خود
157
00:05:09,580 –> 00:05:12,340
در اینجا برابر با فکر خود باشد و
158
00:05:12,340 –> 00:05:13,810
سپس کاری که میخواهیم انجام دهیم این است که بگوییم افزایش
159
00:05:13,810 –> 00:05:17,229
توقف تکرار تکرار تکرار فقط یک
160
00:05:17,229 –> 00:05:18,819
خطایی است که میتوانیم آن را بالا ببریم و اساساً
161
00:05:18,819 –> 00:05:20,560
به ما میگوید هی نه، ما نمیتوانیم هیچ کاری را انجام دهیم.
162
00:05:20,560 –> 00:05:22,690
و سپس کاری که ما می خواهیم انجام دهیم این است که این RV را به حالت عادی برگردانیم،
163
00:05:22,690 –> 00:05:25,419
بنابراین اکنون می خواهم به
164
00:05:25,419 –> 00:05:27,580
شما نشان دهم که چگونه می توانیم از آن استفاده کنیم تا بتوانیم
165
00:05:27,580 –> 00:05:29,080
در واقع به روشی بسیار مشابه استفاده کنیم که
166
00:05:29,080 –> 00:05:30,250
قبلاً اعداد را مرور می کردیم
167
00:05:30,250 –> 00:05:31,690
و در
168
00:05:31,690 –> 00:05:34,870
این مورد میخواهیم بگوییم که G برابر است با Jen، فرض کنید
169
00:05:34,870 –> 00:05:36,460
میخواهیم حلقهای را انجام دهیم تا شما یک
170
00:05:36,460 –> 00:05:38,740
عدد عظیم مانند آن را بشناسید و حالا اگر بخواهم
171
00:05:38,740 –> 00:05:40,120
در کل این
172
00:05:40,120 –> 00:05:41,770
دنباله را بررسی کنم، چه کاری میتوانم انجام دهم و منظورم
173
00:05:41,770 –> 00:05:42,849
چیزی است که شما گفتن اوه این به
174
00:05:42,849 –> 00:05:44,110
اندازه کافی بزرگ نیست، خوب بیایید بزرگتر
175
00:05:44,110 –> 00:05:48,069
برویم، می گوییم وای در این مورد، من درست هستم
176
00:05:48,069 –> 00:05:53,469
، می خواهیم بگوییم سعی کنید مقدار بعدی
177
00:05:53,469 –> 00:05:57,219
G را درست چاپ کنید و این مربع زیر خط R
178
00:05:57,219 –> 00:05:58,960
بعدی به من اجازه می دهد انجام دهم.
179
00:05:58,960 –> 00:06:01,839
این تابع یا متد بعدی یا هر چیزی را که
180
00:06:01,839 –> 00:06:04,180
می خواهید در G در اینجا فراخوانی کنید و ما می توانیم
181
00:06:04,180 –> 00:06:05,979
t را چاپ کنیم او ارزش قائل است و سپس من میخواهم بگویم
182
00:06:05,979 –> 00:06:09,339
تکرار توقف را بپذیر و سپس
183
00:06:09,339 –> 00:06:11,529
ما به سادگی این حلقه را میشکنیم
184
00:06:11,529 –> 00:06:14,080
و در واقع باید با
185
00:06:14,080 –> 00:06:16,089
آن خوب باشیم، بنابراین کاری که اکنون انجام
186
00:06:16,089 –> 00:06:17,229
میدهد حلقه است و من فقط میخواهم آن را انجام دهم. این
187
00:06:17,229 –> 00:06:18,610
عدد کوچکتر است فقط برای اینکه بتوانیم
188
00:06:18,610 –> 00:06:20,289
ببینیم که در واقع تا 100 ام بالا می رود،
189
00:06:20,289 –> 00:06:22,509
اما من به شما قول می دهم که با
190
00:06:22,509 –> 00:06:24,610
یک دنباله بی نهایت کار می کند و ما تماشا
191
00:06:24,610 –> 00:06:26,889
خواهیم کرد و می توانیم ببینیم که این درست
192
00:06:26,889 –> 00:06:28,150
مانند قبل عمل می کند و ما میتوانم
193
00:06:28,150 –> 00:06:30,520
تمام مربعهای این اعداد
194
00:06:30,520 –> 00:06:32,349
را ایجاد کنم، اکنون میتوانم این عدد را کاملاً
195
00:06:32,349 –> 00:06:33,759
بزرگ
196
00:06:33,759 –> 00:06:34,900
197
00:06:34,900 –> 00:06:37,330
198
00:06:37,330 –> 00:06:39,130
199
00:06:39,130 –> 00:06:40,860
کنم. بازگرداندن تمام مقادیر قبلی
200
00:06:40,860 –> 00:06:42,780
تنها چیزی که ما آن را پیگیری می
201
00:06:42,780 –> 00:06:45,060
کنیم نوعی حالت داخلی عدد بعدی است
202
00:06:45,060 –> 00:06:46,949
که باید تولید کنیم و
203
00:06:46,949 –> 00:06:48,719
این ایده پشت یک مولد این است که
204
00:06:48,719 –> 00:06:50,699
ما نیازی به ذخیره تک تک مقادیری
205
00:06:50,699 –> 00:06:53,460
که داریم نداریم. می