تبدیل نوع در پایتون

تبدیل بین انواع داده (int، float، str، list، tuple، set، dict) در پایتون

تبدیل نوع (Casting) چیست؟

تبدیل نوع یعنی تغییر نوع یک داده به نوع دیگر. مثلاً تبدیل رشته "42" به عدد 42.

توابع تبدیل نوع

تابعتبدیل بهمثال
int()عدد صحیحint("42") → 42
float()عدد اعشاریfloat("3.14") → 3.14
str()رشتهstr(42) → "42"
bool()بولینbool(1) → True
list()لیستlist("abc") → ['a','b','c']
tuple()تاپلtuple([1,2]) → (1,2)
set()مجموعهset([1,1,2]) → {1,2}
dict()دیکشنریdict(a=1) → {'a':1}

تبدیل به عدد

# رشته به int
x = int("42")
print(x)        # 42
print(type(x))  # <class 'int'>

# رشته به float
y = float("3.14")
print(y)  # 3.14

# int به float
z = float(5)
print(z)  # 5.0

# float به int (بخش اعشار حذف می‌شود)
w = int(3.99)
print(w)  # 3
تبدیل رشته به عدد فقط اگر رشته عددی باشد کار می‌کند: int("abc") خطا می‌دهد!

تبدیل به رشته

# عدد به رشته
x = str(42)
print(x)        # "42"
print(type(x))  # <class 'str'>

# float به رشته
y = str(3.14)
print(y)  # "3.14"

# بولین به رشته
z = str(True)
print(z)  # "True"

تبدیل به بولین

این مقادیر False می‌شوند، بقیه True:

# False
print(bool(0))      # False
print(bool(""))     # False (رشته خالی)
print(bool([]))     # False (لیست خالی)
print(bool(None))   # False

# True
print(bool(1))      # True
print(bool("متن"))  # True
print(bool([1]))    # True

تبدیل بین کالکشن‌ها

# لیست به تاپل
my_list = [1, 2, 3]
my_tuple = tuple(my_list)
print(my_tuple)  # (1, 2, 3)

# تاپل به لیست
t = (1, 2, 3)
l = list(t)
print(l)  # [1, 2, 3]

# لیست به set (حذف تکرار)
numbers = [1, 2, 2, 3, 3]
s = set(numbers)
print(s)  # {1, 2, 3}

# رشته به لیست
word = "Python"
letters = list(word)
print(letters)  # ['P', 'y', 't', 'h', 'o', 'n']

تبدیل به دیکشنری

# از لیست جفت‌ها
pairs = [("a", 1), ("b", 2), ("c", 3)]
d = dict(pairs)
print(d)  # {'a': 1, 'b': 2, 'c': 3}

# با آرگومان‌های کلیدی
d = dict(name="علی", age=25)
print(d)  # {'name': 'علی', 'age': 25}

تبدیل ضمنی (Automatic)

پایتون گاهی خودش نوع را تبدیل می‌کند:

# int + float = float
result = 5 + 3.14
print(result)  # 8.14 (float)

# int * float = float
result = 2 * 3.5
print(result)  # 7.0 (float)

خطاهای رایج

# رشته غیرعددی
# int("سلام")  # ❌ ValueError

# تبدیل غیرممکن
# int([1, 2])  # ❌ TypeError

بررسی نوع قبل از تبدیل

value = "42"
if value.isdigit():
    number = int(value)
    print(f"عدد: {number}")
else:
    print("رشته عددی نیست")

خلاصه

ازبهتابع
strintint("42")
strfloatfloat("3.14")
int/floatstrstr(42)
listtupletuple([1,2])
tuplelistlist((1,2))
listsetset([1,1,2])

این مبحث بخشی از دوره آموزش کامل پایتون است.

ابزارهای مرتبط