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

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

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

📘 آموزش مقدماتی پایتون

📘 آموزش تکمیلی پایتون

📘 آموزش پردازش تصویر با پایتون

📘 آموزش یادگیری ماشین با پایتون

📘 آموزش تشخیص ایمیل های اسپم با پایتون

۲۶ مطلب با موضوع «برنامه نویسی» ثبت شده است

درس چهارم (داده های متنی و کتابخانه pandas)

دراین درس میخواهیم نگاهی به داده های متنی و کار با کتابخانه 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 کارکتر می باشد.
 

 

 

۰ نظر موافقین ۰ مخالفین ۰

درس چهارم (نصب jupyter notebook)

در درس چهارم تصمیم داریم وارد یک محیط جدید کدنویسی به نام jupyter notebook شویم و کدهامون رو تو این محیط اجرا کنیم.

طریقه نصب و کار کردن تو این محیط رو قبلا در دوره یادگیری ماشین بصورت ویدئویی ضبط کرده بودیم و شما میتونید بصورت رایگان از طریق لینک زیر بهش دسترسی داشته باشید.

 

مشاهده ویدئو

۰ نظر موافقین ۰ مخالفین ۰

📚خلاصه مواردی که در درس سوم کار کردیم:

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

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

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


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

۰ نظر موافقین ۰ مخالفین ۰

درس سوم (عبارت های منظم برای تاریخ ها)

عبارت های منظم برای تاریخ ها


تاریخ ها معمولا به شکل متنوعی نوشته خواهند شد. بعنوان مثال اگر بخواهیم بنویسیم 23 اکتبر 2018 میتوانیم به هر یک از صورتهای پایین بنویسیم:


23-10-2018

23/10/2018

23/10/18

10/23/2018

23 oct 2018

23 october 2018

oct 23, 2018

october 23, 2018


عبارت منظمی که میتوانیم برای تاریخ بنویسیم تا  مورد اول، دوم و چهارم رو پوشش بده میتونه به این صورت باشه:


\d{2}[/-]\d{2}[/-]\d{4}


بعنوان مثال رشته زیر رو در نظر بگیرید: (n/  اشاره به خط بعد دارد.)


» datestr = '23-10-2018 \n23/10/2018 \n23/10/18 \n10/23/2018 \n23 oct 2018 \n23 october 2018 \noct 23, 2018 \noctober 23, 2018\n'


» re.findall(r'\d{2}[/-]\d{2}[/-]\d{4}', datestr)

['23-10-2018', '23/10/2018', '10/23/2018']


خوب همانطور که در خروجی کد فوق مشاهده میکنید تاریخ های که ابتدا دو رقمی بودن سپس با علامتهای / و - جدا شدند و دوباره دو رقم و علامت / و - تکرار شدند و در نهایت نیز 4 رقم برای سال ذکر شده بعنوان خروجی نمایش داده خواهند شد.


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


» re.findall(r'\d{2}[/-]\d{2}[/-]\d{2,4}', datestr)

['23-10-2018', '23/10/2018', '23/10/18', '10/23/2018']



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

re.findall(r'\d{1,2}[/-]\d{1,2}[/-]\d{2,4}', datestr)




عبارت های منظم برای تاریخ ها (برای چهار حالت دوم)

برای این حالت میتونیم عبارت منظم رو بصورت زیر بنویسیم شاید در نگاه اول باید خروجی درست به ما بده و حالت زیر رو بعنوان خروجی برگردونه :
23 oct 2018

» re.findall(r'\d{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{4}', datestr)

['Oct']

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

» re.findall(r'\d{2} (?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{4}', datestr)

['23 Oct 2018']

حالا برای بهبودش که حالت زیر رو هم در نظر بگیره از این روش استفاده میکنیم:
23 october 2018

» re.findall(r'\d{2} (?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[a-z]* \d{4}', datestr)

['23 Oct 2018', '23 October 2018']

متاکارکتر *[a-z] سبب میشه تمام کارکترهای بعد از ماه تکرار میشه رو هم در نظر بگیره و این کارکترها میتونه صفر یا هر تعدادی باشه.

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

» re.findall(r'(?:\d{2} )?(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[a-z]* (?:\d{2}, )?\d{4}', datestr)

['23 Oct 2018', '23 October 2018', 'Oct 23, 2018', 'October 23, 2018']

۰ نظر موافقین ۰ مخالفین ۰

درس سوم (متاکارکترها)

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


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']

۰ نظر موافقین ۰ مخالفین ۰

درس سوم (پیدا کردن الگوهای با عبارتهای منظم)

❇️ پیدا کردن الگوهای با عبارتهای منظم


اینکه بگوییم چیزی با @ شروع میگردد یک الگو می باشد برای ما کافی نیست. بلکه نشانه های است که با @ شروع می شوند و چیزی رو باید دنبال کنند.

برای مثال چگونه میتوانیم تشخیص دهیم که اگر @ در جمله ای ذکر شد آن شامل الگو خاص ما خواهد شد یا خیر. حالتهای که ممکن است بعد از @ وارد شود و آن کلمه را تبدیل به یک الگو خاص نمایید رو یادداشت میکنیم:


انظباق چیزهای بعد از @


- حروف الفبا

-اعداد

-نشانه های خاصی مانند (_)


مثال : 

