رشته در پایتون یکی از انواع دادهای پرکاربرد در این زبان برنامهنویسی است که به عنوان توالیای از کاراکترها تعریف میشود. هر چیزی که در کوتیشنهای تکی (‘ ‘) یا دوتایی (” “) قرار گیرد، به عنوان رشته در پایتون شناخته میشود و میتواند شامل حروف، اعداد، یا نمادها باشد. برخلاف بسیاری از زبانهای دیگر، پایتون نوع دادهای جداگانه برای کاراکتر ندارد؛ بنابراین حتی یک کاراکتر تکی نیز به عنوان یک رشته در پایتون با طول ۱ در نظر گرفته میشود. این انعطافپذیری رشته در پایتون را به ابزاری قدرتمند برای پردازش متن تبدیل کرده است.
مقدمه
رشته در پایتون «String» یک نوع داده متنی است که برای نمایش و پردازش دادههای متنی استفاده میشود. رشته در پایتون میتوانند با استفاده از علامتهای نقلقول تکی (‘)، نقلقول دوتایی (“)، یا سهگانه (”’ یا “””) تعریف شوند. رشتهها غیرقابل تغییر «Immutable» هستند، به این معنی که پس از ایجاد، نمیتوان مقدار آنها را مستقیماً تغییر داد. با این حال، میتوان از روشهایی مانند الحاق (+)، تکرار (*)، برش «Slicing» و توابع داخلی مختلف برای پردازش و تغییر شکل آنها استفاده کرد.
s = "PS" print(s)
خروجی:
PS
در این مثال، متغیر s مقدار PS را نگه میدارد و به عنوان یک رشته در پایتون تعریف شده است.
ایجاد رشته
رشته در پایتون میتوانند با استفاده از علامت نقل قول تک (‘ ‘) یا نقل قول دوگانه (” “) ایجاد شوند. این ویژگی رشته در پایتون به کاربران اجازه میدهد تا بهسادگی متنهای متنوعی را تعریف و مدیریت کنند، و همین امر باعث انعطافپذیری بیشتر در کار با دادههای متنی میشود.
s1 = 'Ps' s2 = "Ps" print(s1) print(s2)
خروجی:
PS PS
رشتههای چندخطی
اگر نیاز به ایجاد رشتهای داریم که در چند خط قرار بگیرد، میتوانیم از سه علامت نقل قول (”’ یا “””) استفاده کنیم. این قابلیت رشته در پایتون به ما این امکان را میدهد که متنهای چندخطی مانند توضیحات طولانی، پیامها، یا دادههای متنی پیچیده را بهسادگی تعریف و استفاده کنیم.
s = """I am Learning Python String on programstore""" print(s) s = '''I'm a Program''' print(s)
خروجی:
I am Learning Python String on Programstore I'm a Program
دسترسی به کاراکترهای رشته در پایتون
رشته در پایتون به عنوان دنبالهای از کاراکترها تعریف میشود، بنابراین میتوان با استفاده از اندیس به کاراکترهای جداگانه آن دسترسی داشت. در این نوع داده، اندیسگذاری از عدد ۰ شروع میشود و برای دسترسی به کاراکترهای انتهایی، از اندیسهای منفی استفاده میشود (مانند ۱- برای آخرین کاراکتر). این قابلیت رشته در پایتون به ما امکان میدهد که بخشهای خاصی از متن را بهسادگی استخراج و پردازش کنیم.
s = "programstore" # Accesses first character: 'P' print(s[0]) # Accesses 5th character: 'R' print(s[4])
خروجی:
P S
توجه: دسترسی به اندیسی که خارج از محدوده باشد، باعث ایجاد خطای IndexError خواهد شد. تنها اعداد صحیح بهعنوان اندیس مجاز هستند و استفاده از انواع دیگر مانند اعشار باعث ایجاد خطای TypeError میشود.
دسترسی به رشته با استفاده از اندیسگذاری منفی
پایتون امکان دسترسی به کاراکترهای انتهایی رشته را از طریق اندیسگذاری منفی فراهم میکند. بهعنوان مثال:
- اندیس ۱- به آخرین کاراکتر اشاره میکند.
- اندیس ۲- به یکی مانده به آخرین کاراکتر اشاره میکند، و به همین ترتیب ادامه دارد.
s = "programstore" # Accesses 3rd character: 'o' print(s[-10]) # Accesses 5th character from end: 's' print(s[-5])
خروجی:
O S
برش رشته (String Slicing)
برش در پایتون روشی است برای استخراج بخشی از یک رشته با مشخص کردن اندیسهای شروع و پایان. برای این کار از علامت مربع [ ] استفاده میکنیم.
ساختار نوشتاری برای برش به صورت string [start : end] است، که:
- start اندیس شروع را مشخص میکند.
- end اندیس پایان را مشخص میکند (کاراکتر در این اندیس شامل نمیشود).
به این ترتیب، رشته از اندیس start تا end-1 استخراج میشود. همچنین میتوان از برش برای ایجاد نسخههای جدید از رشتهها استفاده کرد، بدون اینکه رشته اصلی تغییر کند، چون همانطور که گفته شد، رشته ها در پایتون غیرقابل تغییر هستند.
s = "programstore" # Retrieves characters from index 1 to 3: 'rog' print(s[1:4]) # Retrieves characters from beginning to index 2: 'pro' print(s[:3]) # Retrieves characters from index 3 to the end: 'gramstore' print(s[3:]) # Reverse a string print(s[::-1])
خروجی:
pro gramstore erotsmargorp
غیرقابل تغییر بودن رشتهها (String Immutability)
رشته در پایتون غیرقابل تغییر هست، به این معنی که پس از ایجاد، نمیتوان آنها را تغییر داد.
اگر نیاز به تغییر یا دستکاری رشتهها داشته باشیم، میتوانیم از روشهایی مانند اتصال (concatenation)، برش (slicing) یا فرمتدهی (formatting) استفاده کنیم تا رشتههای جدیدی بر اساس رشته اصلی ایجاد کنیم.
s = "programstore" # Trying to change the first character raises an error # s[0] = 'I' # Uncommenting this line will cause a TypeError # Instead, create a new string s = "P" + s[1:] print(s)
خروجی:
Programstore
حذف رشتهها
در پایتون، به دلیل غیرقابل تغییر بودن رشتهها، امکان حذف کاراکترهای جداگانه از یک رشته وجود ندارد.
با این حال، میتوان کل یک متغیر رشتهای را با استفاده از کلمه کلیدی del حذف کرد.
s = "PS" # Deletes entire string del s
نکته: اگر یک رشته را با استفاده از کلمه کلید del حذف کنید و سپس تلاش کنید به آن دسترسی پیدا کنید، خطای NameError رخ خواهد داد، زیرا متغیر دیگر وجود ندارد.
بهروزرسانی رشته
رشته در پایتون غیرقابل تغییر هستند «immutable»، به این معنی که پس از ایجاد یک رشته نمیتوان آن را تغییر داد. بنابراین، اگر بخواهید بخشی از یک رشته را بهروزرسانی کنید، باید یک رشته جدید ایجاد کنید. به عبارت دیگر، هیچگونه تغییری مستقیماً روی رشتهها اعمال نمیشود. برای انجام این کار میتوان از روشهایی مانند برش یا استفاده از متدهایی مانند ()replace برای ساخت رشتهای جدید با تغییرات دلخواه استفاده کرد. این ویژگی باعث میشود که رشتهها در پایتون ایمن و کارا باشند، زیرا تغییرات غیرمجاز روی دادهها غیرممکن است.
s = "hello program" # Updating by creating a new string s1 = "H" + s[1:] # replacnig "program" with "programstore" s2 = s.replace("program", "programstore") print(s1) print(s2)
خروجی:
Hello program hello programstore
توضیح:
برای s1: رشتهی اصلی s از اندیس ۱ تا انتهای رشته برش داده شده و سپس با حرف H برای ایجاد یک رشتهی جدید s1 ترکیب شده است.
برای s2: یک رشتهی جدید s2 ایجاد شده و با استفاده از متد ()replace، کلمهی program با programstore جایگزین شده است.
متدهای رایج رشتهها
پایتون متدهای متعددی برای کار با رشتهها ارائه میدهد. در ادامه برخی از مفیدترین آنها آورده شدهاند:
متد ()len: تابع ()len تعداد کل کاراکترهای موجود در یک رشته را برمیگرداند.
s = "programstore" print(len(s))
خروجی:
۱۲
متد ()upper: تمام کاراکترهای یک رشته را به حروف بزرگ تبدیل میکند.
متد ()lower: تمام کاراکترهای یک رشته را به حروف کوچک تبدیل میکند.
s = "Hello World" print(s.upper()) # output: HELLO WORLD print(s.lower()) # output: hello world
متد () strip: فاصلههای خالی ابتدای و انتهای یک رشته را حذف میکند.
متد replace (old, new): تمام تکرارهای یک زیررشته مشخصشده را با زیررشته دیگری جایگزین میکند.
s = " PS " # Removes spaces from both ends print(s.strip()) s = "Python is fun" # Replaces 'fun' with 'awesome' print(s.replace("fun", "awesome"))
خروجی:
PS Python is awesome
اتصال و تکرار رشتهها
- میتوانیم رشتهها را با استفاده از عملگر + به هم متصل کنیم.
- برای تکرار رشتهها نیز میتوان از عملگر * استفاده کرد.
s1 = "Hello" s2 = "World" s3 = s1 + " " + s2 print(s3)
خروجی:
Hello World
ما میتوانیم یک رشته را چندین بار با استفاده از عملگر * تکرار کنیم.
s = "Hello " print(s * 3)
خروجی:
Hello Hello Hello
فرمت بندی رشتهها
پایتون روشهای مختلفی برای گنجاندن متغیرها در داخل رشتهها ارائه میدهد. یکی از روشهای ساده و پرکاربرد استفاده از f-string است. این روش با پیشوند حرف f در کنار رشته پایتون به شما این امکان را میدهد که به راحتی متغیرها را درون رشتهها جایگذاری کنید. به علاوه، روشهای دیگری همچون استفاده از متد ()format یا اپراتور % نیز وجود دارند که برای فرمتبندی رشتهها و گنجاندن متغیرها در آنها به کار میروند. هر یک از این روشها مزایا و معایب خود را دارند، اما استفاده از f-string به دلیل سادگی و خوانایی بالا در اکثر موارد توصیه میشود.
استفاده از f-strings
سادهترین و بهترین روش برای فرمتبندی رشتهها استفاده از f-strings است.
name = "Alice" age = 22 print("Name:"+ name + " age: "+ str(age))
خروجی:
Name:Alice age: 22
استفاده از متد ()format
راه دیگری برای فرمتبندی رشته ها در پایتون استفاده از متد ()format است. این متد به شما این امکان را میدهد که متغیرها را درون یک رشته قرار دهید و آنها را به شیوهای تمیز و ساختارمند نمایش دهید. با استفاده از ()format میتوانید جایگذاری مقادیر مختلف در رشتهها را انجام دهید بدون اینکه نیاز به انجام عملیات پیچیدهای باشد.
این روش نسبت به سایر روشها مانند استفاده از اپراتور % سادهتر و خواناتر است. برای مثال، میتوانید از این متد برای ادغام مقادیر عددی یا متنی به داخل یک رشته استفاده کنید.
s = "My name is {} and I am {} years old.".format("Alice", 22) print(s)
خروجی:
My name is Alice and I am 22 years old.
استفاده از in برای بررسی عضویت در رشته
کلمه کلیدی in در پایتون برای بررسی این استفاده میشود که آیا یک زیررشته خاص درون یک رشته در پایتون وجود دارد یا خیر. با استفاده از این کلمه کلیدی، میتوان به راحتی وجود یک بخش خاص از رشته را بررسی کرد. اگر زیررشته مورد نظر در رشته اصلی وجود داشته باشد، نتیجه بررسی به صورت True و در غیر این صورت False خواهد بود. این ویژگی در برنامهنویسی برای جستجو و بررسی محتوای رشتهها بسیار مفید است.
s = "programstore" print("program" in s) print("ps" in s)
خروجی:
True False
نتیجه گیری
رشته در پایتون یکی از انواع دادههای پرکاربرد و اساسی در برنامهنویسی هستند که بهطور گسترده برای پردازش متن، نمایش خروجیها، و مدیریت دادههای متنی استفاده میشوند. این نوع داده به دلیل قابلیتهای قدرتمند خود مانند دسترسی به کاراکترها، قابلیت تغییر شکل با روشهایی چون الحاق، تکرار، و فرمتبندی، ابزار بسیار ارزشمندی برای برنامهنویسان است. رشته در پایتون همچنین امکان جستجو و جایگزینی متون، مدیریت فواصل اضافی، و استفاده از الگوهای مختلف را فراهم میکنند. با یادگیری و تسلط بر رشتهها، میتوان بسیاری از وظایف مرتبط با دادههای متنی را به سادهترین شکل ممکن انجام داد.