مجله خبری برنامه‌نویسی پایتون

مرکز آموزش و رقابت برنامه نویسی پایتون

مجله خبری برنامه‌نویسی پایتون

مرکز آموزش و رقابت برنامه نویسی پایتون

مجله خبری برنامه‌نویسی پایتون

زبان پایتون (Python) در سال ۱۹۹۱ توسط یک برنامه‌نویس هلندی به نام گیدو ون روسوم (Guido van Rossum) ابداع شد و از آن زمان تا کنون رشد قابل ملاحظه‌ای را شاهد بوده است.

اگر چه وی در آن زمان گفته بود: «من به هیچ وجه قصد ندارم زبانی بسازم که به طور گسترده مورد استفاده قرار بگیرد» ولی اکنون و با گذشت نزدیک به سه دهه از آن تاریخ، پایتون تقریباً تمام رقبای خود را کنار زده و به اندازه‌ای محبوبیت یافته که حتی افراد مبتدی نیز کدنویسی را با آن شروع می‌کنند.

در یک سال گذشته، «Python» یکی از کلماتی بود که شهروندان آمریکایی بسیار زیاد در گوگل جستجو کرده‌اند، حتی بیشتر از نام ستاره‌های تلویزیونی.

۱۵ مطلب با کلمه‌ی کلیدی «متن کاوی با پایتون» ثبت شده است

متد بعدی extract می باشد که میخواهیم رشته های رو استخراج کنیم که منطبق بر یک سری گروههای داخل پرانتز باشد. (مجددا تاکید میکنیم عبارت داخل پرانتز را بعنوان یک گروه در نظر میگیریم.)
در رشته ورودی اگر دقت کنیم میبینم زمان ها بصورت ساعت و دقیقه می باشد. تمام دقایق در این مثال ما بصورت دو رقمی بوده اما ساعت ممکن است یک رقمی یا دو رقمی باشد. پس عبارت منظم زیر رو برای پیدا کردن زمان در رشته  و مجزا کردن آن در یک ستون دیگر استفاده میکنیم.

df['text'].str.extract(r'(\d?\d):(\d\d)')

 0 1
0 2 45
1 11 30
2 7 00
3 11 15
4 08 1

 عبارت منظم بالا در داخل یک پرانتز دو رقم رو در نظر خواهد گرفت اما علامت سوالی که در پرانتز اول وجود داره به این دلیل هست که اعلام کنه رقم اول میتونه باشه و میتونه هم نباشه که این مورد برای ساعت کاربرد داره.

نکته ای که وجود داره اینه که در رشته پنجم ما دو تا زمان داشتیم اما فقط اولی رو چاپ کرد. برای این که مشکل رو رفع کنیم از متد extractall استفاده میکنیم و عبارت منظم رو هم طوری تغییر میدهیم که علامت pm یا am بعد ساعت هم در خروجی چاپ گردد.

حالا ما چهار تا گروه میخواهیم ایجاد کنیم گروه اول کل عبارت رو چاپ میکنه در واقع زمان رو چاپ میکنه و برای همین باید کل عبارت داخل پرانتز قرار بگیره. گروه دوم ساعت، گروه سوم دقیقه و گروه چهارم هم صبح یا عصر بودن رو چاپ خواهد کرد.

