هنر برنامه نویسی با پایتون ،آشنایی با فهرست ها (Lists) در پایتون

‌‌‌‌‌List ‌‌‌‌‌یا ‌‌‌‌‌همان ‌‌‌‌‌فهرست ‌‌‌‌‌، ‌‌‌‌‌یکی ‌‌‌‌‌ازپرکاربردترین ‌‌‌‌‌ساختمان ‌‌‌‌‌داده ‌‌‌‌‌های ‌‌‌‌‌موجود ‌‌‌‌‌در ‌‌‌‌‌پایتون ‌‌‌‌‌است ‌‌‌‌‌و ‌‌‌‌‌کاربرد ‌‌‌‌‌اصلی ‌‌‌‌‌آن ‌‌‌‌‌ذخیره ‌‌‌‌‌چندین ‌‌‌‌‌مقدارمختلف ‌‌‌‌‌در ‌‌‌‌‌یک ‌‌‌‌‌متغیر ‌‌‌‌‌واحد ‌‌‌‌‌و ‌‌‌‌‌دسترسی ‌‌‌‌‌به ‌‌‌‌‌همه ‌‌‌‌‌آنها ‌‌‌‌‌تنها ‌‌‌‌‌با ‌‌‌‌‌یک ‌‌‌‌‌نام ‌‌‌‌‌مشخص ‌‌‌‌‌است. ‌‌‌‌‌به ‌‌‌‌‌زبان ‌‌‌‌‌ساده ‌‌‌‌‌تر ‌‌‌‌‌به ‌‌‌‌‌جای ‌‌‌‌‌آنکه ‌‌‌‌‌برای ‌‌‌‌‌ذخیره ‌‌‌‌‌موقت ‌‌‌‌‌هر ‌‌‌‌‌مقدار، ‌‌‌‌‌یک ‌‌‌‌‌متغیر ‌‌‌‌‌جداگانه ‌‌‌‌‌تعریف ‌‌‌‌‌شود ‌‌‌‌‌، ‌‌‌‌‌تنها ‌‌‌‌‌یک ‌‌‌‌‌متغیر ‌‌‌‌‌تعریف ‌‌‌‌‌و ‌‌‌‌‌تمامی ‌‌‌‌‌مقادیر ‌‌‌‌‌مورد ‌‌‌‌‌نیاز ‌‌‌‌‌در ‌‌‌‌‌آن ‌‌‌‌‌ذخیره ‌‌‌‌‌و ‌‌‌‌‌از ‌‌‌‌‌آن ‌‌‌‌‌بازیابی ‌‌‌‌‌می ‌‌‌‌‌شوند. ‌‌‌‌‌برای ‌‌‌‌‌مثال ‌‌‌‌‌برای ‌‌‌‌‌محاسبه ‌‌‌‌‌میانگین ‌‌‌‌‌قد ‌‌‌‌‌دانش ‌‌‌‌‌آموزان ‌‌‌‌‌یک ‌‌‌‌‌مدرسه ‌‌‌‌‌، ‌‌‌‌‌نیازی ‌‌‌‌‌به ‌‌‌‌‌تعریف ‌‌‌‌‌متغیرهای ‌‌‌‌‌جداگانه ‌‌‌‌‌‌برای ‌‌‌‌‌ذخیره ‌‌‌‌‌قد ‌‌‌‌‌‌هر ‌‌‌‌‌دانش ‌‌‌‌‌آموز ‌‌‌‌‌نیست ‌‌‌‌‌و ‌‌‌‌‌می ‌‌‌‌‌توان ‌‌‌‌‌با ‌‌‌‌‌تعریف ‌‌‌‌‌یک ‌‌‌‌‌list ‌‌‌‌‌و ‌‌‌‌‌ذخیره ‌‌‌‌‌قد ‌‌‌‌‌تمامی ‌‌‌‌‌دانش ‌‌‌‌‌آموزان ‌‌‌‌‌مدرسه ‌‌‌‌‌در ‌‌‌‌‌آن ‌‌‌‌‌پردازش ‌‌‌‌‌مورد ‌‌‌‌‌نیاز ‌‌‌‌‌برای ‌‌‌‌‌محاسبه ‌‌‌‌‌میانگین ‌‌‌‌‌قد ‌‌‌‌‌را ‌‌‌‌‌بر ‌‌‌‌‌روی ‌‌‌‌‌list ‌‌‌‌‌انجام ‌‌‌‌‌داد.  ‌‌‌‌‌در ‌‌‌‌‌حقیقت ‌‌‌‌‌فهرست ‌‌‌‌‌یکی ‌‌‌‌‌از ‌‌‌‌‌چهار ‌‌‌‌‌نوع ‌‌‌‌‌داده ‌‌‌‌‌موجود ‌‌‌‌‌در ‌‌‌‌‌پایتون ‌‌‌‌‌است ‌‌‌‌‌که ‌‌‌‌‌ذخیره ‌‌‌‌‌مجموعه ‌‌‌‌‌ای ‌‌‌‌‌از ‌‌‌‌‌داده ‌‌‌‌‌ها ‌‌‌‌‌در ‌‌‌‌‌یک ‌‌‌‌‌متغیر ‌‌‌‌‌واحد ‌‌‌‌‌را ‌‌‌‌‌ممکن ‌‌‌‌‌می ‌‌‌‌‌سازند. ‌‌‌‌‌و ‌‌‌‌‌هم زمان ‌‌‌‌‌ابزارهای ‌‌‌‌‌لازم ‌‌‌‌‌برای ‌‌‌‌‌جستجو ‌‌‌‌‌، ‌‌‌‌‌افزودن ‌‌‌‌‌، ‌‌‌‌‌حذف ‌‌‌‌‌و ‌‌‌‌‌به روزرسانی ‌‌‌‌‌داده ‌‌‌‌‌های ‌‌‌‌‌ذخیره ‌‌‌‌‌شده ‌‌‌‌‌در ‌‌‌‌‌آن ‌‌‌‌‌را ‌‌‌‌‌فراهم ‌‌‌‌‌می ‌‌‌‌‌آورند ‌‌‌‌‌این ‌‌‌‌‌چهار ‌‌‌‌‌نوع  ‌‌‌‌‌عبارتند ‌‌‌‌‌از ‌‌‌‌‌: 

