خب قبل از شروع خود آموزش تابع range، باید به نحوه اندیس گذاری در پایتون (python) اشاره کنیم!
پایتون (python)، اندیس رو از صفر میشماره! یعنی از صفر شروع میکنه به شمردن! مثلاً کلمه زیر رو در نظر بگیرید:
koolac
ترتیب اندیس ها این شکلی است:
اندیس صفر = k
اندیس یک = o
اندیس دو = o
اندیس سه = l
اندیس چهار = a
اندیس پنج = c
خب! حالا شما بگین: در کلمه Sajjad زیر اندیس شماره 1 کدام است؟! بله درست است، حرف s اندیس صفر، حرف a اندیس یک، حرف j اندیس دو، مجددا حرف j اندیس سه، حرف a اندیس چهار و حرف d اندیس پنج میباشد! پس اندیس یک برابر a است!
فرض کنید با یک محور اعداد مواجه هستیم! عناصر این محور به صورت زیر است:
[…,-5,-4,-3,-2,-1,0,1,2,3,4,5,…..]
پس مشاهده میکنید قبل از صفر، اندیس منهای یک وجود دارد. در پایتون (python) نیز اندیس منفی وجود دارد! اما شاید بپرسید که مثلاً برای کلمه koolac اندیس منفی یعنی چی؟! k میشه اندیس صفر! مگر قبل از k هم چیزی وجود داره که میخوایم اندیس منفی تعریف کنیم؟!
جواب اینه که اینجوری فرض میشه، که اگر عقبتر از اندیس صفر بخوایم بریم، چون قبل اندیس صفر (همان k درکلمه مذکور) چیزی نیست! پس مجبوریم، دنده عقب بیایم و از آخر شروع کنیم، یعنی از c (توی فیلم با اسلاید بهتر توضیح دادیم)!
پس در واقع در کلمه koolac، اندیس منهای یک میشه c!
اگر به دنده عقب رفتن ادامه بدیم، منفی تر ها رو هم میتونیم تعریف کنیم! مثلاً اندیس منفی دو میشه a، اندیس منفی سه میشه l، اندیس منفی چهار میشه o، اندیس منفی پنج میشه o، و اندیس منفی شش میشه k! باید حواسمون باشه که زیاده روی نکنیم، چون اندیس منفی هفت وجود نداره!
تابع range میاد یک رِنج یا بازه از اعداد رو تولید میکنه! اما چجوری؟! باید یکم صحبت کینم…
— بیان تابع range به صورت range(a,b) :
در این حالت پایتون (python) یک بازه از اعداد عدد صحیح تولید میکنه از a تا (b-1)! بله تعجب نکنید! خود b رو لحاظ نمیکنه! شاید اگر دفعه اولتون باشه که اینو میشنوید، عجیب به نظر برسه، ولی به هرحال پایتون ته بازه رو حساب نمیکنه!
مثلاً range(2,7) رو در نظر بگیرید، که شامل اعداد زیر خواهد بود:
2,3,4,5,6
و باز تاکید میکنم که خود 7 رو لحاظ نمیکنه!
مثال دیگه رو خودتون حل کنید: range(5,12)
جواب:
5,6,7,8,9,10,11
— بیان تابع range به صورت range(b) :
یعنی به تابع range یک ورودی (یا یک آرگومان) بدهیم! و اون هم نقطه انتهایی! در این صورت، پایتون (python) اندیس شروع رو به صورت پیش فرض برابر صفر قرار میده! (چون در پایتون (python) اندیسگذاری از صفر میشد دیگه!)
اما مجددا همون بحث نقطه انتها سر جای خودش هست، که خود b رو لحاظ نمیکنه!
مثال: range(7) یعنی:
0,1,2,3,4,5,6
مثال: range(4) یعنی:
0,1,2,3
خب! حالا این مثال رو خودتون حل کنین: range(10)
جواب:
0,1,2,3,4,5,6,7,8,9
یکی از چیزایی که احتمالاً اعصابتون رو خورد کرده اینه که احتمالاً هِی کد زیر رو مینویسید و میبینید که اعداد رو بهتون نشون نمیده!
a=range(2,7) print(a)
بله درسته! نشون نمیده! اما پس اگر بخوایم ببینیم که واقعا چه عددهایی رو میشه داخل خودش داره، چجوری بفهمیم؟! سه روش میگیم:
شاید اسم تخصیص چندتایی قلمبه سلمبه باشه، ولی هیچ چیز خاصی نیست! قبل از هر چیز، برای اینکه مطمئن بشید پیشنیازها رعایت شده، به مطلب مربوط به نکات نکمیلی متغیرها برید و تخصیص چندگانه رو یاد بگیرید (رو همون لینک که کلیک کنید، میرین توی صفحه همون مطلب، قسمتی از متن نوشتیم: نکته: چند نوع تخصیص مقدار به متغیر!، زیر همین رو بخونید، اوکیه!)
حالا که اون مطلب رو خوندید، میایم و این شکلی تعریف میکنیم:
a,b,c,d=range(1,5) print(a);print(b);print(c);print(d)
اگر نمیدونید که تابع print چجوری کار میکنه، به فیلم آموزشی تابع print مراجعه کنید!
چون میدونیم که range(1,5) شامل اعداد 1,2,3,4 است و از طرفی تخصیص متغیرها رو طبق همون مطلبی که بالا گفتیم بلدیم! پس میدونیم که پایتون (python) میاد و این ها رو متناظر میکنه و به شکل زیر عمل میکنه:
a=1;b=2;c=3;d=4
تو خط بعدی هم که گفتیم مقادیر و چاپ کنه که خب چاپ میکنه!
مطلب پیشنهادی:
آموزش لیست ها (list) در پایتون (Python)
تذکر: اولاً اگر دارید طبق دوره پیش میاد، چون تابع و اصلاً کلا لیست رو نگفتیم هنوز! بی خیال از این جا به بعد بشین! برای کامل شدن مطلب داریم میگیم اینا رو! اما بعدا که اینا رو یاد گرفتین، حتما دوباره بیاین و مراجعه کنید!
از کد زیر استفاده میکنیم:
a=list(range(2,7)) print(a)
در واقع داریم تابع range رو اول به لیست تبدیل میکنیم (با تابع list) بعد حالا لیست رو چاپ میکنیم، که اوکیه و مشکلی پیش نمیاد!
تذکر: بازهم اگر دارید طبق دوره پیش میاید، هنوز for رو نگفتیم، پس وقتی گفتیم بیاین بخونین و الان بیخیال اینا بشین!
از کد زیر استفاده میکنیم:
a=range(2,7) for i in a: print(i)
دانلود فیلم اول :(حجم: 28.05 مگابایت)(مدت زمان: 11 دقیقه)
فیلم دوم شامل نحوه استفاده از تابع list برای نمایش یک range میباشد!
دانلود فیلم دوم :(حجم: 12.77 مگابایت)(مدت زمان: 3 دقیقه و 35 ثانیه)
تعداد دیدگاه | 8 |
تعداد بازدید | 19.3K |
تاریخ انتشار | 31/07/2018 |
تاریخ بروزرسانی | 31/07/2018 |
نویسنده | گروه آموزشی کولاک |