انواع داده در پایتون؛ متن، عدد و مقدار بولی

🗓 آخرین بهروزرسانی:
پایتون برای نگهداری و پردازش اطلاعات از انواع داده مختلف استفاده میکند. یک نام، عدد، قیمت، وضعیت روشن یا خاموش و نتیجه یک محاسبه همگی داده هستند؛ اما پایتون با هرکدام رفتار متفاوتی دارد. شناخت نوع داده کمک میکند عملیات درست را انجام دهیم و از بسیاری از خطاهای رایج جلوگیری کنیم.
این مطلب، درس پنجم از دوره رایگان آموزش پایتون از صفر است. در درس قبلی یاد گرفتیم چگونه اطلاعات را داخل متغیرها ذخیره کنیم. اکنون بررسی میکنیم هر مقدار چه نوعی دارد و چگونه میتوان نوع دادهها را تشخیص یا تبدیل کرد.
نوع داده در پایتون چیست؟
نوع داده مشخص میکند یک مقدار چیست و چه عملیاتی میتوان روی آن انجام داد. برای مثال، پایتون میتواند دو عدد را با هم جمع کند؛ اما جمع مستقیم یک عدد و یک متن معمولاً معتبر نیست.
age = 30
name = "مهران"
is_active = Trueدر این مثال:
30یک عدد صحیح است."مهران"یک متن یا رشته است.Trueیک مقدار بولی است.
در این درس چهار نوع پایه و بسیار پرکاربرد را بررسی میکنیم:
strبرای متنintبرای عدد صحیحfloatبرای عدد اعشاریboolبرای مقدار درست یا نادرست
تشخیص نوع داده با تابع type
تابع داخلی type() نوع یک مقدار یا متغیر را مشخص میکند:
name = "سارا"
age = 24
height = 1.68
is_student = True
print(type(name))
print(type(age))
print(type(height))
print(type(is_student))خروجی:
<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>عبارت class در خروجی به این معناست که هر مقدار در پایتون به یک نوع یا کلاس مشخص تعلق دارد.
نوع داده str؛ متن در پایتون
نوع str که کوتاهشده واژه string است، برای ذخیره متن استفاده میشود. متن باید میان علامت نقلقول تکی یا دوتایی قرار بگیرد:
first_name = "مهران"
city = 'استانبول'
message = "در حال یادگیری پایتون هستم"اعداد نیز اگر داخل نقلقول قرار بگیرند، متن محسوب میشوند:
number_as_text = "25"
print(type(number_as_text))خروجی:
<class 'str'>چسباندن متنها به یکدیگر
میتوان دو رشته را با عملگر + به هم متصل کرد:
first_name = "علی"
last_name = "رضایی"
full_name = first_name + " " + last_name
print(full_name)خروجی:
علی رضاییاین عملیات «الحاق رشتهها» نام دارد. در اینجا علامت + عملیات ریاضی انجام نمیدهد، بلکه متنها را به هم میچسباند.
تکرار متن
با ضرب یک رشته در عدد صحیح میتوان آن را چند بار تکرار کرد:
print("Python " * 3)خروجی:
Python Python Pythonمحاسبه طول متن با len
تابع len() تعداد نویسههای یک رشته را برمیگرداند:
course = "Python"
print(len(course))خروجی:
6فاصلهها نیز جزو نویسههای متن محاسبه میشوند.
نوع داده int؛ عدد صحیح
نوع int برای اعداد صحیح مثبت، منفی و صفر استفاده میشود:
age = 30
score = 18
temperature = -4
zero = 0عدد صحیح بخش اعشاری ندارد. میتوان عملیات ریاضی معمول را روی آن انجام داد:
price = 120000
quantity = 3
total = price * quantity
print(total)خروجی:
360000اعداد بزرگ در پایتون
برای خواناتر شدن عددهای بزرگ میتوان از زیرخط استفاده کرد:
annual_income = 1_250_000_000
print(annual_income)زیرخط فقط خوانایی کد را بهتر میکند و در مقدار عدد تأثیری ندارد.
نوع داده float؛ عدد اعشاری
اعدادی که دارای نقطه اعشار هستند از نوع float محسوب میشوند:
height = 1.78
price = 49.99
temperature = -2.5نتیجه تقسیم معمولی در پایتون اغلب یک عدد اعشاری است:
result = 10 / 4
print(result)
print(type(result))خروجی:
2.5
<class 'float'>نکته مهم درباره دقت اعداد اعشاری
رایانهها برخی عددهای اعشاری را بهصورت تقریبی ذخیره میکنند. به همین دلیل ممکن است خروجی زیر کمی غیرمنتظره باشد:
print(0.1 + 0.2)در بسیاری از محیطها خروجی چیزی شبیه این است:
0.30000000000000004این رفتار خطای پایتون نیست؛ نتیجه روش نمایش دودویی اعداد اعشاری در رایانه است. در پروژههای مالی که دقت بسیار مهم است، معمولاً از ابزارهای تخصصی مانند Decimal استفاده میشود.
نوع داده bool؛ درست و نادرست
نوع bool فقط دو مقدار دارد:
True
Falseحرف اول این دو مقدار باید بزرگ نوشته شود. شکلهای true و false در پایتون معتبر نیستند.
is_logged_in = True
is_admin = False
print(is_logged_in)
print(type(is_admin))مقادیر بولی برای تصمیمگیری در برنامهها بسیار مهماند. برای مثال:
- آیا کاربر وارد حساب شده است؟
- آیا موجودی محصول بیشتر از صفر است؟
- آیا رمز عبور درست است؟
- آیا سفارش پرداخت شده است؟
ساخت مقدار بولی با مقایسه
نتیجه مقایسهها یک مقدار بولی است:
age = 20
print(age >= 18)
print(age == 20)
print(age < 10)خروجی:
True
True
Falseعملگرهای مقایسهای را در یکی از درسهای بعدی کامل بررسی خواهیم کرد.
تفاوت عدد و متن عددی
این دو مقدار شبیه هم دیده میشوند، اما نوع متفاوتی دارند:
number = 25
text_number = "25"
print(type(number))
print(type(text_number))مقدار اول قابل استفاده در محاسبات است، اما مقدار دوم یک رشته متنی است:
print(number + 5)
print(text_number + "5")خروجی:
30
255در خط دوم، پایتون دو متن را به هم متصل کرده است؛ بنابراین خروجی 255 بهعنوان یک رشته تولید میشود.
تبدیل نوع داده در پایتون
گاهی لازم است یک مقدار را از نوعی به نوع دیگر تبدیل کنیم. برای این کار از توابعی مانند str()، int()، float() و bool() استفاده میشود.
تبدیل عدد به متن با str
age = 30
message = "سن من " + str(age) + " سال است."
print(message)بدون استفاده از str(age)، پایتون نمیتواند یک رشته و عدد را مستقیماً با + ترکیب کند.
تبدیل متن عددی به عدد صحیح با int
price_text = "150"
price = int(price_text)
print(price + 50)خروجی:
200تبدیل متن به عدد اعشاری با float
weight_text = "72.5"
weight = float(weight_text)
print(weight + 2.5)خروجی:
75.0تبدیل float به int
price = 19.95
whole_price = int(price)
print(whole_price)خروجی:
19تبدیل float به int قسمت اعشاری را حذف میکند؛ این عملیات گردکردن نیست. برای گردکردن باید از تابع round() استفاده شود.
تابع bool چگونه مقادیر را تبدیل میکند؟
تابع bool() مقدارها را به True یا False تبدیل میکند:
print(bool(1))
print(bool(0))
print(bool("Python"))
print(bool(""))خروجی:
True
False
True
Falseبهطور کلی، صفر، رشته خالی و برخی ساختارهای خالی مقدار نادرست محسوب میشوند. بیشتر مقدارهای غیرخالی و غیرصفر درست محسوب میشوند.
اشتباه رایج درباره رشته “False”
print(bool("False"))خروجی:
Trueزیرا رشته "False" خالی نیست. محتوای متن برای تابع bool() مهم نیست؛ خالی یا غیرخالی بودن آن بررسی میشود.
تبدیل نامعتبر و خطای ValueError
هر متنی را نمیتوان به عدد تبدیل کرد:
number = int("پایتون")این دستور خطای ValueError ایجاد میکند، زیرا متن «پایتون» نمایش معتبر یک عدد صحیح نیست.
این تبدیل معتبر است:
number = int("250")اما این تبدیل نیز برای int() مستقیم معتبر نیست:
number = int("12.5")برای متن اعشاری ابتدا از float() استفاده کنید:
number = float("12.5")
print(number)خطای جمع متن و عدد
کد زیر باعث خطای TypeError میشود:
age = 30
print("سن: " + age)زیرا عملگر + نمیتواند رشته و عدد صحیح را مستقیماً ترکیب کند. دو راه درست:
age = 30
print("سن: " + str(age))
print("سن:", age)استفاده از f-string برای ترکیب دادهها
یکی از روشهای خوانا برای قرار دادن مقدار متغیرها داخل متن، استفاده از f-string است:
name = "سارا"
age = 24
height = 1.68
print(f"نام: {name}، سن: {age}، قد: {height}")در این روش، پیش از رشته حرف f قرار میگیرد و نام متغیرها داخل آکولاد نوشته میشود. پایتون آنها را به شکل مناسب در متن قرار میدهد.
پروژه عملی: ساخت کارت مشخصات محصول
در این پروژه از چهار نوع داده اصلی استفاده میکنیم:
product_name = "کتاب آموزش پایتون"
price = 185000
rating = 4.7
is_available = True
print("--- مشخصات محصول ---")
print(f"نام محصول: {product_name}")
print(f"قیمت: {price} تومان")
print(f"امتیاز: {rating}")
print(f"موجود است: {is_available}")
print("--- نوع دادهها ---")
print(type(product_name))
print(type(price))
print(type(rating))
print(type(is_available))این برنامه نشان میدهد چگونه اطلاعات متفاوت یک محصول با نوعهای داده مناسب ذخیره و نمایش داده میشوند.
تمرینهای درس پنجم
- چهار متغیر برای نام، سن، قد و وضعیت دانشجو بودن بسازید و نوع هرکدام را نمایش دهید.
- رشته
"120"را به عدد تبدیل کنید، عدد ۳۰ را به آن اضافه کنید و نتیجه را چاپ کنید. - عدد اعشاری
19.8را به عدد صحیح تبدیل کنید و تفاوت نتیجه را توضیح دهید. - بررسی کنید خروجی
bool(0)،bool(10)،bool("")وbool("0")چیست. - یک کارت مشخصات شخصی با f-string بسازید که نام، سن، شهر و وضعیت اشتغال را نمایش دهد.
اشتباهات رایج
- قرار دادن عدد داخل نقلقول و انتظار انجام محاسبه عددی
- نوشتن
trueیاfalseبا حرف کوچک - جمع مستقیم رشته و عدد با عملگر
+ - تبدیل متن غیرعددی با
int()یاfloat() - تصور اینکه
int()عدد اعشاری را گرد میکند - تصور اینکه رشته
"False"به مقدار بولی نادرست تبدیل میشود
📌 همچنین بخوانید: بازار کار پایتون در ایران، نصب و تنظیم پایتون در VS Code و برنامهنویسی پایتون با گوشی
پرسشهای متداول
تفاوت int و float چیست؟
int برای عددهای صحیح و float برای عددهای دارای بخش اعشاری استفاده میشود.
آیا عدد داخل نقلقول هنوز عدد است؟
خیر. هر مقداری که داخل علامت نقلقول قرار بگیرد رشته یا str محسوب میشود، حتی اگر فقط از رقم تشکیل شده باشد.
چگونه نوع یک متغیر را بفهمیم؟
نام متغیر را به تابع type() بدهید؛ برای مثال type(age).
چرا int(“12.5”) خطا میدهد؟
زیرا رشته "12.5" نمایش یک عدد اعشاری است. برای تبدیل آن باید از float("12.5") استفاده کنید.
مقدار بولی چه کاربردی دارد؟
برای نمایش وضعیتهای دوحالتی و نتیجه مقایسهها استفاده میشود؛ مانند فعال یا غیرفعال، درست یا نادرست و موجود یا ناموجود.
جمعبندی
در این درس با چهار نوع داده اصلی پایتون آشنا شدیم: متن با str، عدد صحیح با int، عدد اعشاری با float و مقدار منطقی با bool. همچنین یاد گرفتیم نوع داده را با type() بررسی و با توابع تبدیل نوع تغییر دهیم.
درس قبلی: متغیرها در پایتون چیستند؟
درس بعدی: دریافت اطلاعات از کاربر با تابع input()
مشاهده فهرست کامل دوره آموزش پایتون از صفر
برای ذخیره پیشرفت در همه دستگاهها و دریافت گواهی پایان مسیر، رایگان ثبتنام کن یا وارد شو.