فرض کنید به ما یک رشته دادند و میخوان هر کدوم از حروف این رشته رو در یک لیست ذخیره کنیم:
👇👇👇👇👇
👇👇👇👇👇
البته این مثال ها صرفا برای یادگیری پیمایش لیست ها و ساختنشون در حلقه بود وگرنه راه حل آسون تری برای تبدیل رشته به لیست وجود داره:
کلاس توکار ()list
در صورت ممکن ورودیو که بهش میدین به لیست تبدیل میکنه:
👇👇👇👇👇
کلاس توکار ()list
در صورت ممکن ورودیو که بهش میدین به لیست تبدیل میکنه:
👇👇👇👇👇
در این فصل تا جای ممکن در باره ی لیست ها فهمیدیم.
در فصل بعد مهم ترین تفاوت لیست ها و رشته هارو یاد میگیریم.
تمرین فراموش نشه !
در فصل بعد مهم ترین تفاوت لیست ها و رشته هارو یاد میگیریم.
تمرین فراموش نشه !
> > > آموزش زبان برنامه نویسی پایتون از 0 تا 100
> > > قسمت یازدهم
سلام خدمت همه علاقه مندان به پایتون.
اگر یادتون باشه در قسمت قبل با چند کلاس و تابع تو کار آشنا شدیم و ساختار داده ای لیست رو معرفی کردیم.
در این قسمت قرار شد مهم ترین فرق ساختار داده ای رشته و لیست رو یاد بگیریم، که این امر میتونه برای نوشتن برنامه های کاربردی خیلی مهم باشه.
> > > قسمت یازدهم
سلام خدمت همه علاقه مندان به پایتون.
اگر یادتون باشه در قسمت قبل با چند کلاس و تابع تو کار آشنا شدیم و ساختار داده ای لیست رو معرفی کردیم.
در این قسمت قرار شد مهم ترین فرق ساختار داده ای رشته و لیست رو یاد بگیریم، که این امر میتونه برای نوشتن برنامه های کاربردی خیلی مهم باشه.
بهتره اول یک بار دیگه شباهت ها رو مرور کنیم.
_ هم لیست ها و هم رشته ها قابلیت این رو داشتن در اعداد صحیح ضرب بشن.
_ هم لیست ها و هم رشته ها قابلیت این رو داشتند با ساختار داده ای همجنس خودشون جمع بشن.
_میتونستیم با استفاده از براکت ها به کاراکتر ها در رشته ها و به اعضا در لیست دسترسی داشته باشیم و قسمتی از یک رشته یا لیست رو به دلخواه جدا کنیم.
_ هم لیست ها و هم رشته ها قابلیت این رو داشتن در اعداد صحیح ضرب بشن.
_ هم لیست ها و هم رشته ها قابلیت این رو داشتند با ساختار داده ای همجنس خودشون جمع بشن.
_میتونستیم با استفاده از براکت ها به کاراکتر ها در رشته ها و به اعضا در لیست دسترسی داشته باشیم و قسمتی از یک رشته یا لیست رو به دلخواه جدا کنیم.
مهمترین فرق این دو ساختار اینه که شما میتونید اعضای موجود در لیست رو تغییر بدید، ولی نمیتونید کاراکتر های موجود در رشته رو تغییر بدید.
در آموزشهای آنلاین وقتی این بحث رو مطرح میکردم بعضی ها میگفتن در رشته ها هم این عمل قابل انجامه و مثال زیر رو براش میزدن.
> > > test = "salam"
> > > test = test[:3]
و با یه نگاه حق به جانب (البته آموزش آنلاین بود ولی خوب این نگاه رو حس میکردم) منتظر جواب بعدی من بودند !
کاری که تو این مثال انجام شده در واقع ساختن یک متغیر جدید هستش، نه تغییر مقدار اون.
> > > test = "salam"
> > > test = test[:3]
و با یه نگاه حق به جانب (البته آموزش آنلاین بود ولی خوب این نگاه رو حس میکردم) منتظر جواب بعدی من بودند !
کاری که تو این مثال انجام شده در واقع ساختن یک متغیر جدید هستش، نه تغییر مقدار اون.
خوب در این قسمت میخوام فرق بین تابع و کلاس رو بهتون بگم. البته نه فرق کلی، بلکه به اندازه نیاز.
خوب برنامه نویسان 0 کیلومتر الان نه میدونن کلاس چیه و نه میدونن تابع چیه !
من هم هنوز صلاح نمیدونم که این دو مبحث رو تدریس کنم، پس چرا میخوام فرقشون رو بگم؟
به زودی میفهمید !
خوب برنامه نویسان 0 کیلومتر الان نه میدونن کلاس چیه و نه میدونن تابع چیه !
من هم هنوز صلاح نمیدونم که این دو مبحث رو تدریس کنم، پس چرا میخوام فرقشون رو بگم؟
به زودی میفهمید !
تابع:
اگر بخوام خیلی خیلی ساده بیانش کنم، میشه بهش گفت یک قطعه کد برنامه نویسی که میتونه ورودی یا ورودی هایی رو بگیره و در صورت لزوم خروجی هم داشته باشه و هدف خاصی رو دنبال میکنه.
کلاس:
کلاس هم درست مثل تابع میتونه ورودی یا ورودی هایی داشته باشه. تفاوت مهمش اینه که کلاس میتونه شامل چندین تابع باشه.
در واقع کلاس و تابع مثال استان و شهرستان رو دارن!
اگر بخوام خیلی خیلی ساده بیانش کنم، میشه بهش گفت یک قطعه کد برنامه نویسی که میتونه ورودی یا ورودی هایی رو بگیره و در صورت لزوم خروجی هم داشته باشه و هدف خاصی رو دنبال میکنه.
کلاس:
کلاس هم درست مثل تابع میتونه ورودی یا ورودی هایی داشته باشه. تفاوت مهمش اینه که کلاس میتونه شامل چندین تابع باشه.
در واقع کلاس و تابع مثال استان و شهرستان رو دارن!
متد:
یا همون method
به تابع یا تابع هایی که داخل یک کلاس هستند متد گفته میشه.
قبلا هم گفتم که وقتی شما یک رشته میسازید در واقع یک شئ از کلاس ()str میسازید و وقتی دارید یک عدد رو پردازش میکنید دارید یک شئ از کلاس ()int رو پردازش میکنید !
خوب این کلاس ها هم شامل یک سری متد های مفید برای کار کردن با شئ مورد نظر هستند.
این متد ها انقدر مفید هستند و زندگی رو برای برنامه نویسان آسون میکنند که من صلاح دیدم بهتون طرز استفاده ازشون رو یاد بدم قبل از این که به تابع و کلاس برسیم !
یا همون method
به تابع یا تابع هایی که داخل یک کلاس هستند متد گفته میشه.
قبلا هم گفتم که وقتی شما یک رشته میسازید در واقع یک شئ از کلاس ()str میسازید و وقتی دارید یک عدد رو پردازش میکنید دارید یک شئ از کلاس ()int رو پردازش میکنید !
خوب این کلاس ها هم شامل یک سری متد های مفید برای کار کردن با شئ مورد نظر هستند.
این متد ها انقدر مفید هستند و زندگی رو برای برنامه نویسان آسون میکنند که من صلاح دیدم بهتون طرز استفاده ازشون رو یاد بدم قبل از این که به تابع و کلاس برسیم !
کافیه بعد از ساختار داده ای و یا متغیری که ساختار داده ایمون رو توش ذخیره کردیم، با رعایت یک نقطه اسم متد مورد نظر رو که باید در کلاس همون ساختار داده ای باشه، بیاریم! البته همونطور که گفتم متد ها تابع هستند و تابع هم پرانتز داره و میتونه ورودی یا ورودی هایی داشته باشه، که ورودی ها با کاما یا , از هم جدا میشن.
برای مثال فکر کنید میخوایم از متد ()isdigit برای رشته ها استفاده کنیم:
"puriya".isdigit()
یا
test = "puriya"
test.isdigit()
در اینجا به اصطلاح میگیم متد ()isdigit روی رشته ظاهر شده، توجه کنید که هر ساختار داده ای متد های خاص خودش رو داره.
برای مثال فکر کنید میخوایم از متد ()isdigit برای رشته ها استفاده کنیم:
"puriya".isdigit()
یا
test = "puriya"
test.isdigit()
در اینجا به اصطلاح میگیم متد ()isdigit روی رشته ظاهر شده، توجه کنید که هر ساختار داده ای متد های خاص خودش رو داره.
چند متد خوب از کلای ()str :
isdigit() :
اگر رشته ای که این متد روش ظاهر شده باشه، قابل تبدیل به ساختار داده ای عددی باشه، مقدار True رو برمیگردونه و در غیر این صورت مقدار False
split() :
اگر این متد رو روی یک رشته ظاهر کنید، به صورت پیشفرض کاراکتر یا کاراکتر هایی رو که با فاصله از هم جدا شدند رو جدا میکنه و تحت ساختار داده ای لیست بهمون میده.
همچنین اگر یک حرف رو به عنوان ورودی به این متد بدیم، به جای فاصله از اون حرف استفاده میکنه و اگر یک عدد هم در ورودی دوم بهش بدیم به اندازه همون عدد برای جداسازی کاراکتر یا کاراکتر ها تلاش میکنه.
lower() :
کاراکتر های لاتین بزرگ موجود در رشته رو به حروف کوچک لاتین تبدیل میکنه.
upper() :
درست برعکس ()lower ، یعنی حروف کوچک رو به حروف بزرگ تبدیل میکنه.
find():
یک رشته به عنوان ورودی دریافت میکنه و در رشته ای که این متد روش ظاهر شده به دنبال اون رشته ورودی میگرده و اگر پیدا کرد اون رشته رو، عدد ایندکس ابتدای اون رشته ورودیو برمیگردونه و اگر پیدا نشد عدد 1- رو میده.
replace() :
دو رشته قبول میکنه و در رشته ای که روش ظاهر شده جای اون دو رشته ورودی رو با هم عوض میکنه.
تصویر پایین به درک مطلب کمک میکنه :
isdigit() :
اگر رشته ای که این متد روش ظاهر شده باشه، قابل تبدیل به ساختار داده ای عددی باشه، مقدار True رو برمیگردونه و در غیر این صورت مقدار False
split() :
اگر این متد رو روی یک رشته ظاهر کنید، به صورت پیشفرض کاراکتر یا کاراکتر هایی رو که با فاصله از هم جدا شدند رو جدا میکنه و تحت ساختار داده ای لیست بهمون میده.
همچنین اگر یک حرف رو به عنوان ورودی به این متد بدیم، به جای فاصله از اون حرف استفاده میکنه و اگر یک عدد هم در ورودی دوم بهش بدیم به اندازه همون عدد برای جداسازی کاراکتر یا کاراکتر ها تلاش میکنه.
lower() :
کاراکتر های لاتین بزرگ موجود در رشته رو به حروف کوچک لاتین تبدیل میکنه.
upper() :
درست برعکس ()lower ، یعنی حروف کوچک رو به حروف بزرگ تبدیل میکنه.
find():
یک رشته به عنوان ورودی دریافت میکنه و در رشته ای که این متد روش ظاهر شده به دنبال اون رشته ورودی میگرده و اگر پیدا کرد اون رشته رو، عدد ایندکس ابتدای اون رشته ورودیو برمیگردونه و اگر پیدا نشد عدد 1- رو میده.
replace() :
دو رشته قبول میکنه و در رشته ای که روش ظاهر شده جای اون دو رشته ورودی رو با هم عوض میکنه.
تصویر پایین به درک مطلب کمک میکنه :