در این مطلب، ویدئو دامنه محلی و جهانی در پایتون | متغیرهای محلی و جهانی | آموزش پایتون برای مبتدیان شماره 7 با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:11:26
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,320 –> 00:00:02,879
سلام بچه ها بیایید در مورد متغیرهای محلی و
2
00:00:02,879 –> 00:00:05,040
سراسری در پایتون صحبت کنیم
3
00:00:05,040 –> 00:00:07,120
یک برنامه پایتون به طور کلی
4
00:00:07,120 –> 00:00:09,679
از دو محدوده تشکیل شده است، بنابراین ما یک محدوده محلی
5
00:00:09,679 –> 00:00:11,920
و همچنین یک دامنه جهانی داریم،
6
00:00:11,920 –> 00:00:13,920
یک تابع که در داخل یک برنامه پایتون نوشته شده است،
7
00:00:13,920 –> 00:00:15,040
8
00:00:15,040 –> 00:00:17,520
اگر چندین تابع وجود داشته باشد، یک محدوده محلی را تشکیل
9
00:00:17,520 –> 00:00:19,359
می دهد. در داخل
10
00:00:19,359 –> 00:00:20,720
برنامه پایتون شما ایجاد می شود،
11
00:00:20,720 –> 00:00:22,320
سپس هر یک از این تابع
12
00:00:22,320 –> 00:00:24,080
یک محدوده محلی را تشکیل می دهد
13
00:00:24,080 –> 00:00:26,240
به این معنی که یک برنامه پایتون می
14
00:00:26,240 –> 00:00:27,840
تواند چندین محدوده محلی داشته باشد
15
00:00:27,840 –> 00:00:29,679
که به تعداد توابع
16
00:00:29,679 –> 00:00:32,000
ایجاد شده در آن برنامه پایتون بستگی دارد، در
17
00:00:32,000 –> 00:00:34,719
حالی که یک بلوک کد که
18
00:00:34,719 –> 00:00:35,520
خارج از
19
00:00:35,520 –> 00:00:37,760
همه نوشته شده است. توابع شما دامنه جهانی را تشکیل می دهند
20
00:00:37,760 –> 00:00:38,960
21
00:00:38,960 –> 00:00:41,200
متغیری که در داخل
22
00:00:41,200 –> 00:00:42,399
محدوده محلی شما
23
00:00:42,399 –> 00:00:44,879
یا در هر یک از توابع شما ایجاد می
24
00:00:44,879 –> 00:00:46,640
شود به عنوان متغیر محلی نامیده می شود
25
00:00:46,640 –> 00:00:48,719
در حالی که متغیری که
26
00:00:48,719 –> 00:00:50,480
خارج از همه توابع شما
27
00:00:50,480 –> 00:00:52,719
ایجاد شده است یا در محدوده جهانی ایجاد
28
00:00:52,719 –> 00:00:54,719
می شود نامیده می شود. به عنوان یک متغیر جهانی
29
00:00:54,719 –> 00:00:56,559
برای درک بهتر این موضوع، اجازه دهید
30
00:00:56,559 –> 00:00:58,480
به نمونه برنامه ای که من نوشته ام نگاه کنیم
31
00:00:58,480 –> 00:01:00,480
، همانطور که می توانید در این مطلب ببینید. برنامه ای که
32
00:01:00,480 –> 00:01:02,239
من سه تابع مختلف با
33
00:01:02,239 –> 00:01:03,920
نام های test1 test2
34
00:01:03,920 –> 00:01:06,240
و test3 ایجاد کرده ام و سپس یک بلوک
35
00:01:06,240 –> 00:01:07,040
کد دارم که
36
00:01:07,040 –> 00:01:09,840
خارج از همه این توابع است،
37
00:01:09,840 –> 00:01:11,760
بلوک کد هر یک از این توابع
38
00:01:11,760 –> 00:01:14,159
یک محدوده محلی را تشکیل می دهد، بنابراین در
39
00:01:14,159 –> 00:01:15,680
این برنامه کاملاً من دارم سه
40
00:01:15,680 –> 00:01:17,119
محدوده محلی متفاوت
41
00:01:17,119 –> 00:01:19,840
، اولین محدوده محلی تحت
42
00:01:19,840 –> 00:01:20,960
تست تابع من قرار می گیرد
43
00:01:20,960 –> 00:01:23,040
و سپس در تابع تست 2
44
00:01:23,040 –> 00:01:24,479
من دومین محدوده محلی خود
45
00:01:24,479 –> 00:01:27,040
را دارم و سپس در زیر محدوده محلی خود 3
46
00:01:27,040 –> 00:01:28,479
سومین محدوده محلی خود را دارم
47
00:01:28,479 –> 00:01:30,159
در نهایت بلوک کدهایی که
48
00:01:30,159 –> 00:01:31,520
خارج از همه نوشته شده است. از این
49
00:01:31,520 –> 00:01:32,320
توابع،
50
00:01:32,320 –> 00:01:34,560
این دامنه جهانی را تشکیل می دهد،
51
00:01:34,560 –> 00:01:36,560
همه متغیرهایی که در
52
00:01:36,560 –> 00:01:39,040
داخل این توابع ایجاد می شوند، به عنوان
53
00:01:39,040 –> 00:01:40,000
متغیر محلی شما نامیده می شوند،
54
00:01:40,000 –> 00:01:42,960
بنابراین در این حالت متغیر من a b و c
55
00:01:42,960 –> 00:01:45,119
که در داخل
56
00:01:45,119 –> 00:01:47,119
هر یک از این توابع ایجاد می شوند، به عنوان متغیر محلی نامیده می
57
00:01:47,119 –> 00:01:48,159
شوند،
58
00:01:48,159 –> 00:01:51,920
در حالی که من. متغیر x که
59
00:01:51,920 –> 00:01:54,240
من خارج از تابع خود ایجاد کردم به عنوان یک
60
00:01:54,240 –> 00:01:55,439
متغیر جهانی
61
00:01:55,439 –> 00:01:56,719
نامیده می شود.
62
00:01:56,719 –> 00:01:58,320
63
00:01:58,320 –> 00:01:59,840
و متغیرهای سراسری آنها را
64
00:01:59,840 –> 00:02:00,799
65
00:02:00,799 –> 00:02:03,920
از طریق یک مثال توضیح خواهم داد، بنابراین شماره یک این است که
66
00:02:03,920 –> 00:02:05,439
متغیر محلی شما
67
00:02:05,439 –> 00:02:07,759
در محدوده جهانی شما قابل دسترسی نیست،
68
00:02:07,759 –> 00:02:09,598
بیایید مثالی برای آن نگاه کنیم،
69
00:02:09,598 –> 00:02:12,319
بنابراین فرض کنید من قصد دارم یک تابع ایجاد کنم
70
00:02:12,319 –> 00:02:13,040
71
00:02:13,040 –> 00:02:16,239
، مثلاً def تست کنید
72
00:02:16,239 –> 00:02:18,000
و سپس کاری که میخواهم انجام دهم این است
73
00:02:18,000 –> 00:02:19,680
که متغیری ایجاد میکنم که متغیر
74
00:02:19,680 –> 00:02:21,040
75
00:02:21,040 –> 00:02:23,360
محلی من خواهد بود و نام آن
76
00:02:23,360 –> 00:02:24,959
را مانند محلی میگذارم
77
00:02:24,959 –> 00:02:27,840
و سپس خارج از تابع من میخواهم
78
00:02:27,840 –> 00:02:28,400
79
00:02:28,400 –> 00:02:30,879
ابتدا این تابع را فراخوانی کنید، پس تست کنید و
80
00:02:30,879 –> 00:02:32,319
سپس مقدار متغیر a را چاپ می کنم
81
00:02:32,319 –> 00:02:35,760
، اکنون زمانی که
82
00:02:35,760 –> 00:02:37,599
83
00:02:37,599 –> 00:02:39,120
این برنامه را اجرا می کنم، یک خطایی برای من ایجاد می کند
84
00:02:39,120 –> 00:02:41,840
که می گوید نام a تعریف نشده است،
85
00:02:41,840 –> 00:02:43,840
بنابراین این برنامه خطا می دهد
86
00:02:43,840 –> 00:02:45,920
زیرا i’ m سعی می کنم به متغیر a دسترسی پیدا کنم
87
00:02:45,920 –> 00:02:46,879
88
00:02:46,879 –> 00:02:48,959
که در واقع در محدوده محلی خود
89
00:02:48,959 –> 00:02:51,120
تحت تست تابع خود ایجاد کردم،
90
00:02:51,120 –> 00:02:53,519
بنابراین همانطور که به شما گفتم هر تابع
91
00:02:53,519 –> 00:02:55,519
یک محدوده محلی را تشکیل می دهد، بنابراین این
92
00:02:55,519 –> 00:02:57,599
محدوده محلی من است و متغیری
93
00:02:57,599 –> 00:02:59,280
که در محدوده محلی ایجاد می شود به عنوان نامیده می شود.
94
00:02:59,280 –> 00:03:01,120
یک متغیر محلی بنابراین این var محلی من است
95
00:03:01,120 –> 00:03:01,920
iable
96
00:03:01,920 –> 00:03:04,239
در حالی که این بلوک کد در اینجا در
97
00:03:04,239 –> 00:03:06,319
واقع بخشی از محدوده جهانی من است
98
00:03:06,319 –> 00:03:08,080
زیرا خارج از تابع است
99
00:03:08,080 –> 00:03:09,680
و در اینجا چیزی که من سعی می کنم انجام دهم این است که
100
00:03:09,680 –> 00:03:11,280
سعی می کنم به متغیر a دسترسی پیدا کنم
101
00:03:11,280 –> 00:03:13,440
که در واقع یک متغیر محلی است بنابراین
102
00:03:13,440 –> 00:03:14,959
به همین دلیل پایتون نمی تواند
103
00:03:14,959 –> 00:03:16,800
تشخیص دهد که چون
104
00:03:16,800 –> 00:03:19,200
یک متغیر محلی در
105
00:03:19,200 –> 00:03:20,400
محدوده جهانی شما قابل دسترسی
106
00:03:20,400 –> 00:03:22,319
نیست، اما بیایید بگوییم که آیا من این
107
00:03:22,319 –> 00:03:24,480
متغیر را به صورت سراسری ایجاد کرده بودم، بنابراین اگر یک متغیر جهانی ایجاد کنم،
108
00:03:24,480 –> 00:03:26,239
بیایید بگوییم چگونه می توانم این کار را انجام
109
00:03:26,239 –> 00:03:26,560
110
00:03:26,560 –> 00:03:29,760
دهم، اگر من یک متغیر جهانی ایجاد کنم
111
00:03:29,760 –> 00:03:32,319
okay چیزی شبیه به این و حالا
112
00:03:32,319 –> 00:03:35,200
اگر بخواهم این برنامه را اجرا
113
00:03:35,200 –> 00:03:37,200
کنم کار می کند و خروجی
114
00:03:37,200 –> 00:03:38,400
آن چاپ جهانی است،
115
00:03:38,400 –> 00:03:39,680
بنابراین اساساً این مقدار خاصی را چاپ می
116
00:03:39,680 –> 00:03:42,319
کند که من به
117
00:03:42,319 –> 00:03:44,720
متغیر خود a اختصاص دادم و نه این یک، زیرا
118
00:03:44,720 –> 00:03:46,000
این یک متغیر محلی است
119
00:03:46,000 –> 00:03:49,040
حتی متغیر. نامها همان پایتون
120
00:03:49,040 –> 00:03:50,879
در دامنه جهانی هستند فقط میتوانند به
121
00:03:50,879 –> 00:03:52,720
متغیرهای سراسری دسترسی داشته باشند، بنابراین از آنجایی که این
122
00:03:52,720 –> 00:03:55,599
بخشی از دامنه جهانی من است، پایتون قادر
123
00:03:55,599 –> 00:03:56,480
به دسترسی به آن
124
00:03:56,480 –> 00:03:58,000
مقدار a است و این همان چیزی است که در
125
00:03:58,000 –> 00:04:00,159
اینجا چاپ میکند شماره دو این است که yo
126
00:04:00,159 –> 00:04:01,439
متغیر محلی
127
00:04:01,439 –> 00:04:03,760
شما را نمی توان با محدوده محلی دیگری به آن دسترسی پیدا کرد،
128
00:04:03,760 –> 00:04:04,640
129
00:04:04,640 –> 00:04:06,799
بنابراین منظور من از آن این است که بگوییم
130
00:04:06,799 –> 00:04:08,560
من یک تابع مانند
131
00:04:08,560 –> 00:04:11,920
def test ایجاد می کنم، بسیار خوب، آن را مانند test one نام گذاری
132
00:04:11,920 –> 00:04:14,080
می کنم و یک متغیر در اینجا می
133
00:04:14,080 –> 00:04:15,200
دهم که
134
00:04:15,200 –> 00:04:18,238
اوه تست محلی خوب
135
00:04:18,238 –> 00:04:19,680
و سپس من می خواهم یک
136
00:04:19,680 –> 00:04:21,358
تابع دیگر مانند def
137
00:04:21,358 –> 00:04:24,560
test 2 ایجاد کنم و
138
00:04:24,560 –> 00:04:25,840
کاری که می خواهم انجام دهم این است که ابتدا
139
00:04:25,840 –> 00:04:28,720
تابع test1 خود را که test1 است فراخوانی می کنم
140
00:04:28,720 –> 00:04:30,240
و سپس چاپ می کنم مقدار
141
00:04:30,240 –> 00:04:33,919
a بنابراین در اینجا متغیر من است و خارج از
142
00:04:33,919 –> 00:04:35,680
تابع من فقط
143
00:04:35,680 –> 00:04:39,040
تابع test2 خود را فراخوانی میکنم،
144
00:04:39,040 –> 00:04:42,479
بنابراین اکنون وقتی این برنامه را اجرا
145
00:04:42,479 –> 00:04:44,000
میکنم میتوانید ببینید که این خطایی برای من ایجاد میکند
146
00:04:44,000 –> 00:04:45,840
که میگوید نام
147
00:04:45,840 –> 00:04:49,280
a تعریف نشده است. زیرا
148
00:04:49,280 –> 00:04:51,919
این یک محدوده محلی است و این
149
00:04:51,919 –> 00:04:54,080
دومین محدوده محلی این برنامه است
150
00:04:54,080 –> 00:04:56,960
و هر متغیر محلی که ایجاد
151
00:04:56,960 –> 00:04:58,800
می شود فقط در
152
00:04:58,800 –> 00:05:01,600
داخل آن محدوده محلی قابل دسترسی است بنابراین در اینجا من
153
00:05:01,600 –> 00:05:02,560
ایجاد
154
00:05:02,560 –> 00:05:05,440
کردم تا فقط در این محدوده قابل استفاده باشد
155
00:05:05,440 –> 00:05:07,120
این یک جداگانه است. scope
156
00:05:07,120 –> 00:05:09,360
و اگر باید از متغیر a استفاده کنم
157
00:05:09,360 –> 00:05:10,720
باید ابتدا i را اختصاص دهم
158
00:05:10,720 –> 00:05:12,960
منظور من این است که متغیر محلی شما
159
00:05:12,960 –> 00:05:13,759
160
00:05:13,759 –> 00:05:16,400
با هیچ محدوده محلی دیگری قابل دسترسی نیست،
161
00:05:16,400 –> 00:05:16,880
162
00:05:16,880 –> 00:05:19,520
فقط با محدوده محلی خودش قابل دسترسی
163
00:05:19,520 –> 00:05:20,320
است
164
00:05:20,320 –> 00:05:22,720
شماره سه این است که متغیر جهانی
165
00:05:22,720 –> 00:05:24,320
166
00:05:24,320 –> 00:05:26,400
شما در هر جایی از برنامه شما قابل دسترسی است، به عنوان
167
00:05:26,400 –> 00:05:28,160
مثال فرض کنید من یک جهانی ایجاد می کنم. متغیری
168
00:05:28,160 –> 00:05:30,479
مانند یک برابر با global
169
00:05:30,479 –> 00:05:33,199
و سپس تابعی مانند define
170
00:05:33,199 –> 00:05:34,000
test
171
00:05:34,000 –> 00:05:37,199
okay تعریف می کنم و در اینجا می گویم print
172
00:05:37,199 –> 00:05:40,000
a و من فقط بیرون می آیم و اکنون
173
00:05:40,000 –> 00:05:41,039
فقط آن تابع را صدا می
174
00:05:41,039 –> 00:05:43,440
زنم و می گویم که test okay پس حالا اگر
175
00:05:43,440 –> 00:05:45,600
این برنامه را اجرا
176
00:05:45,600 –> 00:05:47,680
کن