@UN_Spokesperson

@Python

@10years


بنابراین بعد از @ میتواند عبارتهای زیر قرار گیرد:

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


حروف الفبای بزرگ و کوچک، اعداد صفر تا 9 ، آندرلاین

با علامت + بعد از کروشه مشخص میکنیم این عبارتها میتوانند تکرار گردند.


حالا در ادامه نحوه نوشتن کد برای این عبارت منظم را خواهیم گفت


❇️ حالا بیاییم مثال قبل رو ادامه بدهیم جایی که کلمات با @ شروع میشدند. برای عبارتهای منظم ما یک کتابخانه re داریم که باید ابتدا ایمپورتش کنیم.

در واقع این کتابخانه برای عبارتهای منظم هست و دو حرف اول Regular Expressions هست.

برای این مورد خاص از متد search برای پیدا کردن عبارت منظمی که گفتیم استفاده میکنیم.


>>> import re

>>> [w for w in text13 if re.search('@[A-Za-z0-9_]+', w)]

['@UN', '@UN_Women']


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


یکبار دیگه عبارت منظمی که استفاده کردیم رو تجزیه و تحلیل میکنیم:

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


این عبارت منظم از سه بخش تشکیل شده است.


1- بخش اول علامت @ است و به قید و شرط باید استفاده گردد.

2- بخش دوم حروف بزرگ A-Z و حروف کوچک a-z و اعداد بین صفر تا نه خواهد بود . دقت کنید همه اعدادهای چند رقمی هم از این 10 عدد صفر تا نه تشکیل شده اند. همچنین آندرلاین (_) هم میتواند قرار داشته باشد. این بخش داخل یک کروشه قرار خواهد گرفت.

3- بخش سوم علامت + است که بعد از کروشه خواهد آمد. این علامت نشان دهنده این است که عبارتهای داخل کروشه میتوانند تکرار گردند.یعنی شما میتوانید یک عدد را بارها تکرار کنید یا حروف الفبای بزرگ و کوچک را تکرار نمایید.که به این علامت متاکارکتر در عبارتهای منظم گویند که در بخش بعد توضیحات بیشتری ارائه خواهیم کرد.

دریافت



۰ نظر موافقین ۰ مخالفین ۰

درس سوم (عبارتهای منظم و پردازش روی متن های آزاد)

❇️ در درس سوم میخواهیم در مورد عبارتهای منظم و پردازش روی متن های آزاد صحبت کنیم. هنگامی که شما در حال پردازش متن آزاد هستید، عبارتها و الگوهای منظم نقش مهمی را ایفا خواهند کرد. بنابراین بگذارید یک مثال بزنیم.


❇️ متن زیر یکی از توییتهای سخنگوی سازمان ملل می باشد:


»> text12 = '"Ethics are built right into the ideals and objectives of the United Nations" #UNSG @ NY Society for Ethical Culture bit.ly/2guVelr @UN and @UN_Women'


❇️ در این متن یک اصطلاح مشاهده می شود که با # مشخص شدند و یک سری کلمات که با @ مشخص شدند و همچنین یک لینکی رو مشاهده میکنید. اگر بخواهیم این موارد رو استخراج کنیم، گام اول اینه که ما بیاییم با متد split کلمات رو از هم جدا کنیم


»> text13 = text12.split(' ')


»> text13


['"Ethics', 'are', 'built', 'right', 'into', 'the', 'ideals', 'and', 'objectives', 'of', 'the', 'United', 'Nations"', '#UNSG', '@', 'NY', 'Society', 'for', 'Ethical', 'Culture', 'bit.ly/2guVelr', '@UN', 'and', '@UN_Women']


❇️ حالا چگونه میتونیم هشتک ها  و ات ساین ها رو پیدا کنیم، خوب بریم تو بخش بعدی و این کلمات خاص رو پیدا کنیم



❇️ پیدا کردن عبارتهای خاص

🔸هشتک ها

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

»> [w for w in text13 if w.startswith('#')]
['#UNSG']

🔸 ات ساین

( کلماتی که با @ شروع میگردند) : همان دستور بالا رو مینویسیم فقط بجای شارپ از ات ساین استفاده میکنیم:

»> [w for w in text13 if w.startswith('@')]
['@', '@UN', '@UN_Women']

اتفاقی که در بالا افتاد کلمه بعد از @ نیومده و دلیلش فاصله ای است که بین @ و کلمه بعدش بود. حالا برای این مشکل باید چیکار کنیم. عبارت های خاص در این بخش لزوما باید یک کلمه ای باشد که با @ چسبیده باشد. و اگر @ به تنهایی وارد شد را نباید بعنوان یک عبارت خاص در نظر گرفت. در بخش بعدی راه حلی را ارائه خواهیم داد.

۰ نظر موافقین ۰ مخالفین ۰

📚خلاصه مواردی که در درس دوم کار کردیم:


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

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

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

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


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


۰ نظر موافقین ۰ مخالفین ۰

کار با متن در پایتون (7)

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


🔹 اگر بخواهیم فایل متنی مثل یک فایل نوت پد رو با پسوند 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'

۰ نظر موافقین ۰ مخالفین ۰

کار با متن در پایتون (6)

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


🔹 تابع 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'

۰ نظر موافقین ۰ مخالفین ۰