در این مطلب، ویدئو برنامه نویسی پایتون – به عنوان اشیا عمل می کند با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,439 –> 00:00:03,300
ما اکنون لیستهایی را معرفی کردهایم که
2
00:00:03,300 –> 00:00:05,279
توالیهای مرتب شده از عناصر میتوانند
3
00:00:05,279 –> 00:00:07,680
تقریباً هر چیزی باشند و قابل تغییر هستند و
4
00:00:07,680 –> 00:00:09,240
نمونههایی از نحوه
5
00:00:09,240 –> 00:00:11,219
استفاده از آنها را
6
00:00:11,219 –> 00:00:13,290
7
00:00:13,290 –> 00:00:15,509
دیدهایم. در داخل آنها ما
8
00:00:15,509 –> 00:00:17,609
فقط برای یک ثانیه یک انحراف جزئی انجام می دهیم
9
00:00:17,609 –> 00:00:19,859
تا در مورد توابع صحبت کنیم، می خواهیم
10
00:00:19,859 –> 00:00:21,300
آن را به روشی مهم به لیست برگردانیم.
11
00:00:21,300 –> 00:00:23,880
ابتدا می خواهم در مورد
12
00:00:23,880 –> 00:00:26,189
ایده یک شی درجه یک صحبت کنیم و ما
13
00:00:26,189 –> 00:00:28,380
می گوییم یک ساختار داده، یک نوع داده به عنوان
14
00:00:28,380 –> 00:00:30,060
یک شی درجه یک، اگر
15
00:00:30,060 –> 00:00:32,540
دارای ویژگی های زیر باشد، یک نوع
16
00:00:32,540 –> 00:00:34,950
دارد، می تواند عنصری در یک ساختار داده باشد
17
00:00:34,950 –> 00:00:37,770
مانند لیستی که می تواند در
18
00:00:37,770 –> 00:00:39,239
عبارتی مانند یک دستور انتساب ظاهر
19
00:00:39,239 –> 00:00:40,829
شود. سمت راست
20
00:00:40,829 –> 00:00:42,510
دستور انتساب و می تواند یک
21
00:00:42,510 –> 00:00:44,700
آرگومان برای یک تابع باشد، اکنون کاملاً
22
00:00:44,700 –> 00:00:48,059
واضح است که رشته های شناور intz همگی
23
00:00:48,059 –> 00:00:50,250
آن ویژگی ها را دارند، به راحتی می توان باور کرد
24
00:00:50,250 –> 00:00:52,320
که لیست ها و تاپل ها نیز
25
00:00:52,320 –> 00:00:54,770
این ویژگی ها را داشته باشند، اما توابع
26
00:00:54,770 –> 00:00:58,320
hmmm هم اکنون این ویژگی ها را دارند. آیا یک
27
00:00:58,320 –> 00:01:00,059
تابع دارای یک نوع خوب است که به راحتی
28
00:01:00,059 –> 00:01:02,730
می توان باور کرد که آیا یک تابع در یک
29
00:01:02,730 –> 00:01:06,360
ساختار داده مانند یک لیست است، اگر به
30
00:01:06,360 –> 00:01:07,799
نحوه ایجاد لیست فکر کنید،
31
00:01:07,799 –> 00:01:09,780
به سادگی مقادیر عبارات را دریافت می کنیم و
32
00:01:09,780 –> 00:01:11,790
ساختاری ایجاد می کنیم که
33
00:01:11,790 –> 00:01:13,890
عناصر نقطه حافظه آن قطعات، بنابراین اگر من
34
00:01:13,890 –> 00:01:16,020
به عنوان عنصری از یک لیست، نام
35
00:01:16,020 –> 00:01:17,850
یک تابع را که به مدل محیطی خود فکر می کنیم،
36
00:01:17,850 –> 00:01:19,320
بدهم، به راحتی می توان فهمید که چگونه
37
00:01:19,320 –> 00:01:21,299
آن عنصر از لیست آن
38
00:01:21,299 –> 00:01:22,740
نقطه و لیست می تواند به آن داده در آن نقطه اشاره کند.
39
00:01:22,740 –> 00:01:24,810
شیء رویه خاص
40
00:01:24,810 –> 00:01:27,930
خوب است آیا آنها می توانند در عباراتی مانند
41
00:01:27,930 –> 00:01:29,250
سمت راست یک انتساب ظاهر شوند،
42
00:01:29,250 –> 00:01:31,610
مطمئن باشید که می توانیم بگوییم x برابر
43
00:01:31,610 –> 00:01:34,979
فاکتوریل 5 است که منطقی است و سپس
44
00:01:34,979 –> 00:01:36,840
آیا آنها می توانند توابعی
45
00:01:36,840 –> 00:01:38,340
باشند.
46
00:01:38,340 –> 00:01:41,820
47
00:01:41,820 –> 00:01:42,750
ما میخواهیم ببینیم که
48
00:01:42,750 –> 00:01:44,759
واقعاً میتواند همینطور باشد و این ایده برای
49
00:01:44,759 –> 00:01:46,350
داشتن یک شی کلاس اول برای یک
50
00:01:46,350 –> 00:01:48,299
تابع یا داشتن آنها به عنوان
51
00:01:48,299 –> 00:01:50,460
اشیاء درجه یک بهخصوص زمانی مفید است که
52
00:01:50,460 –> 00:01:51,810
ما g با استفاده از این در ارتباط
53
00:01:51,810 –> 00:01:54,810
با لیستها، ما اغلب به این
54
00:01:54,810 –> 00:01:56,340
سبک تفکر یا برنامهنویسی به عنوان
55
00:01:56,340 –> 00:01:58,500
برنامهنویسی مرتبه بالاتر یا بالاتر اشاره
56
00:01:58,500 –> 00:02:00,899
میکنیم، جایی که ما با توابع بهگونهای رفتار میکنیم که گویی
57
00:02:00,899 –> 00:02:02,280
آنها عناصری از ساختار داده هستند و
58
00:02:02,280 –> 00:02:05,759
توابع را برای آنها اعمال میکنیم، بیایید ببینیم آیا
59
00:02:05,759 –> 00:02:06,960
میتوانیم آنها را بسازیم.
60
00:02:06,960 –> 00:02:09,300
با نگاه کردن به یک مثال،
61
00:02:09,300 –> 00:02:10,590
میخواهم رویهای کوچکی در اینجا بنویسم به
62
00:02:10,590 –> 00:02:13,170
نام application to هر کدام دو آرگومان را
63
00:02:13,170 –> 00:02:13,800
در
64
00:02:13,800 –> 00:02:18,120
لیست l و متغیری که نام آن روی
65
00:02:18,120 –> 00:02:19,350
پارامتر ما نامش را F میخوانم.
66
00:02:19,350 –> 00:02:21,060
و من فرض میکنم که L یک
67
00:02:21,060 –> 00:02:24,360
لیست است و F یک تابع است و آنچه که
68
00:02:24,360 –> 00:02:28,650
میخواهم برای هر کدام اعمال کنم این است
69
00:02:28,650 –> 00:02:30,630
70
00:02:30,630 –> 00:02:33,420
که با جایگزین کردن آن با چیزی که هنگام فراخوانی تابع اتفاق میافتد، هر عنصر را در لیست جهش
71
00:02:33,420 –> 00:02:35,370
میدهد. f روی آن
72
00:02:35,370 –> 00:02:39,420
عنصر خوب است، بنابراین کد خیلی
73
00:02:39,420 –> 00:02:40,830
بد به نظر نمی رسد، من یک حلقه کوچک دارم که در آن
74
00:02:40,830 –> 00:02:44,130
از صفر به سمت
75
00:02:44,130 –> 00:02:45,600
طول لیست حرکت می کنم یا یک کمتر از
76
00:02:45,600 –> 00:02:46,800
طول لیست، همه موارد را دریافت می کند.
77
00:02:46,800 –> 00:02:48,840
عناصر لیست و آنچه که من انجام می
78
00:02:48,840 –> 00:02:50,430
دهم من میخواهم عنصر یکم
79
00:02:50,430 –> 00:02:53,940
لیست را به دست بیاورم، من F را روی آن صدا میزنم و سپس
80
00:02:53,940 –> 00:02:55,770
میخواهم آن را تغییر
81
00:02:55,770 –> 00:02:59,340
دهم تا آن مقدار را در لیست تغییر دهم،
82
00:02:59,340 –> 00:03:01,380
اگر به مدل محیطی خود فکر کردیم یک لحظه فکر کنیم.
83
00:03:01,380 –> 00:03:03,060
اگر این را
84
00:03:03,060 –> 00:03:06,600
در جایی که در 4f یک مربع تابع ارسال کردم اعمال کنم،
85
00:03:06,600 –> 00:03:09,960
میگوییم که یک قاب محلی را متصل میکنیم
86
00:03:09,960 –> 00:03:11,700
که متغیر
87
00:03:11,700 –> 00:03:14,340
F به مقدار آن پارامتر اشاره میکند
88
00:03:14,340 –> 00:03:15,990
که در این حالت مربع خواهد بود و
89
00:03:15,990 –> 00:03:18,600
سپس وقتی بدنه
90
00:03:18,600 –> 00:03:21,180
اعمال شده را اجرا میکنیم. هرکدام از آنها را به سادگی
91
00:03:21,180 –> 00:03:23,070
از مقدار F استفاده می کنیم، بنابراین در
92
00:03:23,070 –> 00:03:25,080
اصل
93
00:03:25,080 –> 00:03:27,180
برای همیشه جایگزین آن خواهیم شد، من مثالی از مدل محیط را انجام نمی دهم،
94
00:03:27,180 –> 00:03:28,470
اما
95
00:03:28,470 –> 00:03:31,470
آنچه که توضیح دادیم منطقی است، بنابراین
96
00:03:31,470 –> 00:03:32,940
بیایید ببینیم آیا واقعاً کار می کند یا خیر. سپس
97
00:03:32,940 –> 00:03:35,520
بیایید مثالی از این مثال بزنم، بنابراین من
98
00:03:35,520 –> 00:03:38,239
میخواهم این را به ترتیب دنبال
99
00:03:38,239 –> 00:03:40,739
کنم که برای هر کدام اعمال میشود و
100
00:03:40,739 –> 00:03:42,450
با لیست L شروع میکنم که
101
00:03:42,450 –> 00:03:46,440
مجموعهای از اعداد 1-2 و 3.4 است و من من
102
00:03:46,440 –> 00:03:48,690
ابتدا با رویه داخلی هر یک از آن لیست L را فراخوانی می کنم
103
00:03:48,690 –> 00:03:53,250
ABS
104
00:03:53,250 –> 00:03:56,940
به آن زنگ زد، چه اتفاقی میافتد اگر این کار را به خوبی انجام
105
00:03:56,940 –> 00:03:58,830
دهم، میدانم که دوباره به
106
00:03:58,830 –> 00:04:00,540
مدل محیطی خود فکر میکنم، میخواهم یک فریم ایجاد کنم
107
00:04:00,540 –> 00:04:02,310
که برای هر یک از رویهها اعمال میشود
108
00:04:02,310 –> 00:04:03,540
و من آن را اعمال میکنم، بنابراین یک
109
00:04:03,540 –> 00:04:06,630
فریم در که l به این
110
00:04:06,630 –> 00:04:11,400
ساختار و f به چیزی
111
00:04:11,400 –> 00:04:12,840
که به آن اشاره میکند که یک
112
00:04:12,840 –> 00:04:15,360
شیء رویه است و سپس چه کاری میخواهم انجام
113
00:04:15,360 –> 00:04:16,950
دهم، فقط لیست L را
114
00:04:16,950 –> 00:04:20,220
در هر نقطه پایین میآورم و F را که محدود است اعمال میکنم.
115
00:04:20,220 –> 00:04:22,320
به برنامهها برای هر عنصر از L و
116
00:04:22,320 –> 00:04:26,220
تغییر مقدار و اگر این کار را انجام دهم چیزی
117
00:04:26,220 –> 00:04:27,240
که دریافت میکنم این
118
00:04:27,240 –> 00:04:28,500
است که وقتی L را چاپ میکنم اکنون به
119
00:04:28,500 –> 00:04:31,289
این شکل است که من l را تغییر دادهام و بله
120
00:04:31,289 –> 00:04:33,210
3.4 را به دلیل نحوه نمایش
121
00:04:33,210 –> 00:04:34,380
اعداد ممیز شناور تغییر دادهام.
122
00:04:34,380 –> 00:04:35,669
کاملاً آنطور که شما میخواهید بیرون نمیآید، اما
123
00:04:35,669 –> 00:04:37,500
ما تغییر کردهایم و آنچه مهم
124
00:04:37,500 –> 00:04:39,000
است این است که من از طریق