در این مطلب، ویدئو ساخت ابزارهای مفید پروژه در پایتون – Johan Herland با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:04,899 –> 00:00:08,780
بسیار خوب، این ساختن جزئیات پروژه مفید
2
00:00:08,780 –> 00:00:11,420
با پایتون است. نام من یوهان
3
00:00:11,420 –> 00:00:13,460
هارلان است. من به عنوان مهندس نرم افزار در
4
00:00:13,460 –> 00:00:16,490
سیسکو در نروژ
5
00:00:16,490 –> 00:00:18,439
6
00:00:18,439 –> 00:00:21,980
7
00:00:21,980 –> 00:00:24,460
8
00:00:24,460 –> 00:00:26,750
کار می کنم.
9
00:00:26,750 –> 00:00:29,619
برنامه اصلی با موفقیت بر روی
10
00:00:29,619 –> 00:00:33,920
پلت فرم نرم افزار ما برای این بحث اجرا شد. من
11
00:00:33,920 –> 00:00:36,530
فرض می کنم که شما
12
00:00:36,530 –> 00:00:38,680
آشنایی اولیه با اسکریپت نویسی پوسته یونیکس دارید
13
00:00:38,680 –> 00:00:42,290
bash زبان معمولی است که استفاده می شود اما
14
00:00:42,290 –> 00:00:44,239
همه آنها بسیار شبیه هستند و من همچنین
15
00:00:44,239 –> 00:00:45,290
فرض می کنم که شما
16
00:00:45,290 –> 00:00:47,479
با پایتون 3 آشنایی داشته باشید اگر
17
00:00:47,479 –> 00:00:49,640
تجربه شما بیشتر در پایتون 2 است که
18
00:00:49,640 –> 00:00:51,769
همچنین برخی از این موارد
19
00:00:51,769 –> 00:00:54,110
در پایتون 2 موجود نیست، معمولاً می
20
00:00:54,110 –> 00:00:56,989
توانید جایگزین هایی را در آنجا پیدا کنید، اما
21
00:00:56,989 –> 00:00:58,250
به هر حال پایتون 3 جایی است که آینده پایتون در آن نهفته است،
22
00:00:58,250 –> 00:00:59,960
بنابراین من همین هستم.
23
00:00:59,960 –> 00:01:03,589
روی این موضوع تمرکز می کنم، بنابراین با
24
00:01:03,589 –> 00:01:05,990
انگیزه ای از این بحث
25
00:01:05,990 –> 00:01:08,750
شروع می کنم.
26
00:01:08,750 –> 00:01:10,399
27
00:01:10,399 –> 00:01:13,670
تقریباً همیشه بهتر از آن است که من قصد
28
00:01:13,670 –> 00:01:18,079
دارم از طریق تبدیل یک
29
00:01:18,079 –> 00:01:20,479
اسکریپت پوسته به پایتون برخی از نکات و
30
00:01:20,479 –> 00:01:23,179
تکنیکها را مرور کنم
31
00:01:23,179 –> 00:01:25,310
که میتوانید چگونه کد خود را سازماندهی کنید، نحوه نوشتن
32
00:01:25,310 –> 00:01:27,439
رابطهای خط فرمان خوب در پایتون، نحوه
33
00:01:27,439 –> 00:01:28,999
اجرای برنامههای دیگر از پایتون،
34
00:01:28,999 –> 00:01:30,289
زیرا معمولاً کاری که شما از یک اسکریپت پوسته انجام می دهید
35
00:01:30,289 –> 00:01:32,719
نحوه دستکاری سیستم فایل
36
00:01:32,719 –> 00:01:34,399
از پایتون، یکی دیگر از اسکریپت نویسی پوسته رایج است،
37
00:01:34,399 –> 00:01:37,490
همچنین می خواهم
38
00:01:37,490 –> 00:01:39,020
کمی در مورد نوشتن تست های واحد در
39
00:01:39,020 –> 00:01:40,759
پایتون صحبت کنم و این معمولاً
40
00:01:40,759 –> 00:01:42,979
چیزی نیست که واحد چیزی را
41
00:01:42,979 –> 00:01:45,469
در اسکریپت های پوسته آزمایش کنید، اما این یکی از
42
00:01:45,469 –> 00:01:46,999
مزایای بزرگ انتقال به پایتون است که
43
00:01:46,999 –> 00:01:49,579
می توانید این کار را شروع کنید، بنابراین من یک برداشت
44
00:01:49,579 –> 00:01:50,719
کمی بحث برانگیز در مورد رسیدگی به خطا
45
00:01:50,719 –> 00:01:52,280
دارم که در مورد آن صحبت خواهم کرد و سپس
46
00:01:52,280 –> 00:01:54,289
به مطالعه موردی یک
47
00:01:54,289 –> 00:01:56,329
اسکریپت پوسته دنیای واقعی می پردازم.
48
00:01:56,329 –> 00:02:02,990
در پایتون و سیسکو بازنویسی کردم و اول
49
00:02:02,990 –> 00:02:04,429
از همه چگونه باید این کار را انجام دهم، زیرا
50
00:02:04,429 –> 00:02:05,659
باید ویژگی هایی را اضافه کنم
51
00:02:05,659 –> 00:02:07,490
که در پوسته غیرممکن بود، اما فقط
52
00:02:07,490 –> 00:02:09,410
در طول فرآیند و سپس
53
00:02:09,410 –> 00:02:11,240
چند خلاصه و فضایی برای سوالات
54
00:02:11,240 –> 00:02:15,300
در پایان، امیدوارم
55
00:02:15,300 –> 00:02:16,740
56
00:02:16,740 –> 00:02:20,790
در اینجا در مورد چه نوع اسکریپت
57
00:02:20,790 –> 00:02:22,290
58
00:02:22,290 –> 00:02:23,940
هایی صحبت می کنیم.
59
00:02:23,940 –> 00:02:26,850
60
00:02:26,850 –> 00:02:30,180
همه جا دراز کشیدن
61
00:02:30,180 –> 00:02:32,250
ممکن است ابزارهای توسعه دهنده وجود داشته باشد، مثلاً
62
00:02:32,250 –> 00:02:33,750
یک دستور پیچیده دارید که بخشی
63
00:02:33,750 –> 00:02:36,450
از گردش کار شما است و به جای
64
00:02:36,450 –> 00:02:37,920
اینکه کل دستور را به خاطر بسپارید،
65
00:02:37,920 –> 00:02:39,360
اساساً آن را در یک
66
00:02:39,360 –> 00:02:40,620
اسکریپت پوسته قرار می دهید و به جای آن فقط اسکریپت پوسته را اجرا می
67
00:02:40,620 –> 00:02:42,750
کنید و بنابراین این می تواند باشد. مانند
68
00:02:42,750 –> 00:02:45,780
اجرای نمایه سازی یا فقط کمک به شما
69
00:02:45,780 –> 00:02:49,410
در استقرار تغییرات خود از طریق
70
00:02:49,410 –> 00:02:51,270
فرآیند ساخت بر روی محصول تعبیه شده خود
71
00:02:51,270 –> 00:02:54,030
یا هر چیزی که در حال ساخت آن هستید، اسکریپت های پوسته
72
00:02:54,030 –> 00:02:56,130
اغلب در زمان ساخت استفاده می شوند، همچنین
73
00:02:56,130 –> 00:02:58,230
اگر یک پروژه بسیار ساده دارید،
74
00:02:58,230 –> 00:03:00,690
شاید کل سیستم ساخت شما یک پوسته
75
00:03:00,690 –> 00:03:03,720
اسکریپت اما به طور کلی شما
76
00:03:03,720 –> 00:03:06,330
سیستم ساخت پیچیده تری دارید و اگر می گویید
77
00:03:06,330 –> 00:03:09,510
کد تولید خودکار یا به نوعی
78
00:03:09,510 –> 00:03:10,980
کمک کننده برای بخشی از بیل خود نیاز دارید.
79
00:03:10,980 –> 00:03:12,750
سیستمی که ممکن است در اسکریپتهای پوسته پیادهسازی شود،
80
00:03:12,750 –> 00:03:16,140
مردم اغلب از
81
00:03:16,140 –> 00:03:17,970
اسکریپتهای پوسته برای استقرار بستهبندی استفاده میکنند و
82
00:03:17,970 –> 00:03:21,330
داراییهای شما را در
83
00:03:21,330 –> 00:03:23,130
سروری منتشر میکنند، جایی که آنها به خوبی ساخته شدهاند،
84
00:03:23,130 –> 00:03:25,800
اگر
85
00:03:25,800 –> 00:03:28,950
چنین کارهایی را انجام میدهید و
86
00:03:28,950 –> 00:03:31,560
در پایان در تولید و مشتری
87
00:03:31,560 –> 00:03:33,270
شما دوست دارد اگر محصولی را ارسال می کنید، آن
88
00:03:33,270 –> 00:03:34,830
محصول ممکن است اسکریپت های پوسته
89
00:03:34,830 –> 00:03:39,090
روی آن اجرا شود، بنابراین اسکریپت های پوسته شما
90
00:03:39,090 –> 00:03:41,160
اساساً در سایت مشتری شما
91
00:03:41,160 –> 00:03:45,270
نیز اجرا می شوند، بنابراین اسکریپت های پوسته مانند ما همیشه
92
00:03:45,270 –> 00:03:46,680
از آنها استفاده می کنیم، بنابراین باید اجرا شوند.
93
00:03:46,680 –> 00:03:49,020
برای چیزی خوب هستند،
94
00:03:49,020 –> 00:03:51,450
اگر منطق شما ساده باشد و هیچ ساختار تاریخی ندارید، واقعاً برای چیزهای کوتاه و ساده خوب هستند،
95
00:03:51,450 –> 00:03:52,830
96
00:03:52,830 –> 00:03:55,050
بله
97
00:03:55,050 –> 00:03:56,340
اسکریپت های پوسته راه حل واقعا خوبی است،
98
00:03:56,340 –> 00:03:59,400
به شما کمک می کند یک دستور پیچیده
99
00:03:59,400 –> 00:04:01,500
یا چند دستور را بگیرید و بپیچید. آنها را به یک
100
00:04:01,500 –> 00:04:03,870
بسته بندی کوچک زیبا تبدیل می کنند و لازم
101
00:04:03,870 –> 00:04:05,750
نیست همه این موارد را در داخل به خاطر بسپارید،
102
00:04:05,750 –> 00:04:09,780
اما هنگامی که اسکریپت پوسته شروع به رشد
103
00:04:09,780 –> 00:04:12,000
کرد، اگر به مقداری داده نیاز دارید منطق بیشتری به آنها اضافه
104
00:04:12,000 –> 00:04:14,070
کنید. ساختارهایی که در آنجا
105
00:04:14,070 –> 00:04:17,339
نیاز دارید، مثلاً
106
00:04:17,339 –> 00:04:20,910
از خط فرمان و اگر شروع
107
00:04:20,910 –> 00:04:22,620
به تبدیل کردن چیزها به توابع برای
108
00:04:22,620 –> 00:04:24,570
استفاده مجدد از آنها کنید، بله، برخی از آن ها را پشتیبانی می کند
109
00:04:24,570 –> 00:04:28,070
، اما
110
00:04:28,070 –> 00:04:31,340
اگر اسکریپت پوسته را باز
111
00:04:31,340 –> 00:04:32,690
کنید و طولانی تر از
112
00:04:32,690 –> 00:04:35,300
صفحه نمایش باشد، به سرعت خراب می شود. پر از متن
113
00:04:35,300 –> 00:04:37,520
، انگیزه زیادی لازم است تا در واقع وارد آن شوید
114
00:04:37,520 –> 00:04:39,050
و بفهمید که چه کاری انجام می دهد، زیرا
115
00:04:39,050 –> 00:04:41,060
گاهی اوقات یک نحو کاملاً باطنی دارد
116
00:04:41,060 –> 00:04:44,630
و همچنین وقتی اسکریپت های پوسته
117
00:04:44,630 –> 00:04:46,550
شما رشد می کنند، به زودی با مشکلات ایمنی مواجه
118
00:04:46,550 –> 00:04:48,470
خواهید شد.
119
00:04:48,470 –> 00:04:50,180
من به عنوان یک برنامه نویس اسکریپت پوسته
120
00:04:50,180 –> 00:04:52,660
برای نوشتن این یک کد اسکریپت پوسته ایمن نظم و انضباط
121
00:04:52,660 –> 00:04:55,280
دارم، به زودی به چند نمونه دیگر در اینجا نگاه خواهم کرد،
122
00:04:55,280 –> 00:05:00,830
بنابراین چرا پایتون بهتر است، بنابراین
123
00:05:00,830 –> 00:05:01,970
من فقط قصد دارم یک مقایسه سریع
124
00:05:01,970 –> 00:05:03,950
بین شل و پایتون انجام دهم
125
00:05:03,950 –> 00:05:07,790
تا برای پوسته شما یک نحو نسبتاً آسان
126
00:05:07,790 –> 00:05:10,160
دارد، بسیار شبیه به آنچه
127
00:05:10,160 –> 00:05:11,570
از خط فرمان میدانید کار میکند، بنابراین
128
00:05:11,570 –> 00:05:13,010
اگر قبلاً روی
129
00:05:13,010 –> 00:05:14,600
خط فرمان کار میکردید، این مهارتها
130
00:05:14,600 –> 00:05:16,220
به پوسته قابل انتقال هستند. کریپت
131
00:05:16,220 –> 00:05:17,720
زیرا اساساً دستورات را یکی
132
00:05:17,720 –> 00:05:20,510
پس از دیگری فرمان میدهد، بنابراین
133
00:05:20,510 –> 00:05:23,810
تولید محصول آسان است، اما پیچیدگی
134
00:05:23,810 –> 00:05:25,370
مانند زمانی که وقتی
135
00:05:25,370 –> 00:05:26,750
اسکریپتهای پوسته پیچیدهتر و پیچیدهتری مینویسید که در اصل
136
00:05:26,750 –> 00:05:28,610
تبدیل به اسکریپتهای
137
00:05:28,610 –> 00:05:30,380
نوشتن میشوند، خواندن آنها واقعاً سخت است که یک بار آنها را بنویسید.
138
00:05:30,380 –> 00:05:31,520
پس اگر مجبورید
139
00:05:31,520 –> 00:05:36,620
تغییراتی ایجاد کنید، سخت است، اما
140
00:05:36,620 –> 00:05:38,000
پوسته یک چیز دارد،
141
00:05:38,000 –> 00:05:39,500
اجرای همه برنامهها برای
142
00:05:39,500 –> 00:05:41,120
پوسته امری بیاهمیت است و اساساً
143
00:05:41,120 –> 00:05:44,210
به همین دلیل است
144
00:05:44,210 –> 00:05:46,460
که اسکریپتهای پوسته دلیل اصلی اسکریپتهای پوسته هستند، زیرا خود پوسته بسیار
145
00:05:46,460 –> 00:05:47,870
بسیار کم است. زبانی که
146
00:05:47,870 –> 00:05:51,350
از نظر ابزارهای موجود
147
00:05:51,350 –> 00:05:53,690
در خود زبان در دسترس ندارید، همه چیز در مورد
148
00:05:53,690 –> 00:05:57,050
اجرای برنامه های دیگر سیستم شما برای
149
00:05:57,050 –> 00:06:02,000
انجام کارهاست، یادگیری پوسته نسبتاً یا نسبتاً
150
00:06:02,000 –> 00:06:03,590
ساده است زیرا می توانید به صورت
151
00:06:03,590 –> 00:06:05,120
آنلاین جستجو کنید و می توانید منابع و منابع زیادی پیدا کنید.
152
00:06:05,120 –> 00:06:07,850
مثالها، اما بسیاری از
153
00:06:07,850 –> 00:06:09,290
اسکریپتهای پوستهای که به صورت آنلاین پیدا میکنید
154
00:06:09,290 –> 00:06:12,770
همیشه کیفیت خوبی ندارند و در اینجا یکی
155
00:06:12,770 –> 00:06:14,600
از ویژگیهای ایمنی مورد علاقه من است.
156
00:06:14,600 –> 00:06:15,920
مشکلات ایمنی بیشتری در پوسته وجود دارد، اما
157
00:06:15,920 –> 00:06:17,780
این رایج ترین مورد است، بنابراین ما
158
00:06:17,780 –> 00:06:18,920
این متغیر نام فایل
159
00:06:18,920 –> 00:06:21,290
را داریم و آن را روی این نام فایل تنظیم می کنیم و
160
00:06:21,290 –> 00:06:24,170
سپس سعی می کنیم نام فایل را به خوبی لمس
161
00:06:24,170 –> 00:06:25,430
کنیم.
162
00:06:25,430 –> 00:06:26,540
دوباره سه فایل
163
00:06:26,540 –> 00:06:28,550
را لمس می کنید، یک فایل به نام فایل دیگر من
164
00:06:28,550 –> 00:06:30,290
به نام favorite و فایل سوم به نام
165
00:06:30,290 –> 00:06:33,200
quotations dot txt را لمس می کنید، زیرا این همان چیزی است که
166
00:06:33,200 –> 00:06:36,650
پوسته انجام می دهد انواع
167
00:06:36,650 –> 00:06:39,380
متغیرها و مدیریت رشته ها را خیلی
168
00:06:39,380 –> 00:06:41,629
خوب انجام نمی دهد، به خصوص در
169
00:06:41,629 –> 00:06:45,349
به محض اینکه از محدوده هشت
170
00:06:45,349 –> 00:06:47,929
نام فایل طولانی کاراکتری بدون فاصله خارج شوید
171
00:06:47,929 –> 00:06:50,209
و بله، مانند تله های زیادی در اسکریپت های پوسته وجود دارد، از
172
00:06:50,209 –> 00:06:53,149
طرف دیگر
173
00:06:53,149 –> 00:06:55,639
پایتون یک نحو بسیار ساده و دوستانه مبتدی دارد
174
00:06:55,639 –> 00:06:57,289
، منحنی یادگیری
175
00:06:57,289 –> 00:07:01,069
برای پایتون از این نظر نسبتاً کم عمق است.
176
00:07:01,069 –> 00:07:02,959
شما می توانید با زیرمجموعه بسیار کوچکی از زبان ها به سرعت به بهره وری دست پیدا کنید،
177
00:07:02,959 –> 00:07:05,449
178
00:07:05,449 –> 00:07:07,550
بسیاری از مردم PI را در یکی
179
00:07:07,550 –> 00:07:11,449
از خواناترین زبان ها در نظر
180
00:07:11,449 –> 00:07:13,189
می گیرند، اجرای برنامه های دیگر از
181
00:07:13,189 –> 00:07:14,839
پایتون به اندازه شل پیش پا افتاده نیست، اما اشتباه است.
182
00:07:14,839 –> 00:07:16,490
خیلی آسان است و من از طریق
183
00:07:16,490 –> 00:07:18,680
برخی از این راهها قدم
184
00:07:18,680 –> 00:07:20,689
میزنم که قطعاً دامهای کمتری نسبت به
185
00:07:20,689 –> 00:07:22,699
پوسته دارد، لازم نیست نگران این
186
00:07:22,699 –> 00:07:25,399
باشید که رشتههای ما به این شکل رفتار
187
00:07:25,399 –> 00:07:27,379
میکنند و باید این را در نظر داشته باشید که
188
00:07:27,379 –> 00:07:30,439
این اسکریپتها را مینویسید.
189
00:07:30,439 –> 00:07:32,029
ادبیات و منابع زیادی به صورت آنلاین برای یادگیری
190
00:07:32,029 –> 00:07:34,339
پایتون وجود دارد و هنگامی که یک مثال پایتون مانند پاتون را پیدا می کنید،
191
00:07:34,339 –> 00:07:36,369
سبک ثابت نسبتا خوبی
192
00:07:36,369 –> 00:07:40,819
دارد و نمونه
193
00:07:40,819 –> 00:07:43,669
هایی که به صورت آنلاین پیدا می کنید معمولاً حداقل به نظر من هستند
194
00:07:43,669 –> 00:07:45,289
یا به تجربه من
195
00:07:45,289 –> 00:07:46,789
کیفیت بهتری نسبت به
196
00:07:46,789 –> 00:07:49,779
به عنوان مثال از اسکریپت های پوسته، ساختارها و انواع داده های آنلاین را پیدا می کنید،
197
00:07:49,779 –> 00:07:53,209
بنابراین در پوسته
198
00:07:53,209 –> 00:07:55,699
همه چیز یک فضای رشته ای Y است همانطور که
199
00:07:55,699 –> 00:07:57,800
در مقادیر مسائل هزینه گفتم و شما باید
200
00:07:57,800 –> 00:07:59,809
در برخورد با
201
00:07:59,809 –> 00:08:01,269
متغیرها و مقادیر آنها در پوسته بسیار مراقب باشید.
202
00:08:01,269 –> 00:08:03,499
203
00:08:03,499 –> 00:08:05,449
برخی از IRA ها پشتیبانی می شوند، به
204
00:08:05,449 –> 00:08:06,769
خصوص اگر به
205
00:08:06,769 –> 00:08:08,360
زبان های اسکریپت نویسی پوسته پیشرفته تر مانند
206
00:08:08,360 –> 00:08:10,099
bash بروید، اما اگر می خواهید به یک زیرمجموعه مشترک بمانید،
207
00:08:10,099 –> 00:08:12,919
کارهای بسیار محدودی وجود دارد که
208
00:08:12,919 –> 00:08:15,019
می توانید انجام دهید. و من این نقل قول را از
209
00:08:15,019 –> 00:08:16,610
راهنمای برنامه نویسی پیشرفته bash پیدا کردم که
210
00:08:16,610 –> 00:08:18,050
فکر می کنم
211
00:08:18,050 –> 00:08:20,180
برخلاف بسیاری از آنها طلایی است و به خصوص در
212
00:08:20,180 –> 00:08:21,379
کنفرانسی مانند این که در آن
213
00:08:21,379 –> 00:08:23,659
C++ زیادی وجود دارد و همچنین صحبت های سطح بالا در مورد
214
00:08:23,659 –> 00:08:26,509
انواع پیشرفته و نحوه
215
00:08:26,509 –> 00:08:28,759
ساختن سیستم های نوع خوب وجود دارد. این
216
00:08:28,759 –> 00:08:30,559
بسیار متفاوت است بر خلاف بسیاری از
217
00:08:30,559 –> 00:08:32,208
زبان های برنامه نویسی دیگر، bash
218
00:08:32,208 –> 00:08:34,179
متغیرهای خود را با سختی جدا نمی
219
00:08:34,179 –> 00:08:36,318
220
00:08:36,318 –> 00:08:38,179
221
00:08:38,179 –> 00:08:39,860
222
00:08:39,860 –> 00:08:42,469
223
00:08:42,469 –> 00:08:44,240
224
00:08:44,240 –> 00:08:46,970
کند. این
225
00:08:46,970 –> 00:08:48,560
یک برداشت نسبتاً تازه از کل
226
00:08:48,560 –> 00:08:49,910
مفهوم انواع است، زمانی که شما از چیزی
227
00:08:49,910 –> 00:08:54,589
مانند C++ می آیید، به عنوان مثال پایتون، از سوی دیگر
228
00:08:54,589 –> 00:08:55,680
، یک
229
00:08:55,680 –> 00:08:57,930
230
00:08:57,930 –> 00:09:00,840
متغیر بسیار پویا که به صورت پویا در آن متغیر تایپ می شود، شما
231
00:09:00,840 –> 00:09:03,030
نوع متغیر را مشخص نمی کنید و باید باقی بماند. به این
232
00:09:03,030 –> 00:09:05,240
ترتیب
233
00:09:05,610 –> 00:09:08,430
شما در پایتون مدرن محدودیتهای نوع دارید،
234
00:09:08,430 –> 00:09:09,690
اما من نمیخواهم به این موضوع اشاره کنم
235
00:09:09,690 –> 00:09:12,510
که در اینجا به صورت پویا تایپ شده است، اما
236
00:09:12,510 –> 00:09:14,760
اینطور است. o به شدت تایپ می شود زمانی که پایتون
237
00:09:14,760 –> 00:09:17,820
نوع متغیر پایتون را تعیین کرده
238
00:09:17,820 –> 00:09:19,950
است، در مورد مدیریت آن نوع بسیار سختگیرانه است
239
00:09:19,950 –> 00:09:21,600
، اینطور نیست که اعداد صحیح ناگهان
240
00:09:21,600 –> 00:09:23,880
به رشته تبدیل شوند یا رشته ها به
241
00:09:23,880 –> 00:09:26,400
اعداد صحیح تبدیل شوند یا می توانید یک
242
00:09:26,400 –> 00:09:29,430
مقدار ممیز شناور را با رشته ای مانند
243
00:09:29,430 –> 00:09:33,240
آنچه در جاوا اسکریپت می توانید به هم متصل کنید. به عنوان مثال و به
244
00:09:33,240 –> 00:09:36,030
نظر من این تعادل نسبتاً خوبی در
245
00:09:36,030 –> 00:09:37,650
پایتون است و به شما امکان میدهد
246
00:09:37,650 –> 00:09:40,470
خیلی کارها را به راحتی انجام دهید، اما همچنان پایتون
247
00:09:40,470 –> 00:09:43,350
شما را از انجام بسیاری از
248
00:09:43,350 –> 00:09:46,440
اشتباهات آسان که میتوانید در زمانی که زبان ضعیفی دارید انجام دهید، باز میدارد.
249
00:09:46,440 –> 00:09:50,460
250
00:09:50,460 –> 00:09:52,320
تعداد نسبتاً زیادی از انواع داخلی شما
251
00:09:52,320 –> 00:09:54,390
عدد معمولی را در مجموعه شناور دارید
252
00:09:54,390 –> 00:09:56,700
، دنباله هایی دارید، لیست ها و تاپل ها
253
00:09:56,700 –> 00:09:59,730
و محدوده هایی دارید، مجموعه داده های متنی و باینری
254
00:09:59,730 –> 00:10:02,760
و دیکته دارید که دیکشنری نوع نگاشت است
255
00:10:02,760 –> 00:10:05,610
و سپس انواع دیگری
256
00:10:05,610 –> 00:10:07,110
نیز دارید. در پایتون
257
00:10:07,110 –> 00:10:08,670
همه چیز یک شی است، بنابراین حتی
258
00:10:08,670 –> 00:10:10,950
ماژول های شما که در پایتون می نویسید
259
00:10:10,950 –> 00:10:12,900
نزدیک ترین نمونه های نزدیک خود را توابع
260
00:10:12,900 –> 00:10:14,880
روش ها بله استثناها همه چیز یک
261
00:10:14,880 –> 00:10:16,710
شی است و بسیار d است ynamic می توانید
262
00:10:16,710 –> 00:10:18,600
از طریق زبان خود را بررسی کنید و جستجو کنید
263
00:10:18,600 –> 00:10:21,330
و بگویید من این ماژول را وارد کردم می توانم I
264
00:10:21,330 –> 00:10:24,360
III اکنون می توانم از طریق توابع مختلفی
265
00:10:24,360 –> 00:10:26,520
که از آن ماژول برای آنها در دسترس بودم حلقه بزنم،
266
00:10:26,520 –> 00:10:31,800
به عنوان مثال ماژولار بودن، بنابراین وقتی
267
00:10:31,800 –> 00:10:34,050
پوسته را می نویسید می توانید
268
00:10:34,050 –> 00:10:39,780
اسکریپت های پوسته خود را با توابع ساختاربندی کنید.
269
00:10:39,780 –> 00:10:42,240
رفتار محدودهبندی توابع
270
00:10:42,240 –> 00:10:44,330
اسکریپتهای پوسته decels همیشه واضح
271
00:10:44,330 –> 00:10:46,740
نیستند، قوانین عجیبی وجود دارد که
272
00:10:46,740 –> 00:10:48,720
متغیرها به طور پیشفرض سراسری هستند، به
273
00:10:48,720 –> 00:10:50,970
عنوان مثال، اگر یک تابع را اجرا کنید و در
274
00:10:50,970 –> 00:10:52,980
آنجا متغیر را در داخل
275
00:10:52,980 –> 00:10:55,200
تغییر دهید، ممکن است در واقع برخی از متغیرهای سراسری را تغییر دهید
276
00:10:55,200 –> 00:10:57,180
و ممکن است انتظار نداشته باشید که
277
00:10:57,180 –> 00:10:58,830
بسته به آن در مورد میزان تجربه
278
00:10:58,830 –> 00:11:01,440
شما با اسکریپت های پوسته، اگر
279
00:11:01,440 –> 00:11:03,000
در مورد ماژولار بودن بین فایل ها صحبت می کنید،
280
00:11:03,000 –> 00:11:05,610
اساساً کد خود را در
281
00:11:05,610 –> 00:11:07,080
اسکریپت های پوسته مختلف قرار می دهید و به
282
00:11:07,080 –> 00:11:08,430
آن دسترسی پیدا می
283
00:11:08,430 –> 00:11:10,800
کنید، می توانید به دو روش
284
00:11:10,800 –> 00:11:12,810
از
285
00:11:12,810 –> 00:11:15,540
یک اسکریپت پوسته خارج شوید. اساساً به عنوان یک
286
00:11:15,540 –> 00:11:19,080
فرآیند جداگانه یا می توانید از
287
00:11:19,080 –> 00:11:20,940
عبارت منبع یا در برخی از
288
00:11:20,940 –> 00:11:25,230
گویش ها استفاده کنید y به سادگی یک نقطه است، بنابراین هنگامی که
289
00:11:25,230 –> 00:11:26,459
شما فقط یک اسکریپت پوسته را فراخوانی می کنید،
290
00:11:26,459 –> 00:11:27,959
اساساً آن را به عنوان یک فرآیند جداگانه اجرا می کنید،
291
00:11:27,959 –> 00:11:29,640
اما زمانی که از منبع استفاده می کنید، می توانید
292
00:11:29,640 –> 00:11:30,899
فکر کنید که یک هش شامل
293
00:11:30,899 –> 00:11:32,580
اساساً منبع آن
294
00:11:32,580 –> 00:11:35,190
اسکریپت پوسته در بافت پوسته شما اجرا می شود.
295
00:11:35,190 –> 00:11:37,260
اسکریپت، بنابراین اگر این یک
296
00:11:37,260 –> 00:11:38,399
متغیر فوقالعاده است، اکنون میتوانید
297
00:11:38,399 –> 00:11:42,930
از اسکریپت خود به آن متغیر دسترسی پیدا کنید، اما اگر اسکریپتی
298
00:11:42,930 –> 00:11:46,170
بنویسید که توسط یک اسکریپت دیگر منبع شود،
299
00:11:46,170 –> 00:11:48,570
یک اسکریپت نمیتواند به راحتی
300
00:11:48,570 –> 00:11:50,700
بفهمد که آیا
301
00:11:50,700 –> 00:11:52,410
توسط یک اسکریپت دیگر منبع شده است یا اینکه آیا
302
00:11:52,410 –> 00:11:53,580
فقط فراخوانی شده است. از خط فرمان یا
303
00:11:53,580 –> 00:11:56,640
از جای دیگری تماس بگیرید، بنابراین معمولاً
304
00:11:56,640 –> 00:11:58,529
هنگام نوشتن اسکریپت،
305
00:11:58,529 –> 00:12:00,779
آن را به عنوان فهرستی از دستورالعملهایی که باید اجرا شوند،
306
00:12:00,779 –> 00:12:02,040
مینویسید و ممکن است برخی از
307
00:12:02,040 –> 00:12:03,990
توابع برای بازسازی عملکرد شما در
308
00:12:03,990 –> 00:12:05,820
خارج از آنجا وجود داشته باشد یا
309
00:12:05,820 –> 00:12:07,560
آن را به سادگی به عنوان یک کیسه بنویسید. توابعی که اگر
310
00:12:07,560 –> 00:12:09,290
فقط آن را اجرا کنید، هیچ کار دیگری انجام نمی دهد
311
00:12:09,290 –> 00:12:11,430
به جز اینکه آن توابع و شاید
312
00:12:11,430 –> 00:12:13,980
برخی متغیرها را اعلام کند و اساساً
313
00:12:13,980 –> 00:12:15,870
فقط برای منبع یابی توسط تمام
314
00:12:15,870 –> 00:12:17,220
اسکریپت های پوسته در نظر گرفته شده است که h سپس
315
00:12:17,220 –> 00:12:21,390
عملکرد اصلی خود را در
316
00:12:21,390 –> 00:12:26,040
پایتون قرار دهید، بنابراین در یک فایل پایتون می توانید
317
00:12:26,040 –> 00:12:27,660
کد را به توابع ساختار دهید، اما
318
00:12:27,660 –> 00:12:29,040
کلاس هایی نیز دارید و ساختار داده مناسبی دارید،
319
00:12:29,040 –> 00:12:33,150
بنابراین این به شما امکان می دهد
320
00:12:33,150 –> 00:12:36,720
اساساً کد خود را به شکلی که مناسب ترین شکل است در نظر بگیرید.
321
00:12:36,720 –> 00:12:39,000
322
00:12:39,000 –> 00:12:41,900
شما سعی میکنید بین فایلهایی
323
00:12:41,900 –> 00:12:45,390
که میتوانید به فایلهای پایتون دسترسی داشته باشید، به دو
324
00:12:45,390 –> 00:12:49,320
روش بیان کنید، من اساساً import را در ابتدا در اینجا قرار میدهم،
325
00:12:49,320 –> 00:12:50,850
زیرا این همان کاری است که شما
326
00:12:50,850 –> 00:12:53,850
اغلب انجام میدهید، بنابراین میتوانید
327
00:12:53,850 –> 00:12:56,400
آن را مانند منبع در پوسته در نظر بگیرید.
328
00:12:56,400 –> 00:12:59,550
که برنامه پایتون شما مستقیماً
329
00:12:59,550 –> 00:13:03,900
به یک فایل پایتون دیگر دسترسی دارد اما
330
00:13:03,900 –> 00:13:07,170
فضای نام مناسبی دارد، بنابراین اگر
331
00:13:07,170 –> 00:13:09,329
بخواهم یک اسکریپت پوسته را اینجا از یک
332
00:13:09,329 –> 00:13:11,579
اسکریپت پوسته دیگر تهیه کنم و یک متغیر foo را اعلام کند
333
00:13:11,579 –> 00:13:13,829
که متغیر foo اکنون
334
00:13:13,829 –> 00:13:15,180
مستقیماً در فضای نام من
335
00:13:15,180 –> 00:13:17,250
است، دیگر وجود ندارد. مفهوم
336
00:13:17,250 –> 00:13:19,709
فضای نام جداگانه اما در پایتون اگر ماژول را وارد کنم
337
00:13:19,709 –> 00:13:21,760
338
00:13:21,760 –> 00:13:24,220
، موارد موجود در آن ماژول
339
00:13:24,220 –> 00:13:26,320
به طور پیشفرض از طریق آن ماژولها به نام نقطه چیزی برای من قابل دسترسی است، به
340
00:13:26,320 –> 00:13:28,180
طوری که به نوعی از
341
00:13:28,180 –> 00:13:29,800
هم جدا شده است. o فضای نام خودش، فضای نام
342
00:13:29,800 –> 00:13:32,620
من را آلوده نمیکند، من همچنین میتوانم
343
00:13:32,620 –> 00:13:36,820
یک اسکریپت پایتون دیگر را با یک
344
00:13:36,820 –> 00:13:39,850
فرآیند فرعی فراخوانی کنم تا اساساً آن را بهعنوان یک
345
00:13:39,850 –> 00:13:42,550
فرآیند معمولی نام ببرم که معمولاً
346
00:13:42,550 –> 00:13:44,260
کاری نیست که شما بین برنامههای پایتون انجام میدهید.
347
00:13:44,260 –> 00:13:49,870
348
00:13:49,870 –> 00:13:52,720
بعداً در اینجا توضیح دهید اگر
349
00:13:52,720 –> 00:13:54,160
محافظ اصلی دارید و من به شما نشان خواهم داد
350
00:13:54,160 –> 00:13:57,160
که چه چیزی است که به یک اسکریپت پایتون اجازه می دهد
351
00:13:57,160 –> 00:13:59,080
تشخیص دهد که آیا مستقیماً اجرا می شود
352
00:13:59,080 –> 00:14:01,120
یا از ماژول دیگری وارد شده است
353
00:14:01,120 –> 00:14:03,990
و این به یک
354
00:14:03,990 –> 00:14:08,140
فایل پایتون اجازه می دهد نوشته شده هم به عنوان
355
00:14:08,140 –> 00:14:10,330
پوسته به عنوان یک اسکریپت که می تواند از
356
00:14:10,330 –> 00:14:13,150
خط فرمان اجرا شود و هم به عنوان یک ماژول که
357
00:14:13,150 –> 00:14:14,710
می تواند از سایر کدهای پایتون وارد شود
358
00:14:14,710 –> 00:14:20,640
و این یک مفهوم کاملا مفید است، بنابراین
359
00:14:21,000 –> 00:14:24,850
در اینجا غذای پوسته اسکریپت SH است که
360
00:14:24,850 –> 00:14:26,800
اساساً با تکرار این شروع می شود.
361
00:14:26,800 –> 00:14:28,180
روی صفحه این همیشه اجرا میشود و سپس
362
00:14:28,180 –> 00:14:30,400
تابعی را اعلام میکند که یک اکو دیگر انجام میدهد،
363
00:14:30,400 –> 00:14:35,770
بنابراین بله، اگر من فقط غذای Sh
364
00:14:35,770 –> 00:14:37,570
را اجرا کنم، این کار را انجام میدهد و
365
00:14:37,570 –> 00:14:38,590
این عملکرد را انجام میدهد، اما
366
00:14:38,590 –> 00:14:39,880
آن تابعی را که من تماس نمیگیرم اجرا نمیکند.
367
00:14:39,880 –> 00:14:42,040
این تابع
368
00:14:42,040 –> 00:14:43,680
بنابراین اگر فقط مجوز غذا را اجرا کنید
369
00:14:43,680 –> 00:14:47,020
و سپس Bartle sh this one
370
00:14:47,020 –> 00:14:49,450
Foo را در اختیار داشته باشید این تابع نشان داده نمی شود و سپس آن عملکرد را اجرا می
371
00:14:49,450 –> 00:14:54,580
کند، بنابراین در هر دو مورد به خوبی زمانی که
372
00:14:54,580 –> 00:14:56,470
من غذا را اجرا می کنم، این یکی چاپ می شود،
373
00:14:56,470 –> 00:14:58,690
اما من می خواهم run bar این یکی قرار
374
00:14:58,690 –> 00:15:00,340
است چاپ شود و سپس با foo تماس میگیرم و
375
00:15:00,340 –> 00:15:02,230
این یکی را چاپ میکنم، بنابراین این
376
00:15:02,230 –> 00:15:07,240
عبارت همیشه اجرا میشود و هیچ راهی آسان در پوسته وجود ندارد که
377
00:15:07,240 –> 00:15:09,400
غذا اساساً
378
00:15:09,400 –> 00:15:12,100
تشخیص دهد که اوه من منبع آن هستم. من
379
00:15:12,100 –> 00:15:14,650
نمی خواهم این کار را انجام دهم یا اکنون در حال
380
00:15:14,650 –> 00:15:16,710
اجرا هستم بنابراین اکنون می خواهم منطق اصلی خود را انجام دهم
381
00:15:16,710 –> 00:15:20,110
در حالی که در پایتون این
382
00:15:20,110 –> 00:15:22,990
کد تقریباً مشابه است پایتون اساساً می گوید خوب است
383
00:15:22,990 –> 00:15:25,600
من می خواهم همیشه این را چاپ کنم و سپس
384
00:15:25,600 –> 00:15:27,760
این تابع را اعلام کنم foo حق
385
00:15:27,760 –> 00:15:31,240
چاپ را نیز انجام می دهد و من فعلاً می گذرم
386
00:15:31,240 –> 00:15:33,640
که یک نوار در نوار ما غذا وارد می کنیم و
387
00:15:33,640 –> 00:15:35,120
سپس غذا یا غذا
388
00:15:35,120 –> 00:15:38,920
را با این تابع صدا می زنیم، بنابراین اکنون وقتی نوار را اجرا می کنم،
389
00:15:38,920 –> 00:15:41,120
دستور import در واقع
390
00:15:41,120 –> 00:15:42,769
این کد را اجرا می کند و این کار را انجام می دهد.
391
00:15:42,769 –> 00:15:45,769
چاپ، بنابراین این همیشه اجرا می شود، حتی
392
00:15:45,769 –> 00:15:47,300
زمانی که نوار این را اجرا می کنید همچنین چاپ میشود
393
00:15:47,300 –> 00:15:50,449
و سپس یک تابع را اعلام میکند
394
00:15:50,449 –> 00:15:52,819
که هنوز آن را اجرا نمیکند و سپس وقتی
395
00:15:52,819 –> 00:15:56,149
اینجا پایین میآید، میگوید که آیا نام
396
00:15:56,149 –> 00:15:58,399
برابر با main است که اساساً به این معنی است که
397
00:15:58,399 –> 00:16:01,850
از طریق اسکریپت اصلی در این
398
00:16:01,850 –> 00:16:05,540
فرآیند پایتون است و اگر اینطور نیست ما فقط
399
00:16:05,540 –> 00:16:09,709
از این رد میشویم، بنابراین از زمانی که تعداد کمی بهتنهایی
400
00:16:09,709 –> 00:16:13,309
اجرا میشوند، این چاپ میشود و این
401
00:16:13,309 –> 00:16:16,430
چاپ میشود، اما وقتی نوار را اجرا میکنید، ما غذا وارد میکنیم،
402
00:16:16,430 –> 00:16:18,949
این چاپ میشود، این مورد نادیده گرفته میشود و
403
00:16:18,949 –> 00:16:20,600
شما اساساً میتوانید این امکانات را
404
00:16:20,600 –> 00:16:22,879
در پایتون به صورت رایگان برای تشخیص آن داشته باشید. اوه،
405
00:16:22,879 –> 00:16:24,379
من وارد میشوم، نیازی به اجرای
406
00:16:24,379 –> 00:16:27,110
آن ندارم و سپس این فراخوانی را در اینجا انجام میدهیم و
407
00:16:27,110 –> 00:16:34,550
تماس با غذا را انجام میدهیم، بنابراین
408
00:16:34,550 –> 00:16:36,410
ابزارهای مقایسه پوسته در برابر Python در
409
00:16:36,410 –> 00:16:39,470
کتابخانهها بیشتر است، همانطور که گفتم زبان اسکریپت پوسته
410
00:16:39,470 –> 00:16:41,749
خود بسیار کم است. شما از
411
00:16:41,749 –> 00:16:43,939
باینری های سیستمی از یونیکس یا از
412
00:16:43,939 –> 00:16:45,860
جای دیگری در سیستم خود برای انجام کارهای سنگین استفاده می کنید
413
00:16:45,860 –> 00:16:47,350
414
00:16:47,350 –> 00:16:51,889
بله در پایتون پایتون بسیار متفاوت است
415
00:16:51,889 –> 00:16:53,089
در اینجا بخشی که یک کتابخانه استاندارد بسیار بسیار غنی
416
00:16:53,089 –> 00:16:54,829
است شما می توانید بسیاری از کارها را
417
00:16:54,829 –> 00:16:56,749
در داخل زبان بدون نیاز
418
00:16:56,749 –> 00:17:00,079
به فراخوانی خارجی انجام دهید.
419
00:17:00,079 –> 00:17:01,850
ماژولهای شخص ثالث بیشتری را
420
00:17:01,850 –> 00:17:05,059
پردازش میکند، بنابراین اگر میخواهید
421
00:17:05,059 –> 00:17:06,909
عملکردهای بیشتری داشته باشید، میتوانید آن را در آنجا پیدا کنید
422
00:17:06,909 –> 00:17:09,409
و میتوانید از ماژول پردازش فرعی
423
00:17:09,409 –> 00:17:10,909
برای فراخوانی باینریهای دیگر در
424
00:17:10,909 –> 00:17:12,199
سیستم خود استفاده کنید تا همچنان بتوانید با همه دستگاهها تعامل داشته
425
00:17:12,199 –> 00:17:14,029
باشید. باینریهایی که دقیقاً مانند شما از اسکریپتهای پوسته به آنها وابسته هستید،
426
00:17:14,029 –> 00:17:16,909
427
00:17:16,909 –> 00:17:18,289
از پایتون کمی مبهمتر از پوسته است،
428
00:17:18,289 –> 00:17:24,709
اما برای تبدیل یک اسکریپت پوسته به
429
00:17:24,709 –> 00:17:32,169
پایتون، نکات و تکنیکهایی در ابتدا
430
00:17:32,169 –> 00:17:38,450
فقط نحوه سازماندهی کد خود را در ابتدا مشاهده کردیم، همانطور که
431
00:17:38,450 –> 00:17:41,630
قبلاً در اینجا دیدیم اسکریپت پایتون،
432
00:17:41,630 –> 00:17:44,630
میتوانید عباراتی در آن داشته باشید. سطح بالا
433
00:17:44,630 –> 00:17:46,520
اگر به C و C++ عادت دارید
434
00:17:46,520 –> 00:17:48,080
واقعاً این را ندارید، دوست ندارید
435
00:17:48,080 –> 00:17:49,940
چیزی را در خود قرار
436
00:17:49,940 –> 00:17:51,169
دهید، باید دستورات خود را در یک تابع قرار
437
00:17:51,169 –> 00:17:53,480
دهید تا واقعاً کار کنند، فقط می توانید printf داشته باشید.
438
00:17:53,480 –> 00:17:59,809
در سطح بالا، اما میتوانید در
439
00:17:59,809 –> 00:18:03,350
پایتون و در پوسته این کار را انجام میدهید، بنابراین هنگام
440
00:18:03,350 –> 00:18:04,940
تبدیل از پوسته به پایتون، میتوانید
441
00:18:04,940 –> 00:18:06,649
به سادگی با رونویسی اسکریپت پوسته خود در پایتون شروع کنید،
442
00:18:06,649 –> 00:18:08,690
443
00:18:08,690 –> 00:18:10,039
پس از آن که آنها پشت سر هم برش داده شدند، نیازی به cha نیست.
444
00:18:10,039 –> 00:18:11,809
ساختار اصلاً همه چیز
445
00:18:11,809 –> 00:18:13,280
از بالا به پایین به یک شکل در
446
00:18:13,280 –> 00:18:16,280
هر دو زبان اجرا میشود و سپس میتوانید
447
00:18:16,280 –> 00:18:20,390
اسکریپت پایتون یا
448
00:18:20,390 –> 00:18:22,880
پوسته خود را مانند اسکریپت پایتون با
449
00:18:22,880 –> 00:18:24,500
توابع و کلاسهای موجود در مدرسان شروع به بازسازی کنید
450
00:18:24,500 –> 00:18:26,000
و میتوانید به نوعی افزایش و
451
00:18:26,000 –> 00:18:29,750
بهبود دهید. ساختار اسکریپت خود را
452
00:18:29,750 –> 00:18:32,090
دارید و می توانید گارد اصلی را اضافه کنید و این
453
00:18:32,090 –> 00:18:35,750
باعث می شود اسکریپت پایتون شما
454
00:18:35,750 –> 00:18:37,220
از یک اسکریپت دیگر وارد شود
455
00:18:37,220 –> 00:18:42,500
زیرا قبل از این، بگوییم که شما یک
456
00:18:42,500 –> 00:18:44,659
اسکریپت پوسته دارید و آن چیزهایی مانند این نیست که
457
00:18:44,659 –> 00:18:47,090
بگوییم برخی از فایل ها را حذف کرده است. درست است که
458
00:18:47,090 –> 00:18:50,330
برخی از فایلها را در اطراف سیستم فایل جابهجا کنید، اگر
459
00:18:50,330 –> 00:18:53,090
فقط آن را در پایتون بازنویسی کنید،
460
00:18:53,090 –> 00:18:55,070
اسکریپت پایتون هنگام اجرای آن
461
00:18:55,070 –> 00:18:57,559
همین کار را انجام میدهد، خیلی سریع حرکت میکند، اما
462
00:18:57,559 –> 00:18:59,270
اگر اکنون آن اسکریپت پایتون را
463
00:18:59,270 –> 00:19:00,740
از یک اسکریپت پایتون دیگر وارد کنید.
464
00:19:00,740 –> 00:19:02,149
هنوز هم فقط پیش بروید و آن فایل ها را جابه جا کنید
465
00:19:02,149 –> 00:19:04,100
و احتمالاً نمی خواهید این کار را
466
00:19:04,100 –> 00:19:05,990
هنگام وارد کردن آن از اسکریپت دیگری انجام دهید
467
00:19:05,990 –> 00:19:08,000
زیرا دلیل وارد کردن آن
468
00:19:08,000 –> 00:19:09,919
دسترسی به برخی عملکردهای قابل استفاده مجدد
469
00:19:09,919 –> 00:19:12,380
در داخل است. اسکریپت پایتون شما و به همین دلیل است که
470
00:19:12,380 –> 00:19:14,389
گارد اصلی را اضافه می کنید زیرا اکنون
471
00:19:14,389 –> 00:19:17,539
اگر از اجرای
472
00:19:17,539 –> 00:19:20,179
اصلی اسکریپت در داخل محافظ اصلی محافظت کنید، همه
473
00:19:20,179 –> 00:19:22,299
چیزهای دیگر بدون اینکه
474
00:19:22,299 –> 00:19:24,830
اسکریپت شما دور بزند در دسترس
475
00:19:24,830 –> 00:19:30,070
می شود و هر بار که
476
00:19:31,419 –> 00:19:33,110
بعد از شما وارد می شود، این کار انجام می شود. محافظ اصلی
477
00:19:33,110 –> 00:19:34,880
را اضافه کردهاید، معمولاً یک تابع اصلی
478
00:19:34,880 –> 00:19:36,770
را نیز اضافه میکنید تا
479
00:19:36,770 –> 00:19:38,419
رکورد اجرای اصلی را در یک
480
00:19:38,419 –> 00:19:40,490
تابع جداگانه مرتب کنید، این یک قرارداد رایج در
481
00:19:40,490 –> 00:19:43,600
پایتون است، اما
482
00:19:44,990 –> 00:19:47,330
اسکریپت دیگری هم اکنون میتواند اسکریپت شما را وارد کرده
483
00:19:47,330 –> 00:19:49,759
و سپس اجرا کند. اصلی ترین آن این است که
484
00:19:49,759 –> 00:19:52,220
اساساً اسکریپت را به جای
485
00:19:52,220 –> 00:19:54,860
استفاده از اجرای برخی فرآیندها برای
486
00:19:54,860 –> 00:19:55,999
اجرای آن در یک
487
00:19:55,999 –> 00:20:00,379
فرآیند جداگانه اجرا کنید و همانطور که در امتداد حرکت می کنید می توانید
488
00:20:00,379 –> 00:20:02,029
عملکرد قابل استفاده مجدد را به
489
00:20:02,029 –> 00:20:03,379
ماژول های جداگانه تقسیم کنید، می توانید شروع به
490
00:20:03,379 –> 00:20:05,480
توزیع کد خود روی چندین
491
00:20:05,480 –> 00:20:08,419
اسکریپت پایتون کنید تا مطمئن شوید که هر
492
00:20:08,419 –> 00:20:11,980
Grif یک کار را به خوبی انجام می دهد و
493
00:20:11,980 –> 00:20:15,200
بله اساساً مطمئن شوید که کد شما
494
00:20:15,200 –> 00:20:17,899
به روشی خوب فاکتور گرفته شده است و در این
495
00:20:17,899 –> 00:20:19,999
مرحله می توانید شروع به اضافه کردن کنید. واحد تست می
496
00:20:19,999 –> 00:20:22,429
کند تا api آن مولفه های قابل استفاده مجدد را تأیید کند،
497
00:20:22,429 –> 00:20:28,639
بنابراین رابط های خط رایج در
498
00:20:28,639 –> 00:20:31,369
پایتون، بنابراین تعداد زیادی از اسکریپت های پوسته
499
00:20:31,369 –> 00:20:33,889
برای شما یا شخصی که از خط فرمان اجرا می شود وجود دارد
500
00:20:33,889 –> 00:20:36,320
، بنابراین
501
00:20:36,320 –> 00:20:38,440
رابط های خط فرمان چیزی است که
502
00:20:38,440 –> 00:20:43,460
معمولاً در پوسته I می نویسید. من می خواهم استدلال کنم که
503
00:20:43,460 –> 00:20:45,169
نوشتن یک رابط خط فرمان در
504
00:20:45,169 –> 00:20:46,399
پایتون تجربه بسیار بهتری
505
00:20:46,399 –> 00:20:49,840
نسبت به انجام صحیح آن در پوسته است،
506
00:20:49,840 –> 00:20:53,779
اول از همه که روی یونیکس اجرا می کنید،
507
00:20:53,779 –> 00:20:55,580
احتمالاً می خواهید از قراردادهای معمول یونیکس پیروی کنید،
508
00:20:55,580 –> 00:20:57,830
مثلاً اگر اسکریپت شما
509
00:20:57,830 –> 00:20:59,659
با صفر وجود داشته باشد، یعنی موفقیت اگر X
510
00:20:59,659 –> 00:21:02,960
غیر صفر باشد، یعنی شکست، چیز
511
00:21:02,960 –> 00:21:05,059
خوب پایتون این است که اگر فقط اجرا کنید برخی از
512
00:21:05,059 –> 00:21:06,139
حالتها از پایتونها عبور میکنند و
513
00:21:06,139 –> 00:21:07,820
خروجی واضح ندارید، فقط
514
00:21:07,820 –> 00:21:09,440
از انتهای اسکریپت
515
00:21:09,440 –> 00:21:12,110
خارج میشود، با 0 خارج میشود و اگر
516
00:21:12,110 –> 00:21:13,850
استثنایی را در پایتون پرتاب کنید و آن
517
00:21:13,850 –> 00:21:15,529
فرار کرد و ردی
518
00:21:15,529 –> 00:21:17,570
از خط فرمان دریافت کردید،
519
00:21:17,570 –> 00:21:21,049
مطمئن شوید که کد خروج غیر صفر است، بنابراین
520
00:21:21,049 –> 00:21:22,759
اگر فقط یک اسکریپت پایتون بنویسید، این کار را انجام ندهید.
521
00:21:22,759 –> 00:21:25,129
در مورد کدهای خروج متأسفم اگر این کار را تکمیل کرد،
522
00:21:25,129 –> 00:21:27,049
اگر شکست خورد، 0 را خارج می کند، با برخی
523
00:21:27,049 –> 00:21:28,490
استثناها، می پذیرد غیر صفر باشد،
524
00:21:28,490 –> 00:21:30,889
این یک قرارداد خوب یا یک
525
00:21:30,889 –> 00:21:37,820
پیش فرض خوب است، حداقل یکی از
526
00:21:37,820 –> 00:21:40,429
کارهای معمولی که برای یونیکس یا در قرارداد یونیکس انجام
527
00:21:40,429 –> 00:21:42,470
می دهید، استفاده از C است. مسیر استاندارد ورودی و
528
00:21:42,470 –> 00:21:44,869
پایداری برای i/o پیشفرض، بنابراین
529
00:21:44,869 –> 00:21:46,539
مسیرهای علامت استاندارد، این
530
00:21:46,539 –> 00:21:49,549
قراردادها برای دریافت ورودی پیشفرض شما هستند
531
00:21:49,549 –> 00:21:51,169
و جایی که قرار بود چاپ خروجی پیشفرض خود را
532
00:21:51,169 –> 00:21:52,730
533
00:21:52,730 –> 00:21:54,860
در پایتون بنویسید، تمرکز روی
534
00:21:54,860 –> 00:21:57,039
مسیر است،
535
00:21:57,090 –> 00:21:58,919
بنابراین پیشفرضها در جای خود قرار دارند و تنظیم میشوند.
536
00:21:58,919 –> 00:22:03,029
اگر از
537
00:22:03,029 –> 00:22:05,970
ماژول لاگ در پایتون استفاده میکنید، به طور پیشفرض
538
00:22:05,970 –> 00:22:08,009
پیامهای لاگ شما را روی
539
00:22:08,009 –> 00:22:10,049
خطای استاندارد چاپ میکند که کنوانسیون یونیکس
540
00:22:10,049 –> 00:22:12,090
برای ثبت خطاها و
541
00:22:12,090 –> 00:22:16,350
هشدارها است و معمولاً وقتی
542
00:22:16,350 –> 00:22:18,389
رابطهای خط فرمان خود را مینویسید، چگونه اکثر
543
00:22:18,389 –> 00:22:20,070
دستورات یونیکس انجام میدهند. این است که
544
00:22:20,070 –> 00:22:21,809
آرگومانهای خط فرمان اجباری آرگومانهای موقعیتی هستند،
545
00:22:21,809 –> 00:22:23,490
بنابراین بگویید وقتی فایلی را
546
00:22:23,490 –> 00:22:26,519
از A به B منتقل میکنید، شما را ندارید،
547
00:22:26,519 –> 00:22:29,070
دستور MV a B است، بنابراین آنها
548
00:22:29,070 –> 00:22:30,119
آرگومانهای پردازشی هستند.
549
00:22:30,119 –> 00:22:32,129
آرگومان اول آرگومان دومی که
550
00:22:32,129 –> 00:22:34,080
از آرگومان های خط فرمان اختیاری برای
551
00:22:34,080 –> 00:22:39,450
تعیین آرگومان های اجباری استفاده نمی کنید و من به
552
00:22:39,450 –> 00:22:41,639
شما نشان خواهم داد که اساساً انجام این کار در
553
00:22:41,639 –> 00:22:48,269
پایتون چقدر ساده است، بنابراین کلید
554
00:22:48,269 –> 00:22:51,330
اینجا ماژول تجزیه قوس است که
555
00:22:51,330 –> 00:22:53,340
بخشی از آن است. کتابخانه علامت ثبت اختراع و آن
556
00:22:53,340 –> 00:22:54,629
چیزی است که میخواهید برای نوشتن
557
00:22:54,629 –> 00:22:57,090
رابطهای خط فرمان خوب استفاده کنید، بنابراین در اینجا یک
558
00:22:57,090 –> 00:23:00,779
برنامه محصول نسبتاً ساده است، اجازه دهید به
559
00:23:00,779 –> 00:23:03,570
سرعت کارهایی را که انجام میدهد بررسی کنیم، بنابراین
560
00:23:03,570 –> 00:23:05,220
یک رشته در بالا داریم که
561
00:23:05,220 –> 00:23:06,720
هدف برنامه را اعلام میکند و ما
562
00:23:06,720 –> 00:23:07,850
مقدار را محاسبه میکنیم. مربع یک عدد داده شده
563
00:23:07,850 –> 00:23:11,429
ما یک تابع کمکی داریم به نام
564
00:23:11,429 –> 00:23:13,409
calc که یک عدد و توان
565
00:23:13,409 –> 00:23:14,820
را می گیرد و عدد افزایش یافته را به توان برمی گرداند.
566
00:23:14,820 –> 00:23:18,809
567
00:23:18,809 –> 00:23:22,799
568
00:23:22,799 –> 00:23:26,429
569
00:23:26,429 –> 00:23:27,570
تابع ما در اینجا مقداری تجزیه خط فرمان داریم،
570
00:23:27,570 –> 00:23:29,039
من از طریق آن می گذرم و
571
00:23:29,039 –> 00:23:34,019
اساساً ما این باغ اصلی را در اینجا داریم،
572
00:23:34,019 –> 00:23:37,830
بنابراین اگر نام این ماژول dunder
573
00:23:37,830 –> 00:23:40,769
main است، پس خط اصلی را دو برابر کنید یا در
574
00:23:40,769 –> 00:23:43,440
Python lingo dunder.
575
00:23:43,440 –> 00:23:47,309
اگر این اسکریپت اساساً از خط فرمان اجرا شود، برای اصلی دو خط زیر خط، اگر این اسکریپت
576
00:23:47,309 –> 00:23:49,320
اساساً از خط فرمان اجرا شود،
577
00:23:49,320 –> 00:23:52,769
تابع اصلی را فراخوانی میکنیم، بنابراین
578
00:23:52,769 –> 00:23:55,350
در این مرحله
579
00:23:55,350 –> 00:23:58,830
، اگر یک اسکریپت پایتون متفاوت بنویسم، منطق اصلی برنامه را انجام خواهیم
580
00:23:58,830 –> 00:24:00,690
داد.
581
00:24:00,690 –> 00:24:04,200
این یکی را وارد کرد این ضربه نمی خورد ما این را
582
00:24:04,200 –> 00:24:06,360
اجرا نمی کنیم این یکی همچنان
583
00:24:06,360 –> 00:24:08,610
برای اسکریپت دیگر من در دسترس خواهد بود، بنابراین اکنون
584
00:24:08,610 –> 00:24:10,500
می توانم این اسکریپت را از
585
00:24:10,500 –> 00:24:12,419
یک اسکریپت دیگر وارد کنم و می توانم به عملکرد calc دسترسی داشته باشم
586
00:24:12,419 –> 00:24:14,549
بدون اینکه نیازی به
587
00:24:14,549 –> 00:24:15,929
اجرای کل چیز باشد و بدون آن مجبور به
588
00:24:15,929 –> 00:24:18,059
تجزیه آرگومان های خط فرمان یا تجزیه
589
00:24:18,059 –> 00:24:19,710
آرگومان های خط فرمان برای وادار کردن این آرگومان ها
590
00:24:19,710 –> 00:24:22,340
به انجام کاری که من می خواهم و می خواهم،
591
00:24:22,340 –> 00:24:24,840
اما فرض کنیم که آن را از
592
00:24:24,840 –> 00:24:26,370
خط فرمان اجرا می کنیم که در اینجا به حالت اصلی
593
00:24:26,370 –> 00:24:28,080
می رسیم، بنابراین در اینجا ما راه اندازی می کنیم. مطمئناً یک خط فرمان،
594
00:24:28,080 –> 00:24:28,470
595
00:24:28,470 –> 00:24:32,580
بنابراین ابتدا تجزیهکننده آرگومان
596
00:24:32,580 –> 00:24:34,440
توضیحاتی از برنامه شما میگیرد، من
597
00:24:34,440 –> 00:24:36,780
اساساً به آن اختصاص میدهم که از این
598
00:24:36,780 –> 00:24:38,880
رشته سگ در اینجا و در پایتون
599
00:24:38,880 –> 00:24:41,909
میتوانید از طریق نگاه کردن به ماژولهایی که بارگذاری کردهاید به آن دسترسی داشته باشید.
600
00:24:41,909 –> 00:24:44,580
601
00:24:44,580 –> 00:24:46,289
این نام برای دریافت این ماژول و
602
00:24:46,289 –> 00:24:49,500
سپس dunder doc این رشته سند
603
00:24:49,500 –> 00:24:52,590
است که در اینجا به نوعی یک قرارداد خوب است
604
00:24:52,590 –> 00:24:53,789
که می توانید یک
605
00:24:53,789 –> 00:24:55,169
نظر خوب در بالای برنامه خود بنویسید و
606
00:24:55,169 –> 00:24:56,490
این نیز بخشی از
607
00:24:56,490 –> 00:24:58,260
پیام استفاده شما خواهد بود. در رابط خط فرمان
608
00:24:58,260 –> 00:25:00,350
به شما نشان میدهم که
609
00:25:00,350 –> 00:25:03,020
پس از آن، یک آرگومان داشتیم که
610
00:25:03,020 –> 00:25:06,299
آرگومانی به نام num داشتیم، این یک نوع int است
611
00:25:06,299 –> 00:25:08,730
که اساساً به این معنی است که وقتی پایتون
612
00:25:08,730 –> 00:25:11,190
این دستور را تجزیه میکند، یک آرگومان
613
00:25:11,190 –> 00:25:14,549
آن را از طریق تابع int اجرا میکند.
614
00:25:14,549 –> 00:25:15,929
اساساً رشته را به یک
615
00:25:15,929 –> 00:25:19,110
عدد صحیح تبدیل می کند، بنابراین ما اساساً عدد را
616
00:25:19,110 –> 00:25:20,700
به عنوان مجذور در نظر می گیریم، آن را به عنوان اولین
617
00:25:20,700 –> 00:25:23,909
آرگومان خط فرمان خود در نظر می گیریم، سپس یک
618
00:25:23,909 –> 00:25:26,450
آرگومان خط فرمان اختیاری – مکعب یا
619
00:25:26,450 –> 00:25:29,870
به طور خلاصه – 3 اضافه می کنیم، بنابراین می توانید اساساً
620
00:25:29,870 –> 00:25:34,559
نام مستعار برای آن داشته باشید. 4 گزینه در اینجا و این
621
00:25:34,559 –> 00:25:36,659
شما می خواهید از این
622
00:25:36,659 –> 00:25:38,370
آرگومان های خط فرمان برای محاسبه مکعب به
623
00:25:38,370 –> 00:25:39,960
جای مربع استفاده کنید، بنابراین اساساً ما یک
624
00:25:39,960 –> 00:25:43,169
گزینه برای تغییر
625
00:25:43,169 –> 00:25:47,190
رفتار برنامه داریم.
626
00:25:47,190 –> 00:25:49,650
این بدان معناست که مکعب
627
00:25:49,650 –> 00:25:51,480
یک پرچم بولی خواهد بود که
628
00:25:51,480 –> 00:25:53,760
به صورت پیشفرض به false تبدیل میشود و اگر شما
629
00:25:53,760 –> 00:25:55,289
واقعاً مکعب را در خط فرمان
630
00:25:55,289 –> 00:25:56,640
مشخص کنید، به جای آن در آنجا مرتب میشود
631
00:25:56,640 –> 00:25:59,640
و سپس ما
632
00:25:59,640 –> 00:26:02,100
یک فایل آرگومان اختیاری دیگر خواهیم داشت که
63