تبدیل نوع در پایتون
تبدیل بین انواع داده (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("رشته عددی نیست")
خلاصه
| از | به | تابع |
|---|---|---|
| str | int | int("42") |
| str | float | float("3.14") |
| int/float | str | str(42) |
| list | tuple | tuple([1,2]) |
| tuple | list | list((1,2)) |
| list | set | set([1,1,2]) |
این مبحث بخشی از دوره آموزش کامل پایتون است.