تبدیل نوع (Casting)

اصلاح شده

2026-07-25

Casting چیست؟

  • تبدیل یک نوع داده به نوع دیگر
  • دو نوع کلی: ضمنی (Implicit) و صریح (Explicit)

تبدیل ضمنی (Implicit Casting)

  • خود پایتون بدون دخالت برنامه‌نویس نوع رو تبدیل می‌کنه
  • معمولاً در عملیات ریاضی بین انواع مختلف عددی رخ می‌ده
x = 5        # int
y = 2.5      # float
z = x + y
print(z, type(z))
7.5 <class 'float'>
  • چون float دقت بیشتری داره، پایتون int رو به float تبدیل می‌کنه تا اطلاعات از دست نره

تبدیل صریح (Explicit Casting)

  • برنامه‌نویس خودش دستور می‌ده که یک نوع به نوع دیگه تبدیل بشه، با استفاده از توابع تبدیل
تابع تبدیل به
int() صحیح
float() اعشاری
str() رشته
bool() بولی
list() لیست
tuple() تاپل
set() ست
complex() مختلط
a = "25"
b = int(a)          # str -> int
print(b, type(b))
25 <class 'int'>

مثال‌های ترکیبی

print(int(3.99))       # 3   -> قطع اعشار (نه گرد کردن)
print(float("3.14"))   # 3.14
print(str(100))        # '100'
print(list("abc"))     # ['a', 'b', 'c']
print(tuple([1,2,3]))  # (1, 2, 3)

نکته: خطا در تبدیل نامعتبر

int("hello")
ValueError: invalid literal for int() with base 10: 'hello'
  • تبدیل صریح فقط وقتی کار می‌کنه که محتوا با نوع مقصد سازگار باشه (مثلاً رشته‌ای که واقعاً عدده)

جمع‌بندی تفاوت

نوع چه کسی انجامش می‌ده مثال
Implicit خود پایتون، خودکار 5 + 2.5
Explicit برنامه‌نویس، با تابع int("5")