پایتون کلید ورود به دنیای هوش مصنوعی! (قسمت چهارم: نوع داده-بخش اول)

سلام رفقا در یک سری نوشته شروع کردیم به آموزش پایتون برای ورود به دنیای هوش مصنوعی. اگر تازه دارید پایتون رو یاد می گیرید از لینک زیر به قسمت اول برید و گام به گام جلو بیاین ! http://vrgl.ir/aadgZ توی این نوشته که قسمت چهارم آموزش پایتون محسوب می شه می خوام در مورد انواع داده ها در پایتون صحبت کنم. همون طور که در قسمت دوم در مورد متغیر توضیح دادیم متغیر رو مثل یک ظرف تشبیه کردم و گفتم که نوع این ظرف ها با هم فرق داره و مثلا آب رو نمی شه توی آبکش نگه داشت. حالا توی این قسمت راجب ظرف های مختلف صحبت می کنم البته این بحث در حد آشنایی هست در ادامه آموزش ها عمیق تر بهش می پردازیم. نوع داده Boolean که توی پایتون bool نشون می دناین نوع داده همون درست و غلط خودمون هست مثل True و False. مثلا متغیر A=True یعنی ظرف A از نوع boolean هست. نکته ای که هست اینه که این نوع داده زیر مجموعه اعداد صحیح هست یعنی :issubclass(bool, int) # Trueهمچنین می تونیم با تابع isinstance ببینیم که تعلق به اون کلاس داره یا نه. همین که گفتم زیر مجموعه اعداد صحیح هست رو میشه اینطوری هم چک کرد:isinstance(True, bool) # True isinstance(False, bool) # Trueبنابراین چون زیر مجموعه اعداد صحیح هست پس وقتی در معادلات ریاضی از True یا False استفاده می کنیم جای اون 1 و 0 میشینه مثل :True + False == 1 # 1 + 0 == 1 True * True == 1 # 1 * 1 == 1نوع داده عددی در پایتون عدد صحیح int : این نوع داده همون اعداد صحیح که توی ریاضی می خوندیم هستن مثل 2 یا 100 یا 23423453453 . که با int نشونش می دن. در سری های قدیمی پایتون از long هم استفاده می شد ولی الان چون استفاده نمی شه فراموشش کنیدعدد کسری float : عدد کسری هست که دقتش بستگی به سیستم و معماری سیستم داره. مثل :a = 2.0 b = 100.e0 c = 123456789.e1اعداد مختلط : اینا هم همون عددای مختلط ریاضی هستن مثل : a = 2 + 1j b = 100 + 10jنکته ای که هست اینه که عملگر های < , =< , => , > بین دوتا عدد مختلط خطا می ده. نوع داده رشته در پایتونرشته یا همون string مجموعه ای از کارکتر ها رو در خودش نگه می داره. در پایتون 3 دو نوع رشته داریم که یکی نوعش Str هست و یکی دیگه نوعش byte هست. کسایی که مبتدی هستن و این متن رو می خونن همون Str رو به عنوان رشته در نظر داشته باشن. اونایی که حرفه ای تر هست و می خوان بدونن اینا چه فرقی با هم داره این لینک رو بخونن. str: a unicode string. The type of 'hello' bytes: a byte string. The type of b'hello'در پایتون 2.7 به پایین نوع رشته به صورت زیر هست (صرفا جهت اطلاع!)str: a byte string. The type of 'hello' bytes: synonym for str unicode: a unicode string. The type of u'hello'نوع داده دنباله و مجموعه در پایتون در پایتون یک دنباله داریم که فارسی همون sequence هست و به صورت ترتیبی هست یعنی اهمیت داره اول کی بیاد دوم کی بیاد. مجموعه هم فارسی عبارت collection هست. اینجا صرفا باهاشون آشنا می شیم و قیافشونو می بینیم بعدا بیشتر در موردش صحبت می کنیم. رشته : رشته ای که در بخش قبل راجبش صحبت کردیم خودش دنباله و ترتیبی از کاراکتر ها هست. تاپل Tuple : این نوع داده هم یک مجموعه ترتیبی هست یعنی مهم هست کی اول باشه کی دوم کی سوم. همچنین هر چیزی رو می تونه توی خودش نگه داره. یعنی مثلا یک تاپل دیگرو هم می تونید توش نگه دارید مثال : a = (1, 2, 3) b = ('a', 1, 'python', (1, 2)) b[2] = 'something else' # returns a TypeErrorتاپل ها با پرانتز معرفی می شن. مثل همین a و b در این مثال. حالا چرا خط آخر این مثال Error می ده؟! چون که تاپل ها غیر قابل تغییر هستن یعنی وقتی یه چیزی ریختین توش دیگه نمی تونید عوضش کنید. به این ویژگی در دنیای برنامه نویسی immutable می گن. حالا راجب این موضوع در جلسات بعدی مفصل تر صحبت می کنم و لینکشو اینجا می زارم. پس تاپل ها هم immutable هستن و هم اینکه اگر همه ی اعضا hashable باشن hashable میشن. حالا این hashable چیه در جلسات بعدی توضیح می دم لینکشو اینجا می زارم (فعلا مهم نیست بدونید چیه!)لیست list :این نوع داده یک مجموعه ترتیبی از n داده هست. عین همون تاپل ها هست فقط فرقش اینکه اعضاشو می شه عوض کرد. مثال : a = [1, 2, 3] b = ['a', 1, 'python', (1, 2), [1, 2]] b[2] = 'something else' # allowedهمون طور که خط آخر می بینید مقدار 'python' در لیست b عوض شده و مقدار 'something else' نشسته جاش. پس چون میشه عوض کرد mutable هست. لیست ها با کروشه ایجاد می شن. لیست ها اساسا hashable نیستن. مجموعه Set :این همون مجموعه توی ریاضیات هست. مجمموعه ای از عناصر غیر ترتیبی (یعنی مهم نیست کی اوله کی دوم ) از عناصر منحصر به فرد (یعنی تکراری نداره) است. مثل : a = {1, 2, 'a'}با آکولاد هم درست می شه. مجموعه mutable هست و همچنین آیتم ها باید hashable باشن. دیکشنری dict :دیکشنری ها هم یک نوع دیگه ای از داده ها هستن. که به صورت زوج کلید و مقدار هستن. کلید-مقدار همونطور که از اسمش مشخصه یک مقداریو وصل می کنه به یک کلیدی. که با اون کلید می تونید اون مقدارو بخونید. بنابراین دیکشنری ها مجموعه غیر ترتیبی (یعنی مهم نیست کی اول بیاد کی دوم) از عناصر منحصر به فرد (یعنی تکراری نداره ) از مقادیر کلید-مقدار هستن. مثل : a = {1: 'one',2: 'two'} b = {'a': [1, 2, 3],'b': 'a string'}دیکشنری ها هم mutable هستن و هم اینکه با آکولاد تشکیل میشن. ولی فرقی که با مجموعه دارن اگر دقت کنید دونقطه : بین مقادیر داریم که سمت چپ این دو نقطه کلید و سمت راست مقدار هست و دیکشنری ها مجموعه ای از این کلید مقدار ها هستن که با کاما , از هم جدا شدنهمچنین کلید ها باید hashable باشن. فقط کلید ها !خسته نباشید تا اینجای کار. انتظاری که هست اینه که پایتون رو تا حالا نصب کرده باشید و بتونید کد بزنید. همچنین با انواع مختلفی از ظرف هایی که پایتون در اختیارتون قرار می ده آشنا شده باشید. در بخش بعدی راجب تبدیل داده ها به همدیگه صحبت می کنیم که در لینک زیر می تونید بخونید. http://vrgl.ir/ryXv8