انواع داده
در این درس چهار نوع پایه int و float و str و bool را میشناسید، با تابع type نوع هر مقدار را میبینید و بین انواع تبدیل انجام میدهید.
آنچه در این درس میآموزید
- چهار نوع داده پایه پایتون را از هم تشخیص دهید
- با تابع type نوع هر مقدار را ببینید
- بین انواع با int و float و str تبدیل انجام دهید
فهرست مطالب
هر مقداری که در برنامه دارید یک نوع (Type) دارد؛ نوع تعیین میکند با آن مقدار چه عملهایی معنا دارد. مثلاً ضرب برای عدد روشن است، اما «ضرب دو متن» یعنی چه؟ پایتون نوع را خودش از روی مقدار تشخیص میدهد و لازم نیست چیزی اعلام کنید، ولی باید بدانید زیر دستتان چه دارید.
چهار نوع پایه
چهار نوعی که بیشتر برنامههای مبتدی با آنها نوشته میشود اینها هستند. تابع type نوع هر مقدار را نشان میدهد:
print(type(25))
print(type(3.14))
print(type("hello"))
print(type(True))<class 'int'> <class 'float'> <class 'str'> <class 'bool'>
- عدد صحیح (int) — اعداد بدون اعشار مثل
25و-7. نکته جذاب اینکه در پایتون اندازهای برای int ندارید؛ میتوانید ۲ به توان ۱۰۰ را بدون از دست رفتن رقم نگه دارید. - عدد اعشاری (float) — اعداد با نقطه اعشار مثل
3.14و-0.5. در حافظه با دقت محدود ذخیره میشوند و همین یک بحث مهم دارد که پایینتر میبینیم. - رشته (str) — قطعه متن داخل گیومه، از یک حرف تا یک کتاب.
- درست/غلط (bool) — فقط دو مقدار:
TrueوFalse. دقت کنید با حرف بزرگ؛trueکوچک در پایتون تعریف نشده است.
نکتهای که در درس اول دیدید را حالا دقیق بفهمید: 25 عدد است ولی "25" رشته. برای پایتون این دو هیچ شباهتی جز شکل ظاهری ندارند.
دقت اعشار؛ چرا 0.1 + 0.2 مساوی 0.3 نیست؟
print(0.1 + 0.2)0.30000000000000004
خطا نکردهایم! اعداد اعشاری در حافظه به صورت دودویی ذخیره میشوند و بسیاری از کسرهای اعشاری در دودویی «گنگ» میمانند؛ مثل یکسوم در مبنای ده که با ۰٫۳۳۳... نوشته میشود و هرگز دقیق تمام نمیشود. پایتون هم مثل تقریباً همه زبانها از استاندارد IEEE 754 استفاده میکند و این رفتار مال آن استاندارد است، نه باگ پایتون.
تبدیل نوع
گاهی مقدار به نوع دیگری نیاز دارد: عددی که در یک رشته آمده را باید قبل از جمع کردن به int تبدیل کنید. توابع int و float و str همین کار را میکنند:
age_text = "25"
age = int(age_text)
print(age + 1)
print(int("42") + int("8"))
print(float("3.5") * 2)
print(str(7) + " days")26 50 7.0 7 days
سطر به سطر: رشته "25" به عدد تبدیل شد تا جمع معنا پیدا کند؛ دو رشته عددی جمع شدند؛ رشته "3.5" به float تبدیل و ضرب شد؛ و در سطر آخر برعکس، عدد ۷ با str به رشته تبدیل شد تا به متن بچسبد. بدون آن str، پایتون برای 7 + " روز" خطا میداد.
مقایسهها هم مقدار میسازند
نوع bool شاید ساده به نظر برسد، ولی ستون تصمیمگیری در درس شرطهاست. نتیجه هر مقایسه یک bool است:
print(10 > 3)
print(type(10 > 3))True <class 'bool'>
یعنی «بزرگتر بودن» یک عمل است که خروجی دارد؛ میتوانید نتیجهاش را در یک متغیر ذخیره کنید و بعداً با آن تصمیم بگیرید.
تمرینها
تمرین
تمرین ۱ — جمع دو رشته عددی
دو مقدار رشتهای "19" و "5.5" دارید. بدون دست بردن به خود رشتهها، جمع واقعی عددی آنها را حساب و چاپ کنید.
# Write your code hereنمایش راهحل
a = int("19")
b = float("5.5")
print(a + b)24.5
::: :::
خلاصه
- چهار نوع پایه: int برای اعداد صحیح، float برای اعشاری، str برای متن و bool برای True/False.
25و"25"دو دنیای متفاوتاند: عدد و رشته.- اعداد float در حافظه دقت محدود دارند؛
0.1 + 0.2دقیقاً 0.3 نمیشود. - با
intوfloatوstrبین انواع تبدیل انجام میدهید. int(3.9)گرد نمیکند و فقط بخش صحیح را میآورد؛int("3.5")هم خطا میدهد.
حالا که انواع را میشناسید، وقت آن است که ابزار کار روی آنها را ببینید: در درس بعدی با عملگرهای حسابی، مقایسهای و منطقی پایتون کار میکنیم.