برای ورود به دنیای هوش مصنوعی نیازه که اول پایتون رو به عنوان ابزار قدرتمند بلد باشیم اگه تازه می خوای شروع کنی کافی از این برای سراغ مقدمات آموزش پایتون. در گام اول آموزش در مورد مباحث مقدماتی آموزش پایتون صحبت کردیم. در گام دوم آموزش پایتون شروع کردیم در مورد مجموعه ها حرف زدیم که از این می تونید بخونید. تو این بخش از آموزش پایتون می خوایم بریم سراغ تاپل ها که یک نوع داده چند قسمتی تو پایتون هستن. خصوصیات تاپل ها به لیست ها نزدیکه و به همین خاطر کار باهاشون راحته اگه هیچی راجبشون نمی دونی در درس چهارم راجبش صحبت کردیم که می تونی بخونی. المان های یک تاپل‌با کاما ( از هم جدا می‌شن: شما می تونید برای تشخیص راحت و زیبایی کدتون از پرانتز ( استفاده کنین و داده‌ها رو داخل پرانتز قرار بدین اما به این نکته توجه کنید که. ولی بهتره که پرانتزو بذارین. برای ساختن تاپل باید به صورت پایین عمل کنیم: اگر بخواهیم یک تاپل خالی داشته باشیم از ( استفاده می کنیم مثله: یه راه دیگه واسه ساختن تاپل اینه که از طریق توابع توکار تاپل رو بسازیم مثلا: immutable تاپل ها از نوع داده‌های immutable هستن. یعنی تغییرناپذیرند و شما نمی‌تونید مقادیر آن‌ها را ویرایش کنین. مقادیر اولیه که برای تاپل ها تعیین می‌کنید، تا موقعی که ما تاپل رو حذف کنیم یا تا آخر برنامه. مثلا: همانطور که توی مثال نشون داده شده وقتی خواستیم تاپل رو تغییر بدیم خطا گرفته! اما یک راهی برای تغییر تاپل وجود داره. می تونیم اول تاپل رو به لیست تبدیل کنیم بعد تغییرش بدیم و دوباره به تاپل تبدیل کنیم. اول اومدیم تاپل رو تبدیل به لیست کردیم بعد مقدار رو تغییر دادیم دوباره لیست رو تبدیل به تاپل کردیم: البته یه کار دیگه هم می تونیم انجام بدیم. از =+ استفاده کنیم. چون اینجوری خود تاپل رو تغییر نمیدیم و یک تاپل جدید می سازیم که شامل تاپل قبلی هم هست: با این کار در واقع یه تاپل جدید ایجاد کردیم ولی تاپل قبلی تغییری نکرده. یک تاپل به اسم t تعریف کردیم که سه تا عدد داخلشه. کد زیر تاپل رو پرینت می کنه (خروجی ازش می گیریم) : برای دسترسی به مقادیر در یک تاپل از اسم تاپل به همراه شماره اندیس ( index ) آن استفاده می‌کنیم. مثل کد زیر عنصر اول رو پرینت می کنه: کد زیر عنصر دوم تا آخر رو پرینت می کنه: عمل Packing و Unpacking تاپل ها وقتی می نویسیم t = , و مقادیر , رو به t نسبت میدیم، اسم این کار packing هست. چون داریم مقادیرمون رو تو یک تاپل pack می کنیم بسته بندی می کنیم. حالا برای unpack کردن مقادیر می تونیم مثل پایین عمل کنیم دو واقع داریم یکی یکی عدد های و و رو به متغیر های X و y و z نسبت می دهیم: اگر فقط بعضی از مقادیر تاپل رو نیاز داشته باشیم می تونیم از نماد _ استفاده کنیم یعنی با این نماد در نظرشون نمی گیریم: حذف المان های یک تاپل حذف المان های یک تاپل به صورت تکی نمیشه اما با دستور del می تونیم تاپل رو به طور کلی حذف کنیم: توابع داخلی تاپل ها المان های دو تاپل را با هم مقایسه می کنه. اگه عناصر از یک نوع باشن پایتون مقایسه رو انجام میده و نتیجه رو برمی گردونه. اگر تاپل اول از تاپل دوم بیشتر باشه، خروجی میشه. اگر تاپل اول از تاپل دوم کمتر باشه، خروجی - میشه. اگر هر دو تاپل یکی باشن خروجی میشه. دستور len طول تاپل یعنی تعداد کل المان های تاپل رو برمی گردونه: آیتمی که بیشترین مقدار رو بین المان های تاپل داره برمی گردونه: اینم که واضحه! آیتمی که کمترین مقدار رو بین المان های تاپل داره برمی گردونه: تبدیل لیست به تاپل به همین راحتیه: از عملگر + برای متصل کردن دو تاپل یا بیشتر استفاده می کنیم: تاپل ها hashable و equatable هستند قبل این که وارد بحث hashable بشیم، می خوام به طور خلاصه راجع به hash و hashing توضیح بدم که اصلا چی هستن؟ hashing یه مفهوم تو علوم کامپیوتره که برای بالا بردن کارایی، ساختمان داده هایی با دسترسی تصادفی که در اون حجم زیادی از داده ها ذخیره و به سرعت قابل دسترسی هستن، استفاده میشه. hash : به پیاده سازی تابع hash روی اطلاعات ورودی با اندازه دلخواه می‌گویند که خروجی با طول مشخص و ثابتی داره، که بدون کد مشخص از آن هیچ اطلاعاتی را نمی‌توان بازیابی کرد. حالا تابع hash چیه؟ به هر تابعی که اطلاعات با اندازه دلخواه را به اطلاعاتی با اندازه ثابت، آدرس دهی کند تابع hash می‌گویند. داده هایی Hashable هستند که مقدار Hash آن ها در طول عمرشون تغییر نکنه و بتونیم با عناصر دیگه مقایسون کنیم. برای مقایسه هم باید مقدار hash آن ها یکسان باشه. اگر همه اعضای تاپل Hashable باشن تاپل Hashable میشه. hashable و Equatable دست به دست هم میدن تا ما بتونیم دو تا عنصر رو با هم مقایسه کنیم. دومی Hashable نیست، چون لیست و مجموعه Hashable نیستن. Indexing اندیس در تاپل ها از صفر شروع میشه: با اعداد منفی هم میشه اندیس گذاری کرد. اندیس آخرین عنصر میشه - ، قبلی - ، تا برسه به اولین عنصر یعنی اندیس منفی یک نشون دهنده عدد سه هست: می تونیم داخل یک محدوده اندیس گذاری کنیم: Reversing برای وارونه کردن المان ها تو یک تاپل به صورت زیر عمل می کنیم: یا: حالا این همه از تاپل حرف زدیم، چیزی که نشه تغییرش داد به چه دردی میخوره؟ باید گفت که تاپل برای جاهاییه که یه دسته از اطلاعات داریم و نمیخوایم مقادیرشون توی مرور زمان تغییر کنه. مثلا برنامه ای دارین که از روزهای هفته استفاده میکنه. اسم روزهای هفته همیشه باید ثابت باشه پس از تاپل استفاده می کنیم که اشتباها یکجا تغییر ندیم اسماشون رو. یا مثلا کد ملی آدمها هیچوقت عوض نمیشه. یا توی یه شرکت هیچوقت کد پرسنلی عوض نمیشه.