df['text'].str.extractall(r'((\d?\d):(\d\d) ?([ap]m))

 

خروجی برنامه در تصویر بعدی قرار دارد.

اما یک نکته وجود علامت سوال قبل از مشخص کردن صبح یا عصر بودن هست.دلیل این مورد بخاطر وجود فاصله بین ساعت و pm یا am هست که در بعضی از رشته ها این فاصله وجود داره و در بعضی ها نبود و ما هم برای همین یک اسپس علامت سوال در نظر گرفتیم تا وجودش الزامی نباشه و اختیاری باشه.

حالا در انتها اگر بخواهیم برای ستون ها ما نامی رو مشخص کنیم کافیه از همان نام گروه برای اینکار استفاده کنیم. برای ایجاد نام گروه از دستور زیر استفاده میکنیم:

?P<GroupName>

 و بجای GroupName هر نامی که دوست داشتید میتوانید قرار بدهید.
دقت کنید محل قرار گرفتن نام گروه بعد از پرانتز باز همان گروه می باشد.

df['text'].str.extractall(r'(?P<time>(?P<hour>\d?\d):(?P<minute>\d\d)?(?P<period>[ap]m))')

 

در مثال بعدی میخواهیم از دستوری برای جایگزینی استفاده کنیم بعنوان مثال هر جا روزی در هفته وجود داشت بجای آن روز، سه تا علامت سوال قرار بدهیم.
نکته ای که اینجا وجود داره اینه که تمام روزهای هفته ما به کلمه day ختم خواهد شد. در درس قبل گفتیم w  برای تمام کارکتر ها استفاده میشه و b هم برای مشخص کردن مرز کلمه یا بعبارت بهتر پیدا کردن یک تطابق در ابتدا یا انتهای کلمه استفاده خواهد شد. 
پس میتوانیم از عبارت نامنظم زیر و متد str.replace برای هدفمون استفاده کنیم:

 

df['text'].str.replace(r'\w+day\b', '???')

0          ???: The doctor's appointment is at 2:45pm.
1       ???: The dentist's appointment is at 11:30 am.
2          ???: At 7:00pm, there is a basketball game!
3         ???: Be back home by 11:15 pm at the latest.
4    ???: Take the train at 08:10 am, arrive at 09:..

 

حالا اگر فرض بر این باشه بخواهیم تغییر در رشته ایجاد کنیم که بر مبنای کلمه مورد نظر باشه از متدهای replace  و lambda  استفاده خواهیم کرد. دقت کنید ما متد لامبدا رو در دوره مقدماتی توضیح داده بودیم.

حالا در این مثال میخواهیم بجای روزهای هفته، فقط سه حرف ابتداییش در خروجی قرار بگیره. مثلا بجای Monday عبارت Mon چاپ گردد.

df['text'].str.replace(r'(\w+day\b)', lambda x: x.groups()[0][:3])

0          Mon: The doctor's appointment is at 2:45pm.
1       Tue: The dentist's appointment is at 11:30 am.
2          Wed: At 7:00pm, there is a basketball game!
3         Thu: Be back home by 11:15 pm at the latest.
4    Fri: Take the train at 08:10 am, arrive at 09:..

 در کد فوق تابعی که با استفاده از لامبدا مشخص شده برای جدا کردن سه حرف اول روزها هفته است.
در واقع الگوی ما توسط عبارت منظم پیدا میشه و وقتی که داخل پرانتز قرار میدهیم اون رو تبدیل به یک گروه خواهیم کرد سپس توسط replace با سه حرف اول روزهای هفته جایگزین میکنیم.

برای اینکه متوجه گردیم رشته ورودی ما شامل یک کلمه خاص یا یک الگو می باشد میتوانیم از متد str.contains استفاده کنیم. مثال زیر رو ببنید:

 

df['text'].str.contains('appointment')

0     True
1     True
2    False
3    False
4    False

خوب در نتیجه مشخص شد رشته اول و دوم کلمه apppintment رو شامل میشود

 

متد بعدی برای str پیدا کردن تعداد الگوی خاصی در یک رشته می باشد. برای اینکار از تابع str.count استفاده میکنیم. در این مثال میخواهیم بدانیم چند عدد داخل یک رشته قرار دارد.
همانطور که در درس قبلی گفتیم از d برای پیدا کردن ارقام استفاده میکنیم.

 

df['text'].str.count(r'\d')

0    3
1    4
2    3
3    4
4   8

اگر به رشته ابتدایی ما توجه کنید مشاهده میکنید پنجمین رشته ما شامل 8عدد می باشد.

 

حالا اگر بخواهیم تعداد عددهای داخل یک رشته رو پیدا کنیم و بصورت لیست نمایش دهیم میتوانیم از متد str.findall برای اینکار استفاده کنیم

df['text'].str.findall(r'\d')

0                   [2, 4, 5]
1                [1, 1, 3, 0]
2                   [7, 0, 0]
3                [1, 1, 1, 5]
4    [0, 8, 1, 0, 0, 9, 0,]

 

 اگر بخواهیم زمان رو بصورت ساعت و دقیقه در پرانتز بصورت جداگانه قید کنیم کافیه عبارت منظم مربوط را بصورت گروه بندی شده با استفاده از پرانتز استفاده کنیم

 

df['text'].str.findall(r'(\d?\d):(\d\d)')

 


 

دراین درس میخواهیم نگاهی به داده های متنی و کار با کتابخانه pandas بپردازیم.

ابتدا بصورت زیر یک داده متنی معرفی خواهیم کرد .و قبل از معرفی داده، کتابخانه pandas رو ایمپورت میکنیم:


import pandas as pd

time_sentences = ["Monday: The doctor's appointment is at 2:45pm.", 
                  "Tuesday: The dentist's appointment is at 11:30 am.",
                  "Wednesday: At 7:00pm, there is a basketball game!",
                  "Thursday: Be back home by 11:15 pm at the latest.",
                  "Friday: Take the train at 08:10 am, arrive at 09:00am."]

 

برای اینکه برای ستون این داده متنی، اسمی رو قرار بدهیم از تابع DataFrame بصورت زیر استفاده میکنیم


df = pd.DataFrame(time_sentences, columns=['text'])
df

 

در حال حاضر داده ما شامل یک ستون هست که هر سطر آن یک متن می باشد و هر ورودی ما شامل یک روز در هفته و همچنین یک یا دو ساعت و دقیقه در بین متن می باشد

❇️ با استفاده از ویژگی str میتوانیم به مجموعه ای از روش های پردازش رشته دسترسی پیدا کنیم.

برای مثال متد str.len نشان دهنده طول متن یا همان تعداد کارکترهای هر رشته می باشد.

df['text'].str.len()

 

دستور بالا برای ستون text از رشته ورودی ، طول هر رشته را محاسبه میکند و در خروجی چاپ میکند. دقت کنید این ستون شامل 5 سطر می باشد و برای هر سطر بصورت جداگانه تعداد کارکترها را نمایش خواهد داد.

 

0    46
1    50
2    49
3    49
4    54

❇️ حالا اگر بخواهیم بجای تعداد کارکتر، تعداد کلمات رو مشخص کنیم. کافیه ابتدا با متد str.split کلمات یک متن رو با استفاده فاصله بین کلمات جدا کنیم سپس برای محاسبه طول اقدام کنیم:

 

df['text'].str.split().str.len()

0     7
1     8
2     8
3    10
4    10

پس برای مثال رشته اول شامل 7 کلمه و 46 کارکتر می باشد.
 

 

 

📗عبارتهای منظم چی هستند

📕متاکارکترهای مربوط به عبارت های منظم

📒ساختن یک عبارت منظم برای تاریخ


دریافت کدهای درس سوم
حجم: 1.02 کیلوبایت

❇️ متاکارکترها - انطباق کارکترها


1️⃣ . (نقطه) : تنها یک کارکتر (هر نوع کارکتری) میتواند ظاهر گردد.

2️⃣ ^  : این علامت در داخل یک کروشه به معنی این است که کارکترهای بعد از آن نباید ظاهر گردند.

3️⃣ $ : این علامت در پایان یک رشته به این معنی که عبارت مورد جستجو باید با عبارتی که قبل از $ می آید شروع شود.

4️⃣ [ ] : انطباق با مجموعه از کارکترهای درون کروشه

5️⃣ متاکارکتر [a-z] : مطابقت با یکی از رشته های a,b,...,z

6️⃣ متاکارکتر [abc^] : مطابقت با کارکترهای که a,b,c نیستند.

7️⃣ متاکارکتر a|b : مطابقت میکند با کارکتری که a یا b باشد. در جاییکه a و b رشته هستند.

8️⃣ ( ) : محدوده ای برای عملگرها

9️⃣ \ : کارکترهای خاص (t , \n , \b\)


❇️ متاکارکترها - نمادهای کارکتری

1️⃣ متاکارکتر  b\ :  انطباق مرز کلمات
2️⃣ متاکارکتر  d\ : رقم ها ، همه اعداد شامل [0-9]
3️⃣ متاکارکتر  D\ : غیر از رقم، هر موردی جز اعداد  [9-0^]
4️⃣ متاکارکتر  s\ : تمام فضاهای خالی، مانند [t\n\r\f\v\  ]
5️⃣ متاکارکتر  S\ : عدم فضاهای خالی، مانند [t\n\r\f\v\  ^]
6️⃣ متاکارکتر  w\ : تمام کارکترهای الفبایی و عددی، شامل [ _a-zA-Z0-9]
7️⃣ متاکارکتر  W\ : تمام کارکترهای غیر الفبایی و عددی، شامل [ _a-zA-Z0-9 ^]

❇️ متاکارکترها - تکرار

1️⃣ *  : تکرار صفر یا بیشتر
2️⃣ +  : تکرار یک بار یا بیشتر
3️⃣ ؟  : تکرار صفر یا یک عبارت قبل از علامت سوال
4️⃣ متاکارکتر {n} : دقیقا n بار تکرار که n بزرگتر و مساوی صفر خواهد بود.
5️⃣ متاکارکتر { ,n} : حداقل n بار تکرار
6️⃣ متاکارکتر {n, } : حداکثر n بار تکرار
7️⃣ متاکارکتر {m,n} : حداقل m بار و حداکثر n بار تکرار

🔵 اگر متاکارکتری رو متوجه نشدید نگران نباشید، در بخش های بعدی مثالهای خواهیم زد که کاملا متوجه گردید. و اگر دوست داشتید اطلاعات بیشتری در مورد این متاکارکترها داشته باشید لینک زیر رو میتونید مشاهده کنید:


❇️ مثالهای بخش متاکارکترها

مثال های این بخش رو، در ادامه همان مثال قبلیمان انجام خواهیم داد. و اگر یادتون باشه اومدیم گفتیم از re.search برای مشخص کردن عبارتهای منظم استفاده میکنیم.که عبارت منظم ما بصورت زیر بود.

@[A-Za-z0-9_]+

🔹متاکارکتر  w\  و  +

>>> [w for w in text13 if re.search('@\w+', w)]
['@UN', '@UN_Women']

همانطور که مشاهده میکنید این متاکارکتر کل حروف الفبایی، اعداد و آندرلاین رو شامل خواهد شد و لازم نیست دیگر مثل قبل بنویسیم.

❇️ مثالهای کاربردی

فرض کنید میخواهیم در یک رشته حروف صدادار انگلیسی(a,e,i,o,u) رو پیدا کنیم. بعنوان مثال رشته زیر رو در نظر خواهیم گرفت.

»> text14 = 'ouagadougou'

با استفاده از متد findall و مشخص کرن حروف صدا دار، تمام کارکترهای صدادار را بعنوان خروجی برمیگردانیم.

»> re.findall(r'[aeiou]', text14)
['o', 'u', 'a', 'a', 'o', 'u', 'o', 'u']

اگر بخواهیم حروف غیرصدادار (در واقع حروف بیصدا) را استخراج کنیم کافیه از علامت ^ بدین منظور استفاده کنیم

»> re.findall(r'[^aeiou]', text14)
['g', 'd', 'g']


📗کار با متون در جملات

📕تقسیم جملات به کلمات و کلمات به کارکتر

📒پیدا کردن کلمات منحصر به فرد(حذف موارد تکراری)

📘کار با متن در سندهای فایل


دریافت کدهای درس دوم
حجم: 3.08 کیلوبایت


✅ کار با فایل های متنی بزرگ


🔹 اگر بخواهیم فایل متنی مثل یک فایل نوت پد رو با پسوند txt رو بخوانیم باید از دستور open استفاده کنیم. فرمت دستور open به این صورت است که ورودی اول باید نام فایل یا آدرس محلی که فایل متنی در آنجا قرار دارد، باشد. ورودی دوم مد r هست که برای خوندن استفاده میشه و ورودی سوم رو هم از utf8 استفاده میکنیم، دلیل گذاشتن این ورودی سوم اینه که اگر شما این ساختار رو مشخص نکنید پایتون در خروجی یکسری کارکترهای اضافی در ابتدا نمایش خواهد داد.مثال رو ببنیم:


>>> f = open('D:\Text mining\week-1\Lesson-2\humans.txt','r',encoding='utf-8-sig')



🔹 اگر بخواهیم فایل فوق رو بصورت خط به خط بخونیم باید از دستور readline بصورت زیر استفاده کنیم. (در برنامه نویسی انتهای هر خط با n/ مشخص میشه)


>>> f.readline()

'Python is an interpreted high-levelprogramming\n'


▪️نکته ای که در این بخش هست اینه که با هر بار اجرای دستور فوق یک خط خوانده می شود. دقت کنید که پایتون زمانی انتهای خط را تشخیص خواهد داد که دکمه اینتر زده شود.بنابراین اگر پارگراف نوشته شد اما فقط در انتهای پارگراف اینتر زده شد، تمام پارگراف را یک خط تشخیص خواهد داد.


🔹 خواندن کل فایل : برای اینکه مشخص کنیم از کجای فایل متن رو باید بخونیم میتونیم از تابع seek برای اینکار استفاده کنیم. دقت کنید که عبارت داخل پرانتر تابع seek اندیس شروع خوندن رو نشون میده که پیش فرض صفر خواهد بود. حالا ما در این مثال هم میخواهیم از ابتدا شروع کنیم کل فایل رو بخونیم، بنابراین داریم :


>>> f.seek(0)

0

>>> text9 = f.read()

>>> len(text9)

2672


▪️همانطور که در بالا میبینید کل فایل از اندیس صفر شروع به خوندن میکنیم و تعداد کارکترهای که داخل متنمون قرار داشت 2672 بود.


🔹حالا اگر بخواهیم کل فایل رو خط به خط جدا کنیم و در یک لیستی قرار بدهیم کافیه از تابع splitlines برای اینکار بصورت زیر استفاده کنیم


>>> text10 = text9.splitlines()

>>> len(text10)

21

>>> text10[0]

'Python is an interpreted high-levelprogramming'


▪️تعداد خطهای این فایل 21 بود و با اندیس میتونیم هر خطی که خواستیم در خروجی نمایش بدهیم.


✅ عملیات روی فایل

🔹 اولین دستور همون تابع open است که در تایپک قبلی مثالش رو زدیم و برای باز کردن فایل ازش استفاده میکنیم .

f = open(filename,mode)

🔹توابعی که برای خواندن خط به خط فایل،یا کل فایل،یا اینکه تعداد کارکتری خاصی از فایل رو بخونیم.این توابع بصورت زیر هستند

f.readline()
f.read()
f.read(n)

🔹برای مشخص کردن موقعیت فایل از تابع seek استفاده میکنیم

f.seek(n)

🔹برای نوشتن در یک فایل از تابع write استفاده خواهیم کرد.

f.write(message)

🔹و برای بستن فایل هم از تابع close استفاده خواهیم کرد.دقت کنید بعد از پایان کار با فایل، باید با این دستور فایل باز شده رو ببندید.

f.close()

🔹و اگر میخواهید چک کنید که فایلتون بسته شده یا خیر میتونید از تابع closed برای اینکار استفاده کنید .و در پاسخ true یا false خواهد داد.

f.closed

🔻  حذف n/ از انتهای خطوط

🔹همانطور که در مثال دیده بودید وقتی یک فایل رو میخونیم یک n/ در انتهای خط به معنای پایان خط نمایش داده می شود برای اینکه بتونیم حذفش کنیم کافیه دستور rstrip که قبلا هم در موردش توضیح دادیم و گفتیم از انتها یک کارکتر رو حذف خواهد کرد استفاده میکنیم.مثال زیر رو ببنید

>>> f = open('D:\Text mining\week-1\Lesson-2\humans.txt','r',encoding='utf-8-sig')

>>> text11 = f.readline()
>>> text11
'Python is an interpreted high-levelprogramming\n'

>>> text11.rstrip()
'Python is an interpreted high-levelprogramming'

✅ مثالهای گوناگون


🔹 تابع split بصورت پیش فرض رشته ها رو از طریق space یا همون فاصله جدا میکنه و کلمات رو استخراج میکنه، اما ما میتونیم داخل پرانتز کارکتر دلخواه خودمون رو بعنوان میعار جدا کردن در نظر بگیریم. مثال زیر رو ببنید:


>>> text4 = "ouagadougou"

>>> text5 = text4.split('ou')

>>> text5

['', 'agad', 'g', '']


▪️خوب در مثال بالا رشته رو بر اساس کارکتر ou جدا کرد.دقت کنید که ما text4 رو نمیتونیم بر اساس میعار فاصله جدا کنیم چون هیچ فاصله ای در این رشته وجود نداره و اگر داخل پرانتر دستور split خالی باشه به ارور خواهیم خورد.


🔹 در دوره مقدماتی در مورد لیست صحبت کردیم و اگر بخواهیم text4 رو تبدیل به لیست کنیم کارکتر به کارکتر داخل یک لیست برامون قرار میده.


>>> list(text4)

['o', 'u', 'a', 'g', 'a', 'd', 'o', 'u', 'g', 'o', 'u']


🔹با استفاده از حلقه for هم امکان ایجاد لیست فوق وجود داره، مثال رو ببنید.


>>> [c for c in text4]

['o', 'u', 'a', 'g', 'a', 'd', 'o', 'u', 'g', 'o', 'u']


🔹 حالا اگر بخواهیم دوباره ou رو به text5 متصل کنیم از دستور join برای اینکار استفاده میکنیم.و نحوه استفاده بصورت زیر خواهد بود


>>> 'ou'.join(text5)

'ouagadougou'



🔹یک رشته جدید تو این مثال خواهیم زد که ابتدای رشته دوتا فاصله وجود داره؛ ما اول میاییم با دستور split کلمات رو جدا میکنیم و اتفاقی که میفته فاصله های ابتدایی رو بعنوان یک کلمه مجزا درنظر میگیره


>>> text6 = '  a quick brown fox jumped over the lazy dog'

>>> text6.split(' ')

['', '', 'a', 'quick', 'brown', 'fox', 'jumped', 'over', 'the', 'lazy', 'dog']



🔹حالا اگر بخواهیم این فاصله های اضافی رو برداریم و با توجه به اینکه این موضوع برای مباحث متن کاوی مهم هست که موارد اضافه رو حذف کنیم از دستور strip برای اینکار استفاده خواهیم کرد.


>>> text7 = text6.strip()

>>> text7.split(' ')

['a', 'quick', 'brown', 'fox', 'jumped', 'over', 'the', 'lazy', 'dog']



▪️همانطور که در بالا مشاهده میکنیم دیگر فاصله ها در لیست ما قرار ندارند.



مثال دستور find و replace


🔹 در متن جدید میخواهیم کارکتر o رو پیدا کنیم اگر از دستور find استفاده کنیم اولین کارکتر o در متن رو پیدا میکنه و اندیسش رو بعنوان خروجی برمیگردونه. (اندیس در پایتون از صفر شروع میشه)


>>> text8 = "a quick brown fox jumped over the lazy dog"

>>> text8.find('o')

10


🔹 اگر دستور rfind برای اینکار استفاده کنید آخرین کارکتر o در رشته رو پیدا میکنه، بعبارتی از آخر رشته جستجو رو انجام میده.


>>> text8.rfind('o')

40


🔹 و برای جایگزینی کارکتر o با مقدار صفر (0) میتونیم از دستور replace بصورت زیر استفاده کنیم


>>> text8.replace('o','0')

'a quick br0wn f0x jumped 0ver the lazy d0g'

✅ معرفی توابع پایتون برای رشته ها


🔹 تو تایپیک قبل در مورد اینکه چه توابعی برای کلمات در پایتون وجود داره رو گفتیم، الان میخواهیم توابع رو برای رشته ها بگیم. باز یک تعریف کلی داریم و مثال ها رو تو بخش های بعدی خواهیم زد.


1️⃣ تبدیل کردن به حروف کوچک و بزرگ رشته ها و همچنین تبدیل یک رشته به حالت titlecase


s.upper()  ;  s.lower()  ;  s.title()


🔹 نکته ای که در توابع بالا نسبت به توابع مربوط به کلمات هست اینه که ما اینجا is رو نداریم. و در واقع اینجا نماییم بررسی کنیم که، آیا رشته ما با حروف بزرگ تشکیل شده یا کوچک.بلکه اینجا کار تبدیل کردن رو انجام خواهیم داد.


2️⃣ جدا کردن کلمات که بارها تو اسلایدهای قبل ازش استفاده کردیم و در بخش های بعدی هم استفاده خواهیم کرد.


s.split()


3️⃣حالا اگر بخواهیم یک سند رو یا یک پارگراف رو بر اساس خطوط جدا کنیم میتونیم از تایع زیر استفاده کنیم.


s.splitlines()


🔹نکته ای که اینجا هست و شاید براتون سوال باشه اینه چطور میتونیم در IDLE پایتون، یک رشته رو در چند خط بنویسیم.برای اینکار کافیه کوتیشن که برای رشته در ابتدا و انتهاش بکار برده میشه بجای یکی از سه تا استفاده کنیم.


>>> s="""how are

you today"""

>>> s

'how are\nyou today'


4️⃣ تابع join برای اتصال رشته ها به هم هست که ما تو بخش های بعدی مثال های خواهیم زد.


s.join()


5️⃣ تابع بعدی برای حذف می باشد وقتی از strip استفاده میکنیم و داخل پرانتر کارکتری رو وارد میکنیم سبب میشه که اون کارکتر از کل رشته حذف بشه و اگر از rsrtip استفاده کنیم از انتهای رشته فقط یک موردش حذف خواهد شد . حالا مثالهای رو در بخش های بعدی خواهید دید.


s.strip()  ;  s.rstrip()


6️⃣ دستور بعدی برای یافتن یک رشته یا کارکتر داخل رشته دیگه استفاده میشه.اگر عبارت داخل پرانتر در رشته بود اندیس شروع اون عبارت رو بعنوان خروجی برمیگردونه. اما یک تفاوت اساسی در rfind وجود داره اینه که در این تابع حتما باید کلمه مورد نظر بصورت جدا باشه.ما برای این مورد خاص همینجا یک مثال میزنیم


s.find()  ;  s.rfind()


مثال 


>>> s1 = "this is really a string example....wow!!!";

>>> s2 = "is";

>>> s1.find(s2)

2

>>> s1.rfind(s2)

5


🔸 خوب تو مثال بالا کاملا تفاوت این دو تابع مشخصه که ما در rfind کلماتی رو پیدا میکنیم که مجزا باشند و ترکیب شده با حروف دیگری نباشند.


7️⃣ آخرین دستور این بخش دستور جایگزینی یا همون replace هست که میاد تو رشته میگرده و اگر عبارت u  وجود داشت با v جایگزین خواهد کرد.


s.replace(u,v)


🔘 در آخر باید بگم حتما مثالهای گوناگونی برای این بخش خواهیم زد. تا تمام این توابع، کامل توضیح داده باشیم