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