اندیسگذاری، Slicing و تبدیل دادهها در پایتون
اندیسگذاری، Slicing و تبدیل دادهها در پایتون
اندیسگذاری، Slicing و تبدیل دادهها در پایتون
در این مقاله با دو مهارت بسیار پرکاربرد کار با متنها و دنبالهها یعنی اندیسگذاری(Indexing)، برشدادن (Slicing) و در نهایت تبدیل نوع دادهها (Type Casting) آشنا میشویم.
۱. اندیسگذاری (Indexing) چیست؟
در پایتون، به هر حرف یا کاراکتر یک شماره جایگاه یا اندیس (Index) اختصاص داده میشود تا بتوانیم به آن دسترسی داشته باشیم.پایتون دو نوع شمارهگذاری داردبه عنوان مثال برای متغییری با مقداری از نوع رشته (متن) مانند "Python" داریم :
- اندیس مثبت: از چپ به راست و از
0شروع میشود. - اندیس منفی: از راست به چپ و از
1-شروع میشود.
| کاراکتر | n | o | h | t | y | p |
|---|---|---|---|---|---|---|
| اندیس مثبت | 5 | 4 | 3 | 2 | 1 | 0 |
| اندیس منفی | 1- | 2- | 3- | 4- | 5- | 6- |
هر ایندکس یک مقدار یا value را بر می گرداند .

# ==========================================
# 1. اندیسگذاری (Indexing)
# ==========================================
text = "Python"
first_char = text[0] # 'P'
third_char = text[2] # 't'
last_char = text[-1] # 'n'
print("First char:", first_char)
print("Third char:", third_char)
print("Last char:", last_char)
۲. برشدادن (Slicing) چیست؟
اگر به جای یک حرف، بخشی از متن (مثلاً سه حرف اول) را بخواهیم، از برشدادن با فرمول زیر استفاده میکنیم:
sequence[start:stop:step]
- start: اندیسی که برش از آنجا شروع می شود(شامل خود این اندیس میشود با پیش فرض ابتدای رشته یعنی 0).
- stop: اندیس پایان (شامل خود این اندیس نمیشود با پیش فرض انتهایی رشته یعنی اندیس 1-).
- step: گام حرکت چند تا چندتا جلو برود (پیشفرض برابر با
1).
- نکته طلایی: اگر
stepبرابر-1باشد، متن را برعکس میکند ([::-1]).

# ==========================================
# 2. برشدادن (Slicing)
# ==========================================
sentence = "Python Programming"
part1 = sentence[0:6] # 'Python'
part2 = sentence[7:] # 'Programming'
step_slice = sentence[::2] # 'Pto rgamn'
reversed_text = sentence[::-1] # معکوس رشته
print("Part 1:", part1)
print("Part 2:", part2)
print("Step slice:", step_slice)
print("Reversed:", reversed_text)
۳. تبدیل انواع دادهها (Type Casting)
گاهی نیاز است نوع داده را تغییر دهیم؛ مثلاً عدد متنی "25" را به عدد واقعی 25 تبدیل کنیم تا بتوانیم با آن محاسبات ریاضی انجام دهیم. برای تغییر نوع یک متغیر از توابع زیر استفاده میکنیم:
| تابع | کاربرد | مثال | خروجی |
|---|---|---|---|
int() | تبدیل به عدد صحیح | int("25") | 25 |
float() | تبدیل به عدد اعشاری | float("18.5") | 18.5 |
str() | تبدیل به رشته | str(100) | '100' |
bool() | تبدیل به مقدار منطقی | bool(0) | False |
نکته: در تبدیل به
bool، فقط عدد صفر (0)، رشتههای خالی ("") وNoneبرابر باFalseهستند و بقیه مقادیرTrueمیشوند.
# ==========================================
# 3. تبدیل انواع دادهها (Type Casting)
# ==========================================
num_str = "25"
price_str = "18.5"
count_int = 100
# تبدیل به عدد صحیح و اعشاری
age = int(num_str)
price = float(price_str)
# تبدیل به رشته
text_count = str(count_int)
# تبدیل به بولین
is_empty = bool("") # False
is_zero = bool(0) # False
is_valid = bool("Data") # True
is_positive = bool(15) # True
print("Age + 5:", age + 5)
print("Price + 1.5:", price + 1.5)
print("Concatenated:", "Count is " + text_count)
print("Boolean checks:", is_empty, is_zero, is_valid, is_positive)
خطاهای متداول (Common Errors)
در ابتدای یادگیری پایتون، برخورد با پیامهای خطا کاملاً طبیعی است. این خطاها راهنمای شما برای رفع اشکال کد هستند:
| نوع خطا | علت وقوع | راه پیشگیری |
|---|---|---|
IndexError | صدا زدن اندیسی خارج از طول متن یا دنباله | بررسی طول رشته با تابع len() |
ValueError | تبدیل رشتهی نامعتبر به عدد | اطمینان از عددی بودن محتوای رشته قبل از تبدیل |
TypeError | تلاش برای اتصال (جمع) رشته و عدد بدون تبدیل نوع | استفاده از str() یا فرمت f-string |
NameError | استفاده از متغیری که هنوز تعریف نشده یا غلط املایی دارد | بررسی املای متغیر و رعایت ترتیب خطوط کد |
SyntaxError | رعایت نکردن قواعد دستوری (مثل نبستن کوتیشن یا پرانتز) | بررسی بسته بودن تمام جفتهای "" و () |
مثال
# ========================================================
# بررسی ۵ خطای متداول
# ========================================================
# 1.خارج از محدوده بودن اندیس
text = "Python"
# کد اشتباه:
print(text[10]) #-> IndexError
# 2. تبدیل مقدار نامعتبر
raw_input = "25a"
# کد اشتباه:
age = int(raw_input) #-> ValueError
# 3.ترکیب انواع دادهی ناسازگار
score = 20
# کد اشتباه:
msg = "Score is: " + score #-> TypeError
# 4.متغیر تعریفنشده یا غلط املایی
# کد اشتباه:
print(user_name) #-> NameError
# روش صحیح:
user_name = "Sina"
print("User Name:", user_name)
# 5.خطای ساختاری در بستن کوتیشنها یا پرانتزها
# کد اشتباه:
greeting = 'Hello" #-> SyntaxError
