در این مطلب، ویدئو پیمایش لیست پایتون در یک حلقه while با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,060 –> 00:00:02,009
در این ویدیو میخواهم نگاهی
2
00:00:02,009 –> 00:00:04,980
بیندازم به این که چگونه میتوانیم
3
00:00:04,980 –> 00:00:08,490
با استفاده از حلقه وحشی در لیست پایتون حرکت کنیم، اجازه دهید
4
00:00:08,490 –> 00:00:10,710
مشخصات زیر را در نظر بگیریم،
5
00:00:10,710 –> 00:00:13,080
بخشهایی از کد بنویسیم که
6
00:00:13,080 –> 00:00:15,929
محتوای فهرست پایتون را یکبار با
7
00:00:15,929 –> 00:00:16,650
8
00:00:16,650 –> 00:00:19,439
فرض اینکه لیست دارای اندازه و محتوایی
9
00:00:19,439 –> 00:00:22,380
است که توسط
10
00:00:22,380 –> 00:00:24,740
نمودار شماتیک زیر نشان داده شده است، در اینجا می توانیم
11
00:00:24,740 –> 00:00:27,510
نمایش یک لیست را به صورت شماتیک
12
00:00:27,510 –> 00:00:31,050
ببینیم و می توانیم ببینیم که دارای ده عنصر است
13
00:00:31,050 –> 00:00:33,450
و این محتویات آن
14
00:00:33,450 –> 00:00:36,120
عناصر است که می توانیم ببینیم که شاخص
15
00:00:36,120 –> 00:00:37,890
از صفر تا زیر می رود. به 9
16
00:00:37,890 –> 00:00:40,860
در حالی که این موقعیت دهمین
17
00:00:40,860 –> 00:00:43,649
عنصر در لیست است و
18
00:00:43,649 –> 00:00:45,930
مقدار آن 9 به عنوان شاخص است زیرا
19
00:00:45,930 –> 00:00:48,210
باید به خاطر داشته باشیم که همیشه از صفر شروع می کنیم
20
00:00:48,210 –> 00:00:51,750
و در اینجا می بینیم که
21
00:00:51,750 –> 00:00:54,360
نام لیست برای ایجاد لیست نشان داده شده است.
22
00:00:54,360 –> 00:00:56,879
نمودار شماتیک ما می توانیم از این
23
00:00:56,879 –> 00:00:59,010
خط کد در اینجا استفاده کنیم و می بینید که
24
00:00:59,010 –> 00:01:01,260
من لیست نام را زیر خط a انتخاب می کنم که
25
00:01:01,260 –> 00:01:03,690
این نام را در اینجا منعکس می کند و سپس می توانید
26
00:01:03,690 –> 00:01:06,659
ببینید که من این مقدار را اختصاص داده ام و می توانید ببینید
27
00:01:06,659 –> 00:01:08,640
که ما مربع را داریم پرانتزهای e و اگر
28
00:01:08,640 –> 00:01:11,040
به محتوای اینجا نگاه کنید میبینید
29
00:01:11,040 –> 00:01:13,799
که من تمام
30
00:01:13,799 –> 00:01:15,750
محتویات فهرست را همانطور که در اینجا نشان داده شده تایپ کردهام، به
31
00:01:15,750 –> 00:01:18,450
عنوان مثال میتوانید ببینید که 23 در اینجا
32
00:01:18,450 –> 00:01:20,580
در لیست است و این 7 آخرین عنصر است.
33
00:01:20,580 –> 00:01:23,070
می توانید اینجا را ببینید البته
34
00:01:23,070 –> 00:01:24,840
دستور برنامه دیگری قادر به
35
00:01:24,840 –> 00:01:26,970
تولید این لیست است و من آن را
36
00:01:26,970 –> 00:01:29,909
در اینجا نشان می دهم و می توانید ببینید که من از انجام رویکرد شی گرا اطمینان حاصل می کنم
37
00:01:29,909 –> 00:01:32,189
38
00:01:32,189 –> 00:01:34,020
زیرا در اینجا من همان
39
00:01:34,020 –> 00:01:36,509
نام لیست I را دارم. m با اختصاص دادن این شکاف و
40
00:01:36,509 –> 00:01:38,729
میتوانید در براکتهای مربع اینجا ببینید،
41
00:01:38,729 –> 00:01:41,640
من همان محتوایی را دارم که در اینجا در
42
00:01:41,640 –> 00:01:44,280
این دستور برنامه داشتم، اما در اینجا میتوانید
43
00:01:44,280 –> 00:01:46,530
ببینید که من دو براکت دارم و این
44
00:01:46,530 –> 00:01:49,290
براکتها آنجا هستند، زیرا این
45
00:01:49,290 –> 00:01:52,619
کل یک سازنده است و سازنده ای است
46
00:01:52,619 –> 00:01:55,409
که نمونه ای از کلاس لیست را ایجاد می کند،
47
00:01:55,409 –> 00:01:59,130
بنابراین می توانید از یکی از این دو
48
00:01:59,130 –> 00:02:02,009
خط کد برای تولید این لیست استفاده کنید
49
00:02:02,009 –> 00:02:04,079
و برنامه هایی که
50
00:02:04,079 –> 00:02:06,180
در ادامه این ویدیو به
51
00:02:06,180 –> 00:02:09,649
شما نشان خواهم داد یا این یکی یا این را به شما نشان می دهند. یکی در اینجا
52
00:02:09,649 –> 00:02:12,080
اجازه دهید این PR کامپیوتر را در نظر بگیریم ogram
53
00:02:12,080 –> 00:02:14,569
و اولین خطی که در اینجا می بینید
54
00:02:14,569 –> 00:02:17,360
مسئول تولید لیستی است
55
00:02:17,360 –> 00:02:19,790
که تا به حال در این ویدیو بحث کرده ایم و
56
00:02:19,790 –> 00:02:22,819
سپس می توانید ببینید که 10 عبارت چاپی دارید
57
00:02:22,819 –> 00:02:24,980
و این بیانیه های چاپی
58
00:02:24,980 –> 00:02:27,049
مسئول چاپ
59
00:02:27,049 –> 00:02:29,180
خروجی خواهند بود.
60
00:02:29,180 –> 00:02:31,849
برای مثال، این یکی به
61
00:02:31,849 –> 00:02:34,670
لیست a بعد از این موقعیت، موقعیت شاخص
62
00:02:34,670 –> 00:02:37,340
0 می رود و مقدار آن را چاپ می کنیم
63
00:02:37,340 –> 00:02:40,220
و البته اگر به آخرین چاهی برسم که قرار است به آن برسم، 23 خواهد بود.
64
00:02:40,220 –> 00:02:42,349
65
00:02:42,349 –> 00:02:44,120
به همان لیست بروید اما در این مناسبت
66
00:02:44,120 –> 00:02:47,000
آنچه را که در این موقعیت عنصر ذخیره شده است چاپ می
67
00:02:47,000 –> 00:02:50,030
کند که موقعیت عنصر دهم
68
00:02:50,030 –> 00:02:52,250
است و البته
69
00:02:52,250 –> 00:02:54,200
موقعیت عنصر دهم دارای شاخص
70
00:02:54,200 –> 00:02:57,530
9 خواهد بود بنابراین این عبارت 7 را چاپ می کند
71
00:02:57,530 –> 00:02:59,780
و اگر نگاه کنیم در زمان اجرا برای این
72
00:02:59,780 –> 00:03:01,909
برنامه کامپیوتری چیزی که ما می خواهیم
73
00:03:01,909 –> 00:03:05,329
ببینیم این است و اگر نگاهی بیندازید
74
00:03:05,329 –> 00:03:07,879
باید متوجه شوید که به عنوان
75
00:03:07,879 –> 00:03:10,970
محتوای لیستی که تاکنون در این ویدیو به آن نگاه کرده ایم،
76
00:03:10,970 –> 00:03:15,169
اجازه دهید این برنامه کامپیوتری را در نظر بگیریم
77
00:03:15,169 –> 00:03:16,549
و اگر نگاه کردی در خط اول
78
00:03:16,549 –> 00:03:18,680
می بینید که من
79
00:03:18,680 –> 00:03:21,079
همان لیست را می سازم اما
80
00:03:21,079 –> 00:03:23,989
در این مورد از متد سازنده استفاده می کنم زیرا در حال
81
00:03:23,989 –> 00:03:26,299
ایجاد نمونه ای از کلاس لیست هستم و در اینجا
82
00:03:26,299 –> 00:03:28,099
می توانید ببینید که من دو
83
00:03:28,099 –> 00:03:30,019
دستور چاپ این چاپ را دارم. عبارت عبارت است از
84
00:03:30,019 –> 00:03:32,629
چاپ اولین عنصر لیست
85
00:03:32,629 –> 00:03:34,819
یعنی لیست با شاخص صفر و
86
00:03:34,819 –> 00:03:37,700
این یکی دهمین عنصر
87
00:03:37,700 –> 00:03:38,419
88
00:03:38,419 –> 00:03:41,660
لیست یعنی عنصری با شاخص نه را چاپ می کند، بنابراین
89
00:03:41,660 –> 00:03:44,120
وقتی این برنامه اجرا می شود ما
90
00:03:44,120 –> 00:03:47,449
23 خروجی را خواهیم دید و هفت خروجی بنابراین
91
00:03:47,449 –> 00:03:49,910
در اینجا ما می توانیم خروجی را مشاهده کنیم و
92
00:03:49,910 –> 00:03:53,389
می بینید که ما 23 و 7 داریم بیایید
93
00:03:53,389 –> 00:03:55,849
اکنون این برنامه کامپیوتری را در نظر بگیریم و
94
00:03:55,849 –> 00:03:57,889
اگر به سه خط اول نگاه کنیم
95
00:03:57,889 –> 00:04:00,169
می بینیم که آنها با این برنامه یکسان هستند
96
00:04:00,169 –> 00:04:02,690
در اینجا آنچه متفاوت است این
97
00:04:02,690 –> 00:04:05,030
خط است. اکنون آنچه میخواهم به
98
00:04:05,030 –> 00:04:07,250
شما نشان دهم این است که وقتی این اجرا میشود، با
99
00:04:07,250 –> 00:04:09,109
خطا مواجه میشویم و دلیل اینکه
100
00:04:09,109 –> 00:04:10,639
خطا میگیریم این است
101
00:04:10,639 –> 00:04:14,239
که سعی میکنیم آنچه را در لیست a در
102
00:04:14,239 –> 00:04:17,149
موقعیت عنصر 10 چاپ کنیم. یازدهمین
103
00:04:17,149 –> 00:04:19,820
عنصر در لیست است، اما اگر شرکت کنید من
104
00:04:19,820 –> 00:04:21,918
اینجا هستم و به لیست نگاه کنید فقط
105
00:04:21,918 –> 00:04:23,419
10 عدد
106
00:04:23,419 –> 00:04:26,659
وجود دارد، به عبارت دیگر هیچ عنصری
107
00:04:26,659 –> 00:04:30,620
با این شاخص 10 وجود ندارد، در نتیجه زمانی که
108
00:04:30,620 –> 00:04:32,629
این برنامه اجرا می شود چیزی که می خواهیم
109
00:04:32,629 –> 00:04:35,479
ببینیم این است و می بینید که این
110
00:04:35,479 –> 00:04:38,539
خط را چاپ کرده است. 23 این خط
111
00:04:38,539 –> 00:04:40,969
در اینجا 7 را همانطور که
112
00:04:40,969 –> 00:04:43,189
انتظار داشتید چاپ کرده است و وقتی میخواهیم
113
00:04:43,189 –> 00:04:46,460
این خط را اجرا کنیم این خطا ظاهر میشود و اگر
114
00:04:46,460 –> 00:04:48,469
به اینجا بیاییم میبینید که به
115
00:04:48,469 –> 00:04:51,139
ما میگوید یک خطای شاخص داریم و
116
00:04:51,139 –> 00:04:53,810
در ادامه میگوید فهرست فهرست خارج از محدوده است
117
00:04:53,810 –> 00:04:56,090
که دقیقاً همان چیزی است که اتفاق افتاده است، می
118
00:04:56,090 –> 00:04:59,180
بینید که این 10 در محدوده
119
00:04:59,180 –> 00:05:01,669
این لیست نیست، زیرا این لیست از
120
00:05:01,669 –> 00:05:05,900
موقعیت شاخص 0 به موقعیت شاخص 9 می رود، بنابراین
121
00:05:05,900 –> 00:05:08,509
درخواست چاپ این عنصر با
122
00:05:08,509 –> 00:05:11,360
شاخص 10 به سادگی معنی ندارد.
123
00:05:11,360 –> 00:05:14,330
از آنجایی که هیچ عنصری با
124
00:05:14,330 –> 00:05:18,080
شاخص 10 وجود ندارد، بنابراین این خطا، اجازه دهید
125
00:05:18,080 –> 00:05:20,599
این برنامه کامپیوتری را در نظر بگیریم و به
126
00:05:20,599 –> 00:05:22,699
خط اول نگاه کنیم و آن
127
00:05:22,699 –> 00:05:25,039
خطی است که لیستی مشابه
128
00:05:25,039 –> 00:05:28,460
برنامه قبلی در این ویدیو ایجاد می کند، اکنون
129
00:05:28,460 –> 00:05:31,490
اینجا می توانید I’ یک بخش دارم از
130
00:05:31,490 –> 00:05:34,279
کد اکنون این بخش از کد
131
00:05:34,279 –> 00:05:37,370
همان وظیفه 10
132
00:05:37,370 –> 00:05:40,370
دستور چاپی را انجام می دهد که در آخرین برنامه ای
133
00:05:40,370 –> 00:05:42,649
که به آنچه در اینجا انجام می دهیم نگاه کردیم، با این
134
00:05:42,649 –> 00:05:45,259
حال ما یک حلقه while داریم و هر
135
00:05:45,259 –> 00:05:47,539
بار که از حلقه while عبور می کنیم،
136
00:05:47,539 –> 00:05:50,629
اجرا می کنیم. این دو عبارت، عبارت اول
137
00:05:50,629 –> 00:05:53,149
یکی
138
00:05:53,149 –> 00:05:56,180
از عناصر لیست را چاپ می کند و این در اینجا
139
00:05:56,180 –> 00:05:59,000
متغیر I را افزایش می دهد و من
140
00:05:59,000 –> 00:06:01,460
برمی گردم تا معنی آن را در یک لحظه نشان
141
00:06:01,460 –> 00:06:03,800
دهم، اما اجازه دهید نگاهی به
142
00:06:03,800 –> 00:06:08,060
نحو این حلقه while داشته باشیم. می بینید که در اینجا ما
143
00:06:08,060 –> 00:06:11,330
کلمه کلیدی while را داریم و این دو نقطه را داریم
144
00:06:11,330 –> 00:06:14,029
که همیشه وجود دارد زمانی که از
145
00:06:14,029 –> 00:06:17,419
ساختارها در پایتون استفاده می کنیم. دونقطه که
146
00:06:17,419 –> 00:06:21,139
اکنون اینجا است ما یک تست شرطی داریم اکنون
147
00:06:21,139 –> 00:06:23,839
در این مورد این تست شرطی
148
00:06:23,839 –> 00:06:27,050
این سوال را می پرسد که I کمتر از 10
149
00:06:27,050 –> 00:06:29,659
خوب اگر اینجا را نگاه کنید می توانید ببینید
150
00:06:29,659 –> 00:06:33,529
من I را برابر با صفر قرار داده ام بنابراین وقتی
151
00:06:33,529 –> 00:06:37,220
به این موقعیت می رسیم 0 را ذخیره می
152
00:06:37,220 –> 00:06:40,670
کنیم بنابراین سوال می پرسیم من کمتر
153
00:06:40,670 –> 00:06:42,980
از 10 است که همان سوال پرسیدن
154
00:06:42,980 –> 00:06:46,730
صفر است. کمتر از 10 چون صفر
155
00:06:46,730 –> 00:06:49,910
و t را ذخیره می کنم او پاسخ می دهد بله، پس این
156
00:06:49,910 –> 00:06:53,240
درست است، حالا وقتی این درست است،
157
00:06:53,240 –> 00:06:56,420
وارد حلقه می شوید، بنابراین این دو خط کد
158
00:06:56,420 –> 00:06:59,360
اجرا می شوند، البته یک بار در حلقه،
159
00:06:59,360 –> 00:07:01,880
می توانید اینجا ببینید که من
160
00:07:01,880 –> 00:07:05,360
برابر با I به اضافه 1 می شود. من یک مقدار بالا میروم
161
00:07:05,360 –> 00:07:08,000
و وقتی اکنون به اینجا برگردیم
162
00:07:08,000 –> 00:07:11,270
، مقدار 1 را خواهم داشت،
163
00:07:11,270 –> 00:07:15,170
بنابراین سؤالی که پرسیده میشود 1 کمتر از
164
00:07:15,170 –> 00:07:17,840
10 است و پاسخ مثبت است، بنابراین این درست است،
165
00:07:17,840 –> 00:07:20,540
بنابراین شما به حلقه بازگردید. و این
166
00:07:20,540 –> 00:07:24,650
دو خط کد در حال حاضر اجرا می شوند
167
00:07:24,650 –> 00:07:27,080
البته هر بار که دور حلقه می رویم
168
00:07:27,080 –> 00:07:30,050
این اجرا می شود و در نقطه
169
00:07:30,050 –> 00:07:32,990
ای به مقدار 10 می رسم بنابراین وقتی
170
00:07:32,990 –> 00:07:36,740
به اینجا آمدیم و بپرسیم آیا من کمتر از
171
00:07:36,740 –> 00:07:40,040
10 هستم. پرسیدن 10 کمتر از 10
172
00:07:40,040 –> 00:07:41,210
است خوب،
173
00:07:41,210 –> 00:07:44,240
10 نیست، کمتر از 10 نیست، بنابراین این اشتباه خواهد بود،
174
00:07:44,240 –> 00:07:47,990
در این صورت ما
175
00:07:47,990 –> 00:07:50,810
این دو دستور را اجرا نمی کنیم، حلقه را ترک می
176
00:07:50,810 –> 00:07:53,780
کنیم و به این موقعیت ادامه می دهیم
177
00:07:53,780 –> 00:07:55,580
که در حالت عادی قرار دارد. بقیه
178
00:07:55,580 –> 00:07:58,370
برنامه اما در اینجا برنامه در این نقطه به پایان می رسد، بسیار
179
00:07:58,370 –> 00:08:01,220
خوب، من فقط یک
180
00:08:01,220 –> 00:08:03,980
نمای کلی از این کد و آنچه که انجام می دهد ارائه می کنم. es
181
00:08:03,980 –> 00:08:05,990
و آنچه که اکنون میخواهم انجام دهم، بخشهای کلیدی کد هستند،
182
00:08:05,990 –> 00:08:08,720
اما فقط
183
00:08:08,720 –> 00:08:10,280
نگاه کردن به این خط است تا به خودمان یادآوری کنیم
184
00:08:10,280 –> 00:08:13,010
که چه کاری انجام میدهد، این کار را
185
00:08:13,010 –> 00:08:15,350
در اینجا تولید میکند و سپس البته آنچه قرار است
186
00:08:15,350 –> 00:08:18,140
اتفاق بیفتد، مقداردهی اولیه میکنم. یک مقدار
187
00:08:18,140 –> 00:08:20,180
یک مقدار شاخص که من
188
00:08:20,180 –> 00:08:24,320
با نام I با صفر نشان میدهم و سپس این حلقه
189
00:08:24,320 –> 00:08:27,350
محتوای هر
190
00:08:27,350 –> 00:08:29,510
عنصر لیستی را که در اینجا مشاهده میکنید
191
00:08:29,510 –> 00:08:32,929
به نوبه خود چاپ میکند، بنابراین خروجیای که انتظار داریم
192
00:08:32,929 –> 00:08:35,870
ببینیم در اینجا نشان داده میشود. و می توانید ببینید که
193
00:08:35,870 –> 00:08:38,630
آن خروجی مشابه لیستی است
194
00:08:38,630 –> 00:08:41,360
که اکنون در اینجا ایجاد شده است،
195
00:08:41,360 –> 00:08:44,300
من می خواهم یک ردیابی از این برنامه را انجام دهم
196
00:08:44,300 –> 00:08:46,400
و نشان دهم وقتی از حلقه while عبور می کنیم چه اتفاقی می افتد
197
00:08:46,400 –> 00:08:48,710
، اما قبل از انجام این کار می
198
00:08:48,710 –> 00:08:50,360
خواهم برنامهای را که
199
00:08:50,360 –> 00:08:50,750
200
00:08:50,750 –> 00:08:53,300
اکنون میبینید با این برنامه مقایسه کنید که
201
00:08:53,300 –> 00:08:56,360
قبلاً در این ویدیو دیدهایم، به
202
00:08:56,360 –> 00:08:58,460
این لیست نگاهی بیندازید و میتوانید ببینید که
203
00:08:58,460 –> 00:09:01,370
مانند این است، اما در اینجا میبینید که
204
00:09:01,370 –> 00:09:04,250
در واقع محتوای هر یک از برنامهها را دریافت کنید.
205
00:09:04,250 –> 00:09:07,070
عناصر چاپ شده روی صفحه من مجبور شدم
206
00:09:07,070 –> 00:09:09,770
از 10 عبارت چاپ استفاده کنم در حالی که در اینجا من
207
00:09:09,770 –> 00:09:11,750
فقط باید از یک عبارت چاپی
208
00:09:11,750 –> 00:09:16,010
در داخل یک حلقه استفاده میکردم، حالا تصور کنید اگر این
209
00:09:16,010 –> 00:09:19,010
لیست هزار مورد باشد،
210
00:09:19,010 –> 00:09:21,740
به هزار مورد از این دستورات چاپی نیاز دارم،
211
00:09:21,740 –> 00:09:24,530
در حالی که چون من از
212
00:09:24,530 –> 00:09:27,350
حلقه while در اینجا استفاده کردهام، هنوز فقط به یک مورد نیاز دارم
213
00:09:27,350 –> 00:09:30,080
و به آن نیاز دارم. یعنی تغییر این
214
00:09:30,080 –> 00:09:32,450
مقدار در اینجا از ده عددی که در حال حاضر
215
00:09:32,450 –> 00:09:35,720
است که طول لیست است به 1000
216
00:09:35,720 –> 00:09:37,940
و من یک
217
00:09:37,940 –> 00:09:40,490
قطعه کد بسیار کارآمدتر خواهم داشت بدون اینکه
218
00:09:40,490 –> 00:09:43,190
نیازی به تایپ هزار عبارت چاپی داشته
219
00:09:43,190 –> 00:09:45,530
باشم که فقط از این مورد استفاده می کنم. و
220
00:09:45,530 –> 00:09:47