با یک روش هوشمندانه تونستیم دیتا بین تگ های صفحه HTML رو هم جداسازی کنیم.
متغیر in_tag رو ساختیم برای این که داخل حلقه بتونیم پردازش کنیم که اگر مشغول جداسازی تگ بودیم مقدارش True باشه و اگر تگ رو بستیم مقدارش False باشه که اگر زمان بسته بودن تگ به کاراکتر دیگه ای برخوردیم مطمئن باشیم که کاراکتر بین تگ ها نیست و جزو دیتا هستش !
البته باز هم این برنامه کامل نیست و هنوز شما نمیتونید مقادیر و متغیر های صفحات HTML رو مثل bgcolor="red" رو جداسازی کنید، که زمان معرفی تابع کاملش میکنم : )
متغیر in_tag رو ساختیم برای این که داخل حلقه بتونیم پردازش کنیم که اگر مشغول جداسازی تگ بودیم مقدارش True باشه و اگر تگ رو بستیم مقدارش False باشه که اگر زمان بسته بودن تگ به کاراکتر دیگه ای برخوردیم مطمئن باشیم که کاراکتر بین تگ ها نیست و جزو دیتا هستش !
البته باز هم این برنامه کامل نیست و هنوز شما نمیتونید مقادیر و متغیر های صفحات HTML رو مثل bgcolor="red" رو جداسازی کنید، که زمان معرفی تابع کاملش میکنم : )
در قسمت قبل یاد گرفتیم که حتما لازم نیست شرط حلقه برقرار نباشه تا حلقه تموم شه، و میتونیم با دستور break حلقه رو متوقف کنیم !
همچنین دستوری هم داریم که با استفاده ازش میشه کاری کرد که یک سری دستورات بدنه ی حلقه (به دلخواه برنامه نویس) نادیده گرفته شه و برنامه برگرده به بالای حلقه !
اسم این دستور continue هستش، که با یه تصویر بیشتر باهاش آشناتون میکنم:
همچنین دستوری هم داریم که با استفاده ازش میشه کاری کرد که یک سری دستورات بدنه ی حلقه (به دلخواه برنامه نویس) نادیده گرفته شه و برنامه برگرده به بالای حلقه !
اسم این دستور continue هستش، که با یه تصویر بیشتر باهاش آشناتون میکنم:
کسانی که با دیدن قسمت:
new_name2 = name[::2]
تعجب کردن و از خودشون پرسیدن این چی بود؟ همون کسانی هستند که تاکید من رو واسه به ترتیب خوندن مباحث جدی نگرفتن ! چون این قسمت قبلا آموزش داده شده.
همونطور که دیدید دستور continue در بدنه ی شرط if کاری کرد که قسمت پایین تر از کد نادیده گرفته بشه!
همچنین اگر قبل از اجرای این دستور به مقدار index یکی اضافه نمیکردیم، یه حلقه ی بی پایاین میساختیم، چون وقتی به بالای حلقه میرفت مقدار index تغییر نکرده بود و همچنان کاراکتر ما نقطه بود !
خیلی جاها هم میشه از continue استفاده کرد و هم میشه استفاده نکرد، در صورتی که استفاده ازش بهتره و دلیلش هم سرعت اجرای برنامست !
new_name2 = name[::2]
تعجب کردن و از خودشون پرسیدن این چی بود؟ همون کسانی هستند که تاکید من رو واسه به ترتیب خوندن مباحث جدی نگرفتن ! چون این قسمت قبلا آموزش داده شده.
همونطور که دیدید دستور continue در بدنه ی شرط if کاری کرد که قسمت پایین تر از کد نادیده گرفته بشه!
همچنین اگر قبل از اجرای این دستور به مقدار index یکی اضافه نمیکردیم، یه حلقه ی بی پایاین میساختیم، چون وقتی به بالای حلقه میرفت مقدار index تغییر نکرده بود و همچنان کاراکتر ما نقطه بود !
خیلی جاها هم میشه از continue استفاده کرد و هم میشه استفاده نکرد، در صورتی که استفاده ازش بهتره و دلیلش هم سرعت اجرای برنامست !
و اما قسمت آخر از حلقه while:
حلقه while میتونه یک else هم داشته باشه که وجود این else کاملا اختیاری هستش، و این else از لحاظ تو رفتگی باید دقیقا زیر حلقه ی while باشه، و زمانی بدنه ی دستورات else اجرا میشه که شرط حلقه برقرار نباشه و اگر از دستور break درون حلقه استفاده نشه، همیشه بعد از دور آخر حلقه، بدنه ی else اجرا میشه :
حلقه while میتونه یک else هم داشته باشه که وجود این else کاملا اختیاری هستش، و این else از لحاظ تو رفتگی باید دقیقا زیر حلقه ی while باشه، و زمانی بدنه ی دستورات else اجرا میشه که شرط حلقه برقرار نباشه و اگر از دستور break درون حلقه استفاده نشه، همیشه بعد از دور آخر حلقه، بدنه ی else اجرا میشه :
چون در دور آخر حلقه مقدار number عدد 10 شد، وقتی حلقه شرط رو بررسی کرد دیگه شرط برقرار نبود و بدنه ی دستور else اجرا شد !
کجا به کار میاد؟
دو مورد استفاده داره،
یکی زمانی که میخواید دقیقا بعد از حلقه عملیاتی رو انجام بدین،
و دیگری زمانی که نمیدونید داخل حلقه دقیقا قراره چه اتفاقی بیفته ! از این مورد مثال میزنم:
فکر کنید به من یه متن داده شده که قبل از نوشتن برنامه از اون متن خبر نداشتم! برنامه من قراره در صورتی که حرف P داخل متن باشه،نشون بده که هست، و اگر نیست برنامه باز هم نشون بده که نیست :
کجا به کار میاد؟
دو مورد استفاده داره،
یکی زمانی که میخواید دقیقا بعد از حلقه عملیاتی رو انجام بدین،
و دیگری زمانی که نمیدونید داخل حلقه دقیقا قراره چه اتفاقی بیفته ! از این مورد مثال میزنم:
فکر کنید به من یه متن داده شده که قبل از نوشتن برنامه از اون متن خبر نداشتم! برنامه من قراره در صورتی که حرف P داخل متن باشه،نشون بده که هست، و اگر نیست برنامه باز هم نشون بده که نیست :
خوب الان حلقه while رو با تمرین قسمت های مربوط بهش که گفتم میتونید کاملا یاد بگیرید.
همچنین ساختار حلقه for رو بعد از یادگیری چند ساختار داده ای دیگه بهتون آموزش میدم،
چون قبل از یادگیریش لازمه که بدونید در پایتون چه ساختار هایی قابل پیمایش هستند.
در قسمت بعد در نظر دارم بعد از معرفی چند تا کلاس تو کار دیگه (مثل همین ()print ) با یکی از پرکاربرد ترین ساختار داده ای پایتون یعنی لیست ها، آشناتون کنم.
همچنین ساختار حلقه for رو بعد از یادگیری چند ساختار داده ای دیگه بهتون آموزش میدم،
چون قبل از یادگیریش لازمه که بدونید در پایتون چه ساختار هایی قابل پیمایش هستند.
در قسمت بعد در نظر دارم بعد از معرفی چند تا کلاس تو کار دیگه (مثل همین ()print ) با یکی از پرکاربرد ترین ساختار داده ای پایتون یعنی لیست ها، آشناتون کنم.
برای جستجوی توضیح و تفسیر هر یک از کتابخانه های پایتون، کافیست نام کتابخانه را بعد از هشتگ جستجو کنید.
همچنین برای درخواست توضیح و تفسیر کتابخانه مورد نظرتون با آیدی @PuriYa95 در ارتباط باشید.
لطفا آدرس کانال رو در گروه ها و با دوستانتان به اشتراک بگذارید.
@pythonist👈
همچنین برای درخواست توضیح و تفسیر کتابخانه مورد نظرتون با آیدی @PuriYa95 در ارتباط باشید.
لطفا آدرس کانال رو در گروه ها و با دوستانتان به اشتراک بگذارید.
@pythonist👈
متد ها در جاوا
به طور کلی ، متد یعنی یک قطعه از برنامه که کار خاصی انجام میده. هر متد یک سری اطلاعات به عنوان ورودی می گیره ، با توجه به اون اطلاعات و اطلاعات کلاسی که متد توی اون تعریف شده یک سری پردازش انجام میده و یک مقدار به عنوان خروجی میده.
تعریف متد ساده است. هر متد یک سری اجزای حیاتی داره : چه ورودی هایی می گیره ، چه نامی داره و چه خروجی داره.
به طور کلی ، متد یعنی یک قطعه از برنامه که کار خاصی انجام میده. هر متد یک سری اطلاعات به عنوان ورودی می گیره ، با توجه به اون اطلاعات و اطلاعات کلاسی که متد توی اون تعریف شده یک سری پردازش انجام میده و یک مقدار به عنوان خروجی میده.
تعریف متد ساده است. هر متد یک سری اجزای حیاتی داره : چه ورودی هایی می گیره ، چه نامی داره و چه خروجی داره.
قالب تعریف متد ها در جاوا به این صورته (این قالب می تونه اجزای دیگه ای هم داشته باشد که بعدا مفصل مورد بررسی قرار می گیره ، اما فعلا در همین حد برای اکثر برنامه های ما کافیه )
(پارامتر های ورودی) نام متد نوع خروجی استاتیک بودن سطح دسترسی
(پارامتر های ورودی) نام متد نوع خروجی استاتیک بودن سطح دسترسی
کلمه type در بالا نوع داده هایی را مشخص می کند که متد باز می گرداند . type می تواند هر یک انواع مورد بررسی قبلی باشد ، از جمله انواع کلاس هایی که خودتان ایجاد می کنید. چنانچه متد چیزی را برنگرداند، type باید void باشد . نام متد نیز به وسیله name مشخص می شود. از هر شناسه معتبری می توانید به عنوان نام استفاده کنید ؛ البته به غیر از مواردی که برای اقلام موجود در همان محدوده جاری استفاده شده اند . parameter-list ، فهرست زوجهایی (نوع و شناسه) اشت کهبا کاما از یکدیگر جدا می شوند . پارامترها اساسا متغیرهایی هستند که مقدار آرگومان های ارسالی به متد را هنگام فراخوانی آن دریافت می کنند . چنانچه متد پارامتری نداشته باشد ، این فهرست خالی خواهد بود .
متدهایی که نوع مقدار حاصل از فراخوانی آنها چیزی به غیر از void باشد، مقداری را با استفاده از عبارت return به روتین فراخوان بازمی گردانند
متدهایی که نوع مقدار حاصل از فراخوانی آنها چیزی به غیر از void باشد، مقداری را با استفاده از عبارت return به روتین فراخوان بازمی گردانند
در کل در تعریف متد ها از نظر داشتن خروجی یا ورودی ما 4 حالت مختلف را خواهیم داشت 1- متدهایی که نه خروجی دارن و نه ورودی 2- متدهایی که هم ورودی دارن و هم خروجی 3- متدهایی که فقط خروجی دارن 4 - متدهای که فقط ورودی دارن