تا اینجا با ساخت رشتهها و ایندکسگذاری آشنا شدیم ✅
یاد گرفتیم که هر کاراکتر توی رشته یه شمارهی مخصوص به خودش داره،
شمارهها از صفر شروع میشن و با همون شماره میتونیم به هر کاراکتر دسترسی پیدا کنیم.
اما یه سؤال مهم 🤔
همیشه که نمیخوایم کل رشته رو برداریم، درسته؟
خیلی وقتها فقط یه بخش خاص از رشته به دردمون میخوره؛
مثلاً چند حرف اول، چند حرف آخر یا یه تیکه از وسط متن.
اینجاست که برش رشتهها (Slicing) وارد میشه ✂️
Slicing یعنی جدا کردن یه قسمت مشخص از رشته،
بدون اینکه بخوای دونهدونه با ایندکسها کار کنی.
ساختار کلی برش رشته 🧩
برای برش رشتهها از علامت دو نقطه : استفاده میکنیم.
فرم کلی برش به این شکله:
string[start:end]
start👉 ایندکس شروع برش (از کجا شروع کنه)end👉 ایندکس پایان برش (تا کجا بره)
🔹 نکته خیلی مهم:
پایتون از start شروع میکنه ولی به end نمیرسه ❗
به زودی با مثالهای ساده میبینی که Slicing چقدر کاربردیه و کارت رو راحت میکنه 😉
مثال:
text = "Python"
print(text[0:4])
خروجی میشه Pyth ✅
چون پایتون از اندیس ۰ شروع کرده و تا قبل از اندیس ۴ جلو رفته.
اندیس منفی چیه؟ 🤔
گاهی وقتها:
- طول رشته رو نمیدونیم
- یا میخوایم از آخر رشته شروع کنیم
اینجاست که ایندکسهای منفی خیلی به دادمون میرسن 👌
ایندکسهای منفی چطور کار میکنن؟
پایتون اجازه میده از آخر رشته هم ایندکسگذاری کنی:
-1👉 آخرین کاراکتر-2👉 یکی مونده به آخر-3👉 دو تا مونده به آخر- و همینطوری ادامه داره…
مثال ساده 👇
text = "Python"
print(text[-3:])
اینجا خروجی میشه hon ✅
چون گفتیم از سومین کاراکتر از آخر شروع کن و تا آخر رشته بیا جلو.
استفاده از step در برش رشتهها 🪜
گاهی وقتها نمیخوای همهی کاراکترها رو برداری؛
مثلاً میخوای از هر چند تا کاراکتر یکی رو انتخاب کنی.
برای این کار، پایتون یه امکان دیگه هم بهمون میده به اسم گام یا step.
شکل کلی برش با step 🧩
string[start:end:step]
start👉 از کجا شروع کنend👉 تا کجا برو (به این عدد نمیرسه)step👉 هر چند تا کاراکتر یکی برداشته بشه
text = "Python"
print(text[::2])
خروجی:
Pto
ولی هر دو تا کاراکتر یکی رو بردار.
یعنی از اول تا آخر رشته برو،
یه مثال دیگه با محدوده مشخص 👇
text = "Python"
print(text[1:6:2])
خروجی:
yhn
جمعبندی کوچولو 🧠
- ✅
stepبهت کنترل بیشتری روی برش میده - ✅ میتونی الگوهای خاص از رشته دربیاری
- ✅ برای پردازش متن خیلی کاربردیه
برش رشتهها با step واقعاً قدرتمنده،
کمکم که تمرین کنی، دستت کاملاً راه میافته 😉
text = "Python"
print(text[::2])
اشتباهات رایج 🚫
یکی از اشتباههای خیلی رایج بین مبتدیها اینه که فکر میکنن
وقتی ایندکس پایان رو توی برش مینویسن، اون کاراکتر هم توی خروجی میاد.
اما یادت باشه ❗
نه، اصلاً اینطور نیست.
قانون مهم برش رشتهها ⚠️
توی Slicing، ایندکس پایانی همیشه غیرشامل (Exclusive) هست.
یعنی:
text[0:3]
🔹 فقط کاراکترهای با اندیس ۰، ۱ و ۲ رو برمیگردونه
و اندیس ۳ اصلاً داخل خروجی نمیاد.
یه مثال برای جا افتادن 👇
فرض کن این رشته رو داریم:
text = "Python"
خروجی:
Pyt
✅ نه Pyth
چون همونطور که گفتیم، اندیس پایانی حساب نمیشه.
اگه این قانون رو یادت بمونه،
خیلی از باگها و سردرگمیها همون اول کار حل میشن 😉
تمرین 💪
یه برنامه بنویس که از کاربر یه رشته بگیره و بعد این کارها رو انجام بده:
1️⃣ سه کاراکتر اول رشته رو چاپ کن
2️⃣ فقط کاراکترهای فرد رشته رو نمایش بده
3️⃣ سه کاراکتر آخر رشته رو چاپ کن
نکته مهم 🧠
سعی کن با بازی کردن با عددهای داخل []
(شروع، پایان و step) دقیقتر بفهمی برش رشتهها چطوری کار میکنن.
🔁 عددها رو عوض کن، خروجی رو ببین،
اینجوری slicing کاملاً تو ذهنت میشینه 😉