ادامه مطلب ...

شی گرایی در پایتون ، بخش دوم

همانند دنیای واقعی که در بردارنده دو مفهوم هستی (چیز ، پدیده ، موجودیت) و طبقه بندی است. برنامه نویسی شی گرا (OOP) نیز بر محور دو مفهوم اساسی کلاس (Class) و شی (Object) شکل گرفته است. در برنامه نویسی شی گرا ، هر برنامه در قالب نهادهای کوچکی به نام شی (object) که از روی کلاس ها ساخته می شوند و با یکدیگر برهم کنش دارند در نظر گرفته می شوند. برای داشتن این اشیا ابتدا باید کلاس های مورد نیاز برنامه را تعریف کنیم. کلاس همانند نقشه یک ساختمان است این نقشه خود ساختمان نیست اما راهنمایی است که از روی آن یک خانه واقعی ساخته می شود. دردنیای زبان های برنامه نویسی شی گرا نیز همین گونه است ما ابتدا یک یا چندین کلاس تعریف می کنیم که همانند نقشه یک خانه در برگیرنده ویژگی ها و رفتارهایی است که در برنامه نیاز داریم ، سپس از روی این کلاس ها تعدادی شی می سازیم  همانگونه که از روی یک نقشه می توان تعداد زیادی خانه ساخت از یک کلاس هم می توان به تعداد دلخواه شی ساخت.به زبان ساده تر می توان گفت که : کلاس یک نقشه ساخت است و شی نمونه ای است که بر اساس آن ساخته می شود.

  ادامه مطلب ...

شی گرایی در پایتون ، بخش نخست

هدف اصلی زبان های برنامه نویسی  کمک به انسان ها برای حل مسائل دنیای واقعی است. گواه این گفته نقش بسیار پررنگ سامانه های نرم افزاری در چیرگی بر چالش های فراروی افراد و سازمان ها در محیط پیچیده و رقابتی کسب و کار های امروزی است. از این روطراحان زبان های برنامه نویسی با آفرینش رویکرد جدیدی به نام برنامه نویسی شی گرا (Object - Oriented Programming - OOP) دامنه مفاهیم ، روش ها و ساختارهای موجود در زبان های برنامه نویسی را چنان گسترش داده اند که با استفاده از آنها به سادگی می توان مفاهیم و پدیده های دنیای واقعی را الگو سازی کرد و نمایش داد. آنان برای دست یابی به این خواسته مهم ، یعنی نزدیک تر کردن مفاهیم دنیای برنامه نویسی با مفاهیم دنیای واقعی از طبیعت و جهان پیرامون ما الهام گرفته اند.

 

ادامه مطلب ...

nmap جام جهان بین مدیران شبکه ، بخش نخست : گزینش هدف

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

پیش از بکارگیری این ابزارساده و توانمند ، چهار گام اساسی زیر باید پیموده شود :

1- گزینش هدف (Target specification)

2- برگزیدن شیوه کاوش و یافتن میزبان های فعال در شبکه هدف (Host Discovery Methods)

3- گزینش سرویس ها و پورت هایی که باید در اهداف انتخاب شده بررسی شوند.

