مثالی ساده از ماژولها در پایتون
ماژول چیز بیشتری از یک فایل پایتون نیست. ما در این مثال دو فایل پایتون با نامهای دایره و ستطیل ساختهایم که در آن محیط و مساحت دایره و مستطیل را محاسبه و برمیگرداند. از این دو فایل به عنوان یک ماژول استفاده نموده و آنها را در یک فایل پایتون دیگر با نام main.py ایمپورت و استفاده نموده ایم.
فایلها در یک پوشه زیپ ضمیمه شده است.
موفق باشید - سعید دامغانیان (رادیو صدای ققنوس)
پروژه ماشین حساب ساده با #پایتون (این ماشین حساب ساده فقط عمل جمع را انجام میدهد که به صورت گرافیکی با استفاده از tkinter طراحی شده است.) را در پست قبلی دیدید.
اکنون با کاملتر کردن همان پروژه نسخه جدیدی را ارائه دادیم که 4 عمل اصلی را انجام خواهد داد.
پرسشها و نظرات خود را با من به آدرس t.me/dmn200 در میان بگذارید.
متشکرم - (سعید دامغانیان)
مسئله تمرین قبل را با استفاده از تعریف کلاس (سازنده و جنراتور و اتراتور و متودهای مربوطه) دوباره حل کردیم. جهت یادآوری صورت مسئله قبل را تکرار میکنم که این بار با استفاده از کلاسها به حل آن پرداخته ام)
می خواهیم کدی بنویسیم که برنامه پایتون یک لیست از ورودی بگیرد و آن را مع کرده و نمایش دهد. یعنی مثلاً ورودی و خروجیهایش اینگونه باشد :
Input : list = [10, 11, 12, 13, 14, 15] Output : [15, 14, 13, 12, 11, 10] Input : list = [4, 5, 6, 7, 8, 9] Output : [9, 8, 7, 6, 5, 4]
روش اول :
روش دوم:
روش سوم:
موفق باشید - سعید دامغانیان
در پایتون هم مانند جاوا و سی پلاس پلاس که مبحث try{} Catch{} وجود داشت میتوانیم با بلوک کدهای : try: Except از بروز خطا جلوگیری کنیم و در صورت وجود خطا در تکه کد try: خطا را مدیریت نموده و در تکه کد exept آن خطا را مثلاً با یک پیغام مناسب به کاربر اعلان کنیم.
مثلاً در قطعه کد زیر در خط 3 تقسیم بر صفر یک خطا است و باعث میشود کنترل برنامه به خط 6 رفته و پیغام رشته ای چاپ شود. از اشتباه تایپی در خط 7 پوزش می طلبیم.(occured) ببینید:
حال تکه کد بالا را کمی جابجا کردیم. در اینجا در بلوک try: اول خط 3 پرینت شده و سپس خطا رخ میدهد. پس بعد از اجرای کد زیر دو خط در خروجی چاپ میشود که همان رشته های متنی خط 3 و خط 7 می باشند.!
هدف من از تغییر این کد این بود که بگویم بلوک try امکان دارد چندین خط کد باشد. تا رسیدن به خطی که حاوی خطاست همه کدها اجرا می شود و مثلاً اینگونه نیست که در صورت بروز خطا در خط 10 از بلوک TRY کد خطاهی 1 تا 9 هم اجرا نشود.
#سعید_دامغانیان | موفق و موید باشید!
یک کلاس کلی تعریف کردیم به نام AnimalAction
این کلاس 4 متود یا (تابع عضو) دارد. که شامل صدای کوئک(صدای اردک) ، ویژگیها ، بارک (مخصوص سگ) و فور(یک ویژگی دیگر) می باشد. این 4 ویژگی را به عنوان 4 متود در نظر گرفتیم. این متودها مقادیری را پرینت میکنند. مثلاً اعلان میکنند که اردک کوئک میکند. و .
سپس 3 کلاس دیگر تعریف کردیم که از این کلاس ارث بری میکنند. که جزئیاتش را در کدها می بینید.
سپس در تابع Main از کلاسهایمان شی تعریف کردیم و توابع عضو کلاس را فراخوانی نموده ایم.
حتماً کدها را در یک آی دی ای نوشته و اجرا کنید و خروجی را ببینید!
حالا همان کد بالا را به شیوه MVC یا Model - View - Control باز نویسی کردیم.
مباحث برنامه نویسی شی گرا و وراثت و چندریختی ، جزء مهمترین مباحث برنامه نویسی پایتون می باشد. پیشنهاد میکنم ویدیوی آموزشی من (سعید دامغانیان) که طی چند روز آینده در کانال یوتیوب خودم به آدرس (Saeed Damghanian ) قرار خواهم داد حتماً ببینید و پرسشها و نظرات خودتان را همانجا مطرح نمایید.
خروجی کدهای بالا را در تصویر زیر برایتان درج نمودم!
فرمها در HTML
یک فرم به شکل زیر در HTML براتون ساختم و فایلش رو ضمیمه کردم. جهت تمرین با CSS خوشگلش کنید :) و قابلیتهای دیگه بهش اضافه کنید.
فایلهاتون رو به تلگرام من به آدرس DMN200@ ارسال کنید که من هم بهترینش رو همینجا به اشتراک میگذارم.
موفق و موید باشید
سعید دامغانیان ( رادیو صدای ققنوس )
یک فایل پایتون ایجاد کنید.
کلاسی به نام دانشجو تعریف کنید که یک متود سازنده داشته باشد و دو متود دیگر به نامهای getinfo و showinfo که به ترتیب جهت گرفتن اطلاعات یک دانشجو و جهت نمایش اطلاعات دانشجو استفاده میشود. سپس در قسم تست برنامه از کلاس آبجکت گرفته و اطلاعات دانشجو (نام - نام خانوادگی -- شماره دانشجویی - سن و ایمیل ) را گرفته و نمایش دهید.
برنامه پیوسته اجرا میشود. جهت خروج باید عبارت ' no ' را وارد کرد تا از برنامه خارج شود.
موفق و موید باشید
سعید دامغانیان ( رادیو صدای ققنوس )
تمرین برنامه نویسی پایتون #وراثت
1) کلاسی به نام shape بسازید که یک متود سازنده دارد که نام شکل را میگیرد و آبجکت آن را میسازد. متود __repr__ هم برای ایم کلاس تعریف کنید که نام شکل ساخته شده را در خروجی چاپ کند.
- 2) کلاسی به نام مستطیل بسازید که از کلاس shape ارث بری کند و یک متود سازنده داشته باشد که طول و عرض مستطیل را دریافت و آبجکتش را بسازد. برای این کلاس دو متود محاسبه مساحت و محیط تعریف نمائید.-
- 3) کلاسی به نام دایره بسازید که از کلاس shape ارث بری کند و یک متود سازنده داشته باشد که شعاع دایره را دریافت و آبجکتش را بسازد. برای این کلاس دو متود محاسبه مساحت و محیط تعریف نمائید.
- 4) کلاسی به نام مربع تعریف کنید که هم از کلاس مستطیل و هم از کلاس shape ارثبری کند (میدانیم هر مربع یک مستطیل هم هست) برای آن یک متود سازنده بگذارید که با دریافت طول مربع آبجکتش را بسازد. همچنین برای این کلاس دو متود محاسبه محیط و مساحت بگذارید که این متودها خودشان از متودهای محاسبه محیط و مساحت کلاس مستطیل استفاده نمایند. (آنها را فراخوانی کنند و کافیست که مقادیر طول و عرض مستطیل را برابر هم و برابر با مقدار طول مربع قرار دهیم)
- 5) در main برنامه با دادن مقادیر طول و عرض و شعاع آبجکتهای آن کلاسها را ایجاد نموده و خروجی بگیرید(مقادیر طول و عرض و شعاع و . را از کاربر بگیرید!)
موفق و موید باشید
سعید دامغانیان ( رادیو صدای ققنوس )
برنامه ای شامل یک کلاس بنویسید که اطلاعات آن به قرار زیر است :
صفات : نام و نام خانوادگی دانشجویان - سن - ایمیل و آدرس
متودها :
یک متود سازنده که نام و نام خانوادگی دانشجوهای نمونه را به عنوان آرگومان ورودی دریافت میکند!
یک دکوراتور بنویسید که نام دانشجو را بگیرد و در خروجی نام دانشجو را چاپ نموده و به وی سلام کند
یک دکوراتور دیگر بنویسید که تاریخ امروز را (که یک صفت دیگر کلاس است) مستقیماً چاپ نماید!
در برنامه اصلی مشخصات دانشجو را از ورودی بگیرید و سپس یک نمونه (آبجکت) با این مشخصات ایجاد نموده و موارد خواسته شده را در کنسول چاپ نمایید.
سعید دامغانیان ( رادیو صدای ققنوس )
موفق باشید
صورت مساله : کلاسی به نام دانشجو بسازید که حاوی صفات (نام و نام خانوادگی و شماره دانشجویی و سن و آدرس و ایمیل دانشجو) باشد و دو متود داشته باشد که:
متود اول متود سازنده میباشد (این متود نام و نام خانوادگی دانشجو را در ورودی دریافت و آبجکت را میسازد)
متود دوم : اطلاعات دانشجو را نمایش میدهد.
برای تریس کردن برنامه دو شی از کلاس بگیرید و بصورت دستی مقداردهی صفات کرده و خروجی را نمایش دهید . و یک شی جدید بسازید که اطلاعاتش را از ورودی بگیرد و سپس برای این شی جدید هم متود نمایش دهنده اطلاعات را فراخوانده و خروجی را چاپ نمایید.
موفق باشید - ( سعید دامغانیان - رادیو صدای ققنوس)
درباره این سایت