در این مطلب، ویدئو اعتبار سنجی ورودی در پایتون با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:12:13
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:06,350 –> 00:00:08,639
[Music]
2
00:00:08,639 –> 00:00:10,320
در این ویدیو بیایید نگاهی
3
00:00:10,320 –> 00:00:11,599
به نحوه پیاده سازی یک
4
00:00:11,599 –> 00:00:14,400
الگوریتم اعتبار سنجی ورودی در پایتون بیندازیم،
5
00:00:14,400 –> 00:00:16,239
بنابراین زمانی که می خواهید مقداری ورودی از کاربر دریافت کنید، اغلب به نوعی
6
00:00:16,239 –> 00:00:18,000
الگوریتم اعتبار سنجی ورودی نیاز خواهید
7
00:00:18,000 –> 00:00:18,480
8
00:00:18,480 –> 00:00:20,320
داشت، اما
9
00:00:20,320 –> 00:00:22,000
ممکن است کاربر لزوماً وارد نشود.
10
00:00:22,000 –> 00:00:24,240
شکل صحیح دادهها، به
11
00:00:24,240 –> 00:00:26,080
عنوان مثال، اگر میخواهید
12
00:00:26,080 –> 00:00:29,039
سن خود را وارد کنید، فرض کنید کاربر
13
00:00:29,039 –> 00:00:30,000
چیزی را وارد میکند که
14
00:00:30,000 –> 00:00:32,320
عدد صحیح مثبت نیست، سپس میخواهید
15
00:00:32,320 –> 00:00:33,520
در واقع بررسی کنید
16
00:00:33,520 –> 00:00:35,920
که آیا یک عدد صحیح مثبت است یا خیر
17
00:00:35,920 –> 00:00:37,600
، اگر عدد صحیح مثبت نیست. شرایط شما را برآورده نمیکند،
18
00:00:37,600 –> 00:00:38,480
19
00:00:38,480 –> 00:00:40,160
پس میخواهید نوعی پیغام خطا بدهید
20
00:00:40,160 –> 00:00:42,079
و به دریافت ورودی
21
00:00:42,079 –> 00:00:44,399
ادامه دهید تا زمانی که ورودی صحیح را دریافت کنید، بنابراین
22
00:00:44,399 –> 00:00:45,360
این یک
23
00:00:45,360 –> 00:00:47,920
مثال بسیار ساده از نحوه استفاده از اعتبارسنجی ورودی است
24
00:00:47,920 –> 00:00:49,120
البته مثالهای پیچیدهتری وجود دارد،
25
00:00:49,120 –> 00:00:50,480
26
00:00:50,480 –> 00:00:52,160
بنابراین بیایید در نظر بگیریم نگاهی به چند مثال
27
00:00:52,160 –> 00:00:54,399
در اینجا قبل از اینکه ما واقعاً این را پیاده سازی کنیم
28
00:00:54,399 –> 00:00:56,719
، در این خط اول این تابع
29
00:00:56,719 –> 00:00:57,920
دقیقاً در اینجا این
30
00:00:57,920 –> 00:00:59,120
تابع نهایی است که می نویسیم
31
00:00:59,120 –> 00:01:01,120
، پس از رفتن به آن نگاهی بیندازیم.
32
00:01:01,120 –> 00:01:02,320
از طریق تمام این مثالها،
33
00:01:02,320 –> 00:01:03,600
اما این خط اول دقیقاً در اینجا
34
00:01:03,600 –> 00:01:05,920
نام میگیریم و فقط میخواهیم ورودی معمولی را دریافت کنیم،
35
00:01:05,920 –> 00:01:07,040
36
00:01:07,040 –> 00:01:09,680
هر چیزی در دسته نام خوب است،
37
00:01:09,680 –> 00:01:11,200
زیرا تمام چیزی که در اینجا به دنبال آن هستیم یک
38
00:01:11,200 –> 00:01:12,000
رشته است،
39
00:01:12,000 –> 00:01:13,200
حالا
40
00:01:13,200 –> 00:01:15,119
زمانی که کمی پیچیدهتر میشود. ما به دنبال
41
00:01:15,119 –> 00:01:17,119
h با سنی می رویم که می خواهیم آن یک
42
00:01:17,119 –> 00:01:19,360
عدد صحیح باشد و می خواهیم
43
00:01:19,360 –> 00:01:21,280
یک عدد صحیح مثبت باشد و سپس می توانیم
44
00:01:21,280 –> 00:01:22,880
با دادن
45
00:01:22,880 –> 00:01:24,240
نوعی پیام خطا پیچیده تر شویم،
46
00:01:24,240 –> 00:01:26,560
بنابراین در این مثال ما قد خود را داریم
47
00:01:26,560 –> 00:01:27,600
و می خواهیم
48
00:01:27,600 –> 00:01:30,000
آن را به عنوان یک شناور دریافت کنید که همچنین بزرگتر از
49
00:01:30,000 –> 00:01:31,680
صفر است و ما می خواهیم نوعی پیغام خطا بدهیم
50
00:01:31,680 –> 00:01:32,320
51
00:01:32,320 –> 00:01:34,400
در صورتی که یک چیز بسیار خاص وجود داشته باشد
52
00:01:34,400 –> 00:01:35,920
که ما نیاز داریم کاربر این کار را انجام
53
00:01:35,920 –> 00:01:37,360
دهد در اینجا فقط می خواهیم بگوییم که
54
00:01:37,360 –> 00:01:39,119
ارتفاع معتبری نیست و سپس
55
00:01:39,119 –> 00:01:40,479
این در واقع یکی از
56
00:01:40,479 –> 00:01:41,680
پیچیدهترین مثالهایی است که در اینجا میخواهیم به آن
57
00:01:41,680 –> 00:01:42,320
نگاه کنیم،
58
00:01:42,320 –> 00:01:43,920
بنابراین اغلب پیش میآید که میخواهید
59
00:01:43,920 –> 00:01:45,920
ورودیهای صحیح را به خوبی دریافت کنید، اگر
60
00:01:45,920 –> 00:01:47,360
در واقع ورودی خود را به شکل صحیح دریافت نکنید،
61
00:01:47,360 –> 00:01:47,759
62
00:01:47,759 –> 00:01:50,560
سپس میخواهید به طور انتخابی
63
00:01:50,560 –> 00:01:51,759
خطا بدهید. پیام بنابراین در اینجا
64
00:01:51,759 –> 00:01:53,280
ما می گوییم که مطمئن شوید که
65
00:01:53,280 –> 00:01:54,880
اعداد صحیح خود را با یک فاصله جدا کردهاید، بنابراین
66
00:01:54,880 –> 00:01:56,560
این الگوریتمی که
67
00:01:56,560 –> 00:01:58,640
بعد از بررسی این
68
00:01:58,640 –> 00:02:00,240
مثالها میخواهیم پیادهسازی کنیم، بتواند همه این
69
00:02:00,240 –> 00:02:00,960
کارها را در اینجا
70
00:02:00,960 –> 00:02:02,560
انجام دهد، بنابراین اجازه دهید این را اجرا کنیم و ببینیم
71
00:02:02,560 –> 00:02:04,240
این خروجی چگونه است.
72
00:02:04,240 –> 00:02:06,320
ما فقط این را در اینجا اجرا می کنیم و می توانم
73
00:02:06,320 –> 00:02:07,280
نام تصادفی
74
00:02:07,280 –> 00:02:10,160
جان اسمیت را وارد کنم، فرض کنیم سن را بگذارم، فرض
75
00:02:10,160 –> 00:02:11,200
کنیم چیزی را
76
00:02:11,200 –> 00:02:13,280
که یک عدد صحیح نیست، نه یک عدد صحیح مثبت قرار داده ام، بنابراین
77
00:02:13,280 –> 00:02:15,200
فرض کنید من فقط
78
00:02:15,200 –> 00:02:17,840
p o a چاه قرار داده ام، سپس یک پاسخ ورودی نامعتبر دریافت می کنیم.
79
00:02:17,840 –> 00:02:19,040
80
00:02:19,040 –> 00:02:21,200
و سپس باید در سن دیگری وارد شویم،
81
00:02:21,200 –> 00:02:22,800
82
00:02:22,800 –> 00:02:24,879
بنابراین شاید من ممکن است این بار منفی 81 را وارد
83
00:02:24,879 –> 00:02:26,080
84
00:02:26,080 –> 00:02:27,840
کنم، حالا من یک عدد صحیح دارم اما یک
85
00:02:27,840 –> 00:02:30,080
عدد صحیح مثبت ندارم، بنابراین دوباره ورودی نامعتبر دریافت می کنم
86
00:02:30,080 –> 00:02:31,040
87
00:02:31,040 –> 00:02:32,560
و سپس باید داشته باشم برای وارد کردن چیزی
88
00:02:32,560 –> 00:02:34,879
شبیه به 20. و در این مورد من یک
89
00:02:34,879 –> 00:02:36,480
عدد صحیح مثبت دارم، بنابراین شرایط من را برآورده میکند،
90
00:02:36,480 –> 00:02:39,519
حالا بیایید به ارتفاع برویم،
91
00:02:39,519 –> 00:02:41,840
بنابراین فرض کنید یک ورودی نامعتبر را
92
00:02:41,840 –> 00:02:43,599
یک بار دیگر وارد
93
00:02:43,599 –> 00:02:45,040
میکنم خوب اینجا میخواهم دریافت کنم که
94
00:02:45,040 –> 00:02:46,480
ارتفاع معتبری نیست. چون البته این
95
00:02:46,480 –> 00:02:47,360
n است یک ارتفاع معتبر است
96
00:02:47,360 –> 00:02:49,200
و البته می توانم حتی منفی
97
00:02:49,200 –> 00:02:51,040
0.6 را وارد کنم و این نیز ارتفاع معتبر نخواهد بود،
98
00:02:51,040 –> 00:02:52,480
زیرا ما
99
00:02:52,480 –> 00:02:53,280
مشخص
100
00:02:53,280 –> 00:02:56,560
کردیم که باید مثبت باشد و سپس توجه کنید
101
00:02:56,560 –> 00:02:57,440
که این
102
00:02:57,440 –> 00:02:59,920
پیام ها هر دو پیام های سفارشی هستند، این پیام ها
103
00:02:59,920 –> 00:03:01,519
یکسان نیستند. این پیامهای ورودی نامعتبر
104
00:03:01,519 –> 00:03:02,319
105
00:03:02,319 –> 00:03:04,239
و در نهایت میتوانیم ارتفاع خود را وارد کنیم،
106
00:03:04,239 –> 00:03:06,319
میتوانیم چیزی شبیه به 43 بگوییم فقط برای
107
00:03:06,319 –> 00:03:07,280
عبور از آن
108
00:03:07,280 –> 00:03:10,239
و اکنون باید تعدادی اعداد صحیح وارد کنیم،
109
00:03:10,239 –> 00:03:10,640
بنابراین
110
00:03:10,640 –> 00:03:12,000
فرض کنید من چیزی را
111
00:03:12,000 –> 00:03:13,680
با فرمت نادرست وارد میکنم، بنابراین باید با فاصله از
112
00:03:13,680 –> 00:03:14,480
هم جدا شود.
113
00:03:14,480 –> 00:03:16,640
ما می خواهیم آن را وارد کنیم، بنابراین
114
00:03:16,640 –> 00:03:18,080
شاید بتوانم بگویم
115
00:03:18,080 –> 00:03:21,440
5 4 3 2 و سپس شاید e
116
00:03:21,440 –> 00:03:23,040
خوب من یک ورودی نامعتبر دریافت می کنم، زیرا
117
00:03:23,040 –> 00:03:24,400
باید مطمئن شویم که
118
00:03:24,400 –> 00:03:26,640
اعداد صحیح خود را نه تنها با یک فاصله،
119
00:03:26,640 –> 00:03:27,760
بلکه همچنین باید از هم جدا کنیم.
120
00:03:27,760 –> 00:03:31,120
فقط اعداد صحیح، پس بیایید این را برطرف
121
00:03:31,120 –> 00:03:34,159
کنیم، در عوض می گوییم 54321
122
00:03:34,159 –> 00:03:36,640
و در نهایت به خط 25 و
123
00:03:36,640 –> 00:03:37,440
26
124
00:03:37,440 –> 00:03:40,400
می رویم که در آنجا داده ها و لیست اعدادمان را چاپ می کنیم و
125
00:03:40,400 –> 00:03:41,599
همچنین
126
00:03:41,599 –> 00:03:43,920
جمع بندی اعداد را انجام
127
00:03:43,920 –> 00:03:45,599
می دهیم تا بتوانیم با
128
00:03:45,599 –> 00:03:48,480
اعلام دریافت ورودی خود شروع کنیم. تابع t بنابراین می گوییم def
129
00:03:48,480 –> 00:03:49,840
get input
130
00:03:49,840 –> 00:03:51,519
و سپس چهار پارامتر وجود دارد که
131
00:03:51,519 –> 00:03:53,120
در اینجا به آنها نیاز خواهیم داشت، ما به
132
00:03:53,120 –> 00:03:55,120
یک پارامتر prompt نیاز
133
00:03:55,120 –> 00:03:56,879
خواهیم داشت و فقط آن را به صورت پیش فرض روی یک رشته خالی قرار می دهیم،
134
00:03:56,879 –> 00:03:58,239
بنابراین این خواهد شد اعلانی
135
00:03:58,239 –> 00:03:59,519
که از کاربر پرسیدیم
136
00:03:59,519 –> 00:04:00,959
و سپس به یک پارامتر cast نیاز داریم،
137
00:04:00,959 –> 00:04:02,879
اجازه دهید این را به صورت پیشفرض روی
138
00:04:02,879 –> 00:04:03,519
none قرار دهیم، بنابراین
139
00:04:03,519 –> 00:04:05,519
cast تابعی خواهد بود که
140
00:04:05,519 –> 00:04:07,040
کاربر در هنگام
141
00:04:07,040 –> 00:04:08,720
فراخوانی دریافت ورودی ارائه میکند تا بتواند ورودی خود را
142
00:04:08,720 –> 00:04:10,799
تبدیل کند. داده ها را به هر چیزی که
143
00:04:10,799 –> 00:04:12,319
نیاز دارند، بنابراین می توانند به یک
144
00:04:12,319 –> 00:04:14,159
int یا float تبدیل کنند یا تبدیل انتخابی انجام دهند،
145
00:04:14,159 –> 00:04:16,160
بنابراین می گوییم cast برابر با هیچ است
146
00:04:16,160 –> 00:04:17,918
و سپس سومین پارامتری که نیاز
147
00:04:17,918 –> 00:04:20,639
داریم شرطی است که آن را برابر با none قرار دهیم.
148
00:04:20,639 –> 00:04:22,880
مقدار و شرط پیشفرض فقط
149
00:04:22,880 –> 00:04:23,840
150
00:04:23,840 –> 00:04:25,440
شرطی است که بررسی کردیم تا
151
00:04:25,440 –> 00:04:26,880
مطمئن شویم ورودی
152
00:04:26,880 –> 00:04:29,360
ما پس از اینکه آن را به نوع داده صحیح
153
00:04:29,360 –> 00:04:31,120
یا به فرم صحیح فرستادیم
154
00:04:31,120 –> 00:04:33,520
، در واقع از قوانینی تبعیت میکند که
155
00:04:33,520 –> 00:04:34,639
میخواهیم از این شرایط پیروی
156
00:04:34,639 –> 00:04:36,400
کند. مساوی هیچ و سپس
157
00:04:36,400 –> 00:04:38,560
در نهایت اگر شرط با شکست مواجه شد یا اگر
158
00:04:38,560 –> 00:04:40,160
هنگام ارسال محتوا با خطا مواجه شدیم،
159
00:04:40,160 –> 00:04:41,680
یک
160
00:04:41,680 –> 00:04:42,080
پیغام
161
00:04:42,080 –> 00:04:44,880
خطایی می دهیم تا پیام خطا برابر با هیچ باشد،
162
00:04:44,880 –> 00:04:45,440
163
00:04:45,440 –> 00:04:47,280
آن را به صورت پیش فرض روی هیچ قرار می دهیم و این در
164
00:04:47,280 –> 00:04:48,880
صورتی است که ما نخواهیم یک
165
00:04:48,880 –> 00:04:50,400
پیغام خطای سفارشی
166
00:04:50,400 –> 00:04:52,960
را در بدنه این تابع ارائه دهید،
167
00:04:52,960 –> 00:04:55,040
ما از یک حلقه بی نهایت استفاده
168
00:04:55,040 –> 00:04:55,680
169
00:04:55,680 –> 00:04:57,840
می کنیم، بنابراین درست است و دلیل
170
00:04:57,840 –> 00:04:58,960
این امر این است که
171
00:04:58,960 –> 00:05:01,039
ما می خواهیم از کاربر درخواست
172
00:05:01,039 –> 00:05:02,560
ورودی کنیم تا زمانی که وارد
173
00:05:02,560 –> 00:05:03,919
تابع شود. درست است و لحظه ای
174
00:05:03,919 –> 00:05:05,759
که آنها چیز صحیح را وارد می کنند، ما
175
00:05:05,759 –> 00:05:06,639
176
00:05:06,639 –> 00:05:09,120
یک پاسخ را از این تابع
177
00:05:09,120 –> 00:05:10,800
برمی گردانیم، بنابراین وقتی دستور return را فراخوانی می
178
00:05:10,800 –> 00:05:12,320
کنیم، بلافاصله این تابع را خاتمه می دهیم
179
00:05:12,320 –> 00:05:14,479
و حلقه شکسته می شود،
180
00:05:14,479 –> 00:05:16,880
بنابراین درست است و درست است و اکنون
181
00:05:16,880 –> 00:05:18,080
میخواهیم از برخی
182
00:05:18,080 –> 00:05:20,320
مدیریت خطاها استفاده کنیم، بنابراین میگوییم تلاش کنید
183
00:05:20,320 –> 00:05:21,840
تا بررسی کنیم که آیا
184
00:05:21,840 –> 00:05:23,600
واقعاً دادههای درستی دادهایم یا نه
185
00:05:23,600 –> 00:05:26,960
و سپس میگوییم پاسخ برابر است با
186
00:05:26,960 –> 00:05:30,639
دستور ورودی فرستاده اکنون قبل از حرکت در
187
00:05:30,639 –> 00:05:32,240
مورد یک چیز وجود دارد که ما باید توجه داشته باشیم که
188
00:05:32,240 –> 00:05:33,919
وجود دارد قابلیتی که ما
189
00:05:33,919 –> 00:05:36,240
مشخص نکردهایم چه نوع تابعی را
190
00:05:36,240 –> 00:05:37,280
191
00:05:37,280 –> 00:05:39,759
میخواهیم برای این تابع ورودی در اینجا فراخوانی کنیم،
192
00:05:39,759 –> 00:05:41,199
بنابراین اگر این کار را
193
00:05:41,199 –> 00:05:43,120
انجام ندهیم، فقط میخواهیم تابع ورودی
194
00:05:43,120 –> 00:05:46,000
فقط به یک رشته تبدیل شود، بنابراین اگر
195
00:05:46,000 –> 00:05:47,440
هیچ کدام نباشد. پس ما واقعاً نمی توانیم
196
00:05:47,440 –> 00:05:48,400
آن را به رشته تبدیل کنیم زیرا قرار است به هیچکدام تبدیل شود،
197
00:05:48,400 –> 00:05:49,759
198
00:05:49,759 –> 00:05:51,520
بنابراین در اینجا ما فقط این را در
199
00:05:51,520 –> 00:05:53,120
پرانتز قرار می دهیم و می گوییم
200
00:05:53,120 –> 00:05:56,000
cast یا str و بنابراین آنچه که اساساً
201
00:05:56,000 –> 00:05:56,400
انجام می دهد این
202
00:05:56,400 –> 00:05:59,520
است که اگر cast یک مقدار falsie یا
203
00:05:59,520 –> 00:06:01,759
به عبارت دیگر اگر cast هیچکدام نباشد،
204
00:06:01,759 –> 00:06:02,800
20