4- برگزیدن شیوه پایش و جستجوی سرویس های فعال( پورت های باز) در شبکه

  

ادامه مطلب ...

هنر برنامه نویسی با پایتون ، بخش نهم: تابع (Function)

گاهی ‌‌‌‌‌نیاز ‌‌‌‌‌است ‌‌‌‌‌تا ‌‌‌‌‌قطعه ‌‌‌‌‌کدی ‌‌‌‌‌که ‌‌‌‌‌یک ‌‌‌‌‌وظیفه ‌‌‌‌‌مشخص ‌‌‌‌‌را ‌‌‌‌‌انجام ‌‌‌‌‌می ‌‌‌‌‌دهد ‌‌‌‌‌در ‌‌‌‌‌بخشهای ‌‌‌‌‌مختلف ‌‌‌‌‌یک ‌‌‌‌‌برنامه ‌‌‌‌‌، ‌‌‌‌‌بارها ‌‌‌‌‌اجرا ‌‌‌‌‌شود. ‌‌‌‌‌برای ‌‌‌‌‌مثال ‌‌‌‌‌در ‌‌‌‌‌سامانه ‌‌‌‌‌مدیریت ‌‌‌‌‌تحصیلی ‌‌‌‌‌دانشگاه ‌‌‌‌‌، ‌‌‌‌‌قطعه ‌‌‌‌‌برنامه ‌‌‌‌‌محاسبه ‌‌‌‌‌میانگین ‌‌‌‌‌نمرات ‌‌‌‌‌‌دانشجویان ‌‌‌‌‌به ‌‌‌‌‌هنگام ‌‌‌‌‌‌پردازش ‌‌‌‌‌کارنامه ‌‌‌‌‌پایان ‌‌‌‌‌ترم ‌‌‌‌‌، ‌‌‌‌‌محاسبه ‌‌‌‌‌میزان ‌‌‌‌‌تخفیف ‌‌‌‌‌شهریه ‌‌‌‌‌ویا ‌‌‌‌‌تعیین ‌‌‌‌‌تعداد ‌‌‌‌‌واحدهایی ‌‌‌‌‌که ‌‌‌‌‌دانشجویان ‌‌‌‌‌می ‌‌‌‌‌توانند ‌‌‌‌‌در ‌‌‌‌‌آخرین ‌‌‌‌‌نیم ‌‌‌‌‌سال ‌‌‌‌‌تحصیلی ‌‌‌‌‌بردارند ‌‌‌‌‌اجرا ‌‌‌‌‌می ‌‌‌‌‌شود. ‌‌‌‌‌نیاز ‌‌‌‌‌به ‌‌‌‌‌اجرای ‌‌‌‌‌چند ‌‌‌‌‌باره ‌‌‌‌‌یک ‌‌‌‌‌قطعه ‌‌‌‌‌کد ‌‌‌‌‌واحد ‌‌‌‌‌در ‌‌‌‌‌بسیاری ‌‌‌‌‌از ‌‌‌‌‌برنامه ‌‌‌‌‌های ‌‌‌‌‌بزرگ ‌‌‌‌‌که ‌‌‌‌‌برای ‌‌‌‌‌حل ‌‌‌‌‌مسائل ‌‌‌‌‌دنیای ‌‌‌‌‌واقعی ‌‌‌‌‌نوشته ‌‌‌‌‌می ‌‌‌‌‌شوند ‌‌‌‌‌وجود ‌‌‌‌‌دارد. ‌‌‌‌‌و ‌‌‌‌‌باید ‌‌‌‌‌به ‌‌‌‌‌خوبی ‌‌‌‌‌تدبیر ‌‌‌‌‌گردد. ‌‌‌‌‌از ‌‌‌‌‌دیگرسو ‌‌‌‌‌برای ‌‌‌‌‌نوشتن ‌‌‌‌‌یک ‌‌‌‌‌برنامه ‌‌‌‌‌بزرگ ‌‌‌‌‌و ‌‌‌‌‌پیچیده ‌‌‌‌‌با ‌‌‌‌‌چندین ‌‌‌‌‌وظیفه ‌‌‌‌‌مختلف ‌‌‌‌‌می ‌‌‌‌‌توان ‌‌‌‌‌آن ‌‌‌‌‌را ‌‌‌‌‌به ‌‌‌‌‌چند ‌‌‌‌‌زیر ‌‌‌‌‌برنامه ‌‌‌‌‌کوچک ‌‌‌‌‌که ‌‌‌‌‌هریک ‌‌‌‌‌وظیفه ‌‌‌‌‌مشخصی ‌‌‌‌‌را ‌‌‌‌‌انجام ‌‌‌‌‌می ‌‌‌‌‌دهند ‌‌‌‌‌شکست ‌‌‌‌‌و ‌‌‌‌‌هر ‌‌‌‌‌وظیفه ‌‌‌‌‌را ‌‌‌‌‌جداگانه ‌‌‌‌‌کد ‌‌‌‌‌نویسی ‌‌‌‌‌و ‌‌‌‌‌پیاده ‌‌‌‌‌سازی ‌‌‌‌‌کرد. ‌‌‌‌‌این ‌‌‌‌‌روش ‌‌‌‌‌، ‌‌‌‌‌اشکال ‌‌‌‌‌زدایی ‌‌‌‌‌نرم ‌‌‌‌‌افزار ‌‌‌‌‌و ‌‌‌‌‌آزمون ‌‌‌‌‌درستی ‌‌‌‌‌کارکرد ‌‌‌‌‌آن ‌‌‌‌‌را ‌‌‌‌‌ساده ‌‌‌‌‌تر ‌‌‌‌‌می ‌‌‌‌‌کند. ‌‌‌‌‌برای ‌‌‌‌‌مثال ‌‌‌‌‌سامانه ‌‌‌‌‌بانکداری ‌‌‌‌‌، ‌‌‌‌‌یک ‌‌‌‌‌نرم ‌‌‌‌‌افزار ‌‌‌‌‌بزرگ ‌‌‌‌‌و ‌‌‌‌‌پیچیده ‌‌‌‌‌است ‌‌‌‌‌که ‌‌‌‌‌می ‌‌‌‌‌تواند ‌‌‌‌‌به ‌‌‌‌‌بخش ‌‌‌‌‌های ‌‌‌‌‌کوچکتری ‌‌‌‌‌چون ‌‌‌‌‌: ‌‌‌‌‌افتتاح ‌‌‌‌‌حساب ‌‌‌‌‌، ‌‌‌‌‌واریز ‌‌‌‌‌، ‌‌‌‌‌برداشت ‌‌‌‌‌، ‌‌‌‌‌انتقال ‌‌‌‌‌، ‌‌‌‌‌حواله ‌‌‌‌‌، ‌‌‌‌‌‌بستن ‌‌‌‌‌حساب ‌‌‌‌‌و ‌‌‌‌‌دیگر ‌‌‌‌‌وظایف ‌‌‌‌‌موجود ‌‌‌‌‌در ‌‌‌‌‌حوزه ‌‌‌‌‌بانکداری ‌‌‌‌‌شکسته ‌‌‌‌‌شود.بنا ‌‌‌‌‌بر ‌‌‌‌‌آنچه ‌‌‌‌‌گفته ‌‌‌‌‌شد ‌‌‌‌‌در ‌‌‌‌‌زبان ‌‌‌‌‌های ‌‌‌‌‌برنامه ‌‌‌‌‌نویسی ‌‌‌‌‌باید ‌‌‌‌‌راهی ‌‌‌‌‌برای ‌‌‌‌‌دوری ‌‌‌‌‌گزیدن ‌‌‌‌‌از ‌‌‌‌‌نوشتن ‌‌‌‌‌کدهای ‌‌‌‌‌تکراری ‌‌‌‌‌و ‌‌‌‌‌نیزامکان ‌‌‌‌‌تجزیه ‌‌‌‌‌یک ‌‌‌‌‌مسئله ‌‌‌‌‌بزرگ ‌‌‌‌‌و ‌‌‌‌‌پیچیده ‌‌‌‌‌به ‌‌‌‌‌‌چندین ‌‌‌‌‌مسئله ‌‌‌‌‌کوچک ‌‌‌‌‌و ‌‌‌‌‌ساده ‌‌‌‌‌تر ‌‌‌‌‌وجود ‌‌‌‌‌داشته ‌‌‌‌‌باشد ‌‌‌‌، ‌‌‌‌‌بایستگی ‌‌‌‌‌برآوردن ‌‌‌‌‌این ‌‌‌‌‌دو ‌‌‌‌‌نیاز، ‌‌‌‌‌سرآغاز ‌‌‌‌‌برآمدن ‌‌‌‌‌‌یک ‌‌‌‌‌مفهوم ‌‌‌‌‌بسیار ‌‌‌‌‌مهم ‌‌‌‌‌و ‌‌‌‌‌اساسی ‌‌‌‌‌در ‌‌‌‌‌زبانهای ‌‌‌‌‌‌برنامه ‌‌‌‌‌نویسی ‌‌‌‌‌است ‌‌‌‌‌که ‌‌‌‌‌از ‌‌‌‌‌آن ‌‌‌‌‌با ‌‌‌‌‌نام ‌‌‌‌‌‌تابع ‌‌‌‌‌(function) ‌‌‌‌‌یاد ‌‌‌‌‌می ‌‌‌‌‌شود. 

ادامه مطلب ...