در این مطلب، ویدئو پایتون \ با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:09:55
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,049 –> 00:00:02,149
در این درس شما را با
2
00:00:02,149 –> 00:00:04,730
نحوه مقایسه هویت دو شی
3
00:00:04,730 –> 00:00:09,890
با عملگرهای is و not آشنا می کنم، پس چرا
4
00:00:09,890 –> 00:00:12,440
می گویم که هویت را
5
00:00:12,440 –> 00:00:15,980
به جای برابری به خوبی در پایتون مقایسه می کند یا
6
00:00:15,980 –> 00:00:17,960
حداقل در پایتون C
7
00:00:17,960 –> 00:00:19,370
پیاده سازی مرجع پایتون این که
8
00:00:19,370 –> 00:00:22,220
احتمالاً از هویت استفاده می کنید به
9
00:00:22,220 –> 00:00:24,320
آدرس حافظه ای اشاره دارد که یک شی در آن
10
00:00:24,320 –> 00:00:27,050
ذخیره می شود و می توانید این را
11
00:00:27,050 –> 00:00:29,660
شبیه به فکر کردن در مورد
12
00:00:29,660 –> 00:00:31,130
هویت دو نفر یا چیزی
13
00:00:31,130 –> 00:00:32,960
شبیه به آن در نظر بگیرید، حتی
14
00:00:32,960 –> 00:00:35,239
اگر یک جفت از آنها داشته باشید. دوقلوها یا دو
15
00:00:35,239 –> 00:00:37,250
نفر همسان که واقعا شبیه به هم هستند،
16
00:00:37,250 –> 00:00:39,620
ممکن است از نظر بسیاری از ویژگیها با هم برابر باشند، درست است
17
00:00:39,620 –> 00:00:41,930
که ممکن است بینیها و موهایی به اندازه یکسان داشته باشند،
18
00:00:41,930 –> 00:00:44,000
اما
19
00:00:44,000 –> 00:00:45,920
هنوز همان فرد نیستند، آنها
20
00:00:45,920 –> 00:00:48,140
هویت مشابهی ندارند.
21
00:00:48,140 –> 00:00:49,820
پایتون تعریف میکند که حسادت فقط
22
00:00:49,820 –> 00:00:52,760
با آدرس حافظه یا شماره شناسه است و من آن را
23
00:00:52,760 –> 00:00:55,219
بررسی میکنم و به شما نشان میدهم که چگونه
24
00:00:55,219 –> 00:00:56,750
در زیر هود با تابع ID
25
00:00:56,750 –> 00:00:58,989
بعداً در ترمینال کار میکند،
26
00:00:58,989 –> 00:01:01,460
مهم است که این تفاوت دارد. nt از
27
00:01:01,460 –> 00:01:03,649
نام متغیری که به یک شی اشاره می کند،
28
00:01:03,649 –> 00:01:06,350
زیرا ممکن است شما 10 20
29
00:01:06,350 –> 00:01:08,869
50 صد میلیون متغیر مختلف را بشناسید
30
00:01:08,869 –> 00:01:11,270
که همه آنها در واقع به یک
31
00:01:11,270 –> 00:01:13,280
شی زیرین مانند یک لیست یا یک
32
00:01:13,280 –> 00:01:15,350
رشته یا چیزی شبیه به آن برای
33
00:01:15,350 –> 00:01:17,899
ادامه قیاس افراد ارجاع می دهند.
34
00:01:17,899 –> 00:01:20,209
ممکن است
35
00:01:20,209 –> 00:01:22,069
36
00:01:22,069 –> 00:01:25,069
شخصی به نام جاناتان داشته باشید که
37
00:01:25,069 –> 00:01:27,079
با دوستانش جک و
38
00:01:27,079 –> 00:01:29,179
در محل کار جان و
39
00:01:29,179 –> 00:01:32,029
جاناتان با پدر و مادرش نامیده
40
00:01:32,029 –> 00:01:33,380
می شود، بنابراین می توانید نام متغیرهای مختلفی داشته باشید.
41
00:01:33,380 –> 00:01:35,479
اما شما فقط میتوانید یک هویت داشته باشید و
42
00:01:35,479 –> 00:01:38,630
آن یک آدرس حافظه است، بنابراین
43
00:01:38,630 –> 00:01:39,859
با در نظر گرفتن اینکه
44
00:01:39,859 –> 00:01:42,649
عملگر is را برای چه چیزی باید استفاده کنید و
45
00:01:42,649 –> 00:01:44,299
عملگر همتای آن نیست، باید
46
00:01:44,299 –> 00:01:47,060
از آن برای مقایسه با هیچکدام و
47
00:01:47,060 –> 00:01:49,130
افراد زیادی در پایتون استفاده کنید. جامعه
48
00:01:49,130 –> 00:01:50,929
تا آنجا پیش میرود که میگوید این تنها
49
00:01:50,929 –> 00:01:53,240
مورد استفاده از آن است، من آنقدر پیش نمیروم،
50
00:01:53,240 –> 00:01:54,950
فکر میکنم گاهی اوقات
51
00:01:54,950 –> 00:01:57,020
مقایسه آدرسهای حافظه اشیا
52
00:01:57,020 –> 00:01:59,029
میتواند مفید باشد. شما دارید اشکال زدایی می کنید شاید یک
53
00:01:59,029 –> 00:02:01,130
برنامه خیلی خاص دارید که واقعاً
54
00:02:01,130 –> 00:02:03,049
باید با این آدرس های حافظه کار کند، اما
55
00:02:03,049 –> 00:02:05,029
در استفاده عمومی باید از آن برای
56
00:02:05,029 –> 00:02:06,409
مقایسه با هیچ یک
57
00:02:06,409 –> 00:02:08,630
به طور
58
00:02:08,630 –> 00:02:11,990
انحصاری استفاده کنید.
59
00:02:11,990 –> 00:02:13,610
برای اپرا به چند متغیر نیاز
60
00:02:13,610 –> 00:02:17,510
دارم، بنابراین من یک متغیر خواهم داشت که محتوای
61
00:02:17,510 –> 00:02:19,370
آن یک رشته است و سپس
62
00:02:19,370 –> 00:02:21,140
B را دارم و در واقع فقط میخواهم بگویم
63
00:02:21,140 –> 00:02:23,450
این یک رشته است و بنابراین برای نشان
64
00:02:23,450 –> 00:02:24,860
دادن تفاوت بین برابری و
65
00:02:24,860 –> 00:02:27,140
هویت. ابتدا بیایید نگاهی به یک
66
00:02:27,140 –> 00:02:30,110
مساوی B دو برابر برابر B بیندازیم این درست است
67
00:02:30,110 –> 00:02:32,180
زیرا دو رشته دارای مقدار یکسانی
68
00:02:32,180 –> 00:02:32,870
69
00:02:32,870 –> 00:02:34,760
هستند و هر دو می گویند این یک رشته است درست بنابراین
70
00:02:34,760 –> 00:02:37,640
با یکدیگر برابر هستند اما اگر
71
00:02:37,640 –> 00:02:42,400
بگویید a B است نادرست می شوید زیرا a و B
72
00:02:42,400 –> 00:02:45,590
به طور جداگانه از یکدیگر به سمت راست اعلان شده اند،
73
00:02:45,590 –> 00:02:47,120
بنابراین آنها از نظر فنی
74
00:02:47,120 –> 00:02:49,040
اشیایی مجزا هستند حتی اگر
75
00:02:49,040 –> 00:02:51,290
مقدار یکسانی داشته باشند و می توانید این را با
76
00:02:51,290 –> 00:02:53,990
گفتن ID a و ایده B درست بررسی کنید و
77
00:02:53,990 –> 00:02:55,730
این دو عدد متفاوت هستند به
78
00:02:55,730 –> 00:02:57,470
این معنی که آنها فوری بودند. در زمانهای مختلف خورده
79
00:02:57,470 –> 00:03:00,740
شده و مراقب باشید وقتی به این شناسهها نگاه میکنید،
80
00:03:00,740 –> 00:03:02,240
زیرا ممکن است
81
00:03:02,240 –> 00:03:04,850
وسوسه شوید که چون شناسه B
82
00:03:04,850 –> 00:03:06,980
بزرگتر است، یعنی دیرتر
83
00:03:06,980 –> 00:03:09,950
از a اعلام شده است، ممکن است درست باشد یا نباشد و
84
00:03:09,950 –> 00:03:11,570
این درست نیست که همیشه اینطور است.
85
00:03:11,570 –> 00:03:12,020
86
00:03:12,020 –> 00:03:14,870
بنابراین ممکن است این شمارههای شناسه
87
00:03:14,870 –> 00:03:16,640
الگوریتم پیچیدهای برای
88
00:03:16,640 –> 00:03:19,190
نحوه تولید آنها وجود داشته باشد، بنابراین
89
00:03:19,190 –> 00:03:20,989
90
00:03:20,989 –> 00:03:23,030
برای اطلاع از الگوی اعلامیه به چیزی در مورد شماره شناسه
91
00:03:23,030 –> 00:03:26,000
اعتماد نکنید، اما اگر
92
00:03:26,000 –> 00:03:28,910
کاری انجام دهید ممکن است گیج شوید. مانند این ممکن است بگویید
93
00:03:28,910 –> 00:03:32,360
X برابر 20 y مساوی 20 است و در این
94
00:03:32,360 –> 00:03:35,060
مورد البته آنها مساوی هستند و اگر X
95
00:03:35,060 –> 00:03:38,239
است y را انجام دهید در واقع درست می شوید و بنابراین
96
00:03:38,239 –> 00:03:40,220
اگر قسمت اول این را تماشا کرده باشید ممکن است شما را گیج کند.
97
00:03:40,220 –> 00:03:41,300
درس
98
00:03:41,300 –> 00:03:42,890
چون شما فکر می کنید خوب آنها به
99
00:03:42,890 –> 00:03:44,660
طور جداگانه درست اعلام شده اند
100
00:03:44,660 –> 00:03:46,940
بنابراین آنها باید اشیاء مختلف باشند بنابراین نباید
101
00:03:46,940 –> 00:03:49,090
رابطه is نباید به خوبی ارضا شود
102
00:03:49,090 –> 00:03:51,560
این به دلیل ویژگی جالب
103
00:03:51,560 –> 00:03:53,600
مفسر پایتون در زیر هود است
104
00:03:53,600 –> 00:03:56,269
که به نام کارآموز g و
105
00:03:56,269 –> 00:03:59,120
اعداد منفی 5 و من
106
00:03:59,120 –> 00:04:00,890
این را در یک نظر می گذارم فقط برای اینکه
107
00:04:00,890 –> 00:04:04,550
بتوانید آن را از منفی 5 تا 256 ببینید یا به
108
00:04:04,550 –> 00:04:07,010
طور پیش فرض به این معنی است
109
00:04:07,010 –> 00:04:10,610
که هر مقدار در این محدوده دارای یک
110
00:04:10,610 –> 00:04:13,370
مکان حافظه مجزا است. که
111
00:04:13,370 –> 00:04:16,668
اشغال می کند و هر متغیری که
112
00:04:16,668 –> 00:04:19,880
برابر آن مقدار اعلام می شود یا
113
00:04:19,880 –> 00:04:21,829
به آن مقدار اختصاص داده می شود شاید
114
00:04:21,829 –> 00:04:24,710
دقیق تر باشد اگر بگوییم هر یک از آن متغیرها
115
00:04:24,710 –> 00:04:26,150
در واقع فقط به همان
116
00:04:26,150 –> 00:04:27,590
حافظه زیرین بعد از آن اشاره می کنند
117
00:04:27,590 –> 00:04:31,040
و بنابراین این یکی از راه هایی است که
118
00:04:31,040 –> 00:04:33,139
مفسر پایتون نوعی بهینه سازی است
119
00:04:33,139 –> 00:04:35,060
زیرا این اعداد بسیار کوچک هستند
120
00:04:35,060 –> 00:04:37,100
و بنابراین اغلب در کد استفاده می شوند،
121
00:04:37,100 –> 00:04:39,590
اما اگر قبلاً دو عدد صحیح انجام می دادید
122
00:04:39,590 –> 00:04:42,440
و می گفتید a برابر با 257 و B
123
00:04:42,440 –> 00:04:45,740
برابر با 257 است و می گفتید a B است،
124
00:04:45,740 –> 00:04:47,150
در واقع نادرست است زیرا این موارد
125
00:04:47,150 –> 00:04:49,460
در اعداد داخلی گنجانده نشدهاند و
126
00:04:49,460 –> 00:04:51,290
این اتفاق برای رشتههای بسیار کوچکی
127
00:04:51,290 –> 00:04:53,630
که اغلب استفاده میشوند نیز رخ میدهد و
128
00:04:53,630 –> 00:04:54,919
گاهی اوقات تشخیص این
129
00:04:54,919 –> 00:04:57,590
رشتهها دشوار است، اما ممکن است
130
00:04:57,590 –> 00:04:59