آموزش برنامه نویسی پایتون بخش سوم (محاسبات ریاضی، استایل و خطاها در برنامه نویسی)


نقشه های کروپلت – مقدمه ای بر طبقه بندی داده

تصاویر چند طیفی (Multi-spectral) در مقایسه با تصاویر ابر طیفی (Hyper-spectral)

فتوگرافی هوایی (Aerial Photography) در مقابل ارتوفوتوگرافی (Orthophotography)

راهنمای جامع لیدار (Light Detection and Ranging – LiDAR)

سنجش از دور چیست ؟

منابع داده GIS رایگان در سطح جهانی : داده های رستری و برداری

مقدمه ای بر سرویس های نقشه کشی تحت وب (WMS)

علم داده مکانی چیست ؟

تحلیل عوارض سه بعدی

ژئوانالیتیکس: آنالیز داده های مکانی حجیم

فرمت های داده در سیستم اطلاعات جغرافیایی بخش سوم

فرمت های داده در سیستم اطلاعات جغرافیایی بخش دوم

فرمت های GIS و پسوندهای داده مکانی بخش اول

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

انتشار نخستین تصاویر لندست 9 توسط سازمان هوا و فضای آمریکا (NASA)

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

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

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

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

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

معرفی سامانه WEB GIS

نقشه متوسط دمای سطح زمین ایران (LST)

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

آموزش برنامه نویسی پایتون بخش یازدهم (تبدیل نوع و گرد کردن)

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

آموزش برنامه نویسی پایتون بخش نهم (نمادهای علمی، ارزیابی عبارات و اولویت اجرای اپراتورها)

برنامه نویسی پایتون بخش هشتم (انتساب چندگانه، ثابت ها، نوع-داده های عددی و اپراتورها)

برنامه نویسی پایتون بخش هفتم (متغیرها، دستور انتساب و عبارات)

برنامه نویسی پایتون بخش ششم (Identifiers)

معرفی توانایی ها و ویژگی های ماهواره لندست 9

ماهواره لندست 9

نرم افزار Arc GIS Desktop در مقابل Arc GIS Pro

آموزش برنامه نویسی پایتون بخش چهارم (برنامه نویسی مقدماتی در پایتون)

آموزش برنامه نویسی پایتون بخش سوم (محاسبات ریاضی، استایل و خطاها در برنامه نویسی)

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

ابزارهای برنامه نویسی (Programming Tools)

سیکل توسعه نرم افزار

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

مقدمه ای بر برنامه نویسی کامپیوتر (بخش مبانی برنامه نویسی)

مقدمه ای بر برنامه نویسی کامپیوتر بخش سخت افزار


آموزش برنامه نویسی پایتون بخش سوم
در این قسمت، به آموزش سه مبحث در مورد برنامه نویسی می پردازیم. مبحث نخست در مورد اجرای محاسبات ریاضی توسط زبان برنامه نویسی پایتون می باشد. مبحث بعدی در مورد استایل و عادات خوب و بد برنامه نویسی است و نهایتاً در مورد انواع خطاهای برنامه نویسی، با ذکر مصادیقی از این نوع خطاها در پایتون آشنا خواهیم شد.
استفاده از پایتون در اجرای محاسبات ریاضی
پایتون می تواند تمام انواع محاسبات ریاضی را انجام داده و نتایج را نشان دهد. برای اجرای محاسبات جمع، تفریق، ضرب و تقسیم دو عدد x و y و نمایش آنها بر روی کنسول، مطابق با کدهای زیر عمل می شود :
print (x + y)
print (x – y)
print (x * y)
print (x / y)
استایل برنامه نویسی و مستندسازی کدها
نکته
استایل خوب برنامه نویسی و مستندسازی مناسب کدها، برنامه های نوشته شده را خوانا کرده و از ایجاد خطاها جلوگیری می کند.
استایل برنامه نویسی در ارتباط با ظاهر و شکل کدها می باشد. زمانی که برنامه نویسی را با یک استایل حرفه ای انجام دهید، نه تنها کدها به درستی کار می کنند بلکه برای سایر افراد نیز خواندن و درک این کدها ساده تر خواهد بود. این مسئله، بسیار مهم و ضروری است به خصوص زمانی که سایر برنامه نویسان در آینده به کدهای شما دسترسی داشته باشند و بخواهند آنها را ویرایش نموده و یا توسعه دهند. مستندسازی (Documentation)، شامل توضیحات و درج نکات و کامنت هایی در ارتباط با قطعات کدها در برنامه های نوشته شده توسط برنامه نویسان می باشد. مستندسازی کدها به این معنا است که هدف از نوشتن هر قطعه کد از طریق توضیحات مختصری در ابتدای آن درج شود تا به خود برنامه نویس یا برنامه نویسان دیگر در آینده کمک نموده و برنامه را ویرایش و یا توسعه دهند. همچنین این توضیحات در رفع خطا یا Debugging برنامه نیز بسیار مفید و کاربردی خواهند بود. این کامنت ها و توضیحاتی که در مورد کدها درج می گردد، بخش های مختلف برنامه را توضیح می دهد و کمک می کند تا ساختار برنامه و عملکرد آن درک شود. مستندسازی کدها در زبان های برنامه نویسی مختلف از جمله پایتون، در داخل خود کدها و با استفاده از کامنت گذاری انجام می گیرد. مفسر پایتون به سادگی این توضیحات را نادیده گرفته و هیچ خللی در اجرای برنامه ایجاد نخواهد کرد. استایل برنامه نویسی و مستندسازی کدها حتی به اندازه خود کدنویسی، دارای اهمیت است.
کامنت های متناسب و استایل کامنت گذاری
در ابتدای هر برنامه، یک کامنت مختصر قرار دهید که کاری که برنامه انجام می دهد را توضیح دهد. در این توضیحات کارهای کلیدی که برنامه انجام می دهد و نیز تکنیک های خاصی که در برنامه مورد استفاده قرار گرفته است را ذکر کنید. در برنامه های بزرگ، همچنین باید مرحله به مرحله و در هر پارتیشن این توضیحات را تکمیل نموده و توضیحات اضافی مربوط به هر بخش را درج کنید، همچنین قطعه کدهایی که خوانش آنها مشکل است را نیز باید با چندین کامنت در بخش های مختلف توضیح دهید. نکته مهمی که وجود دارد آن است که کامنت ها باید صریح و ساده و روان و کوتاه باشند و نباید باعث شلوغی کدهای نوشته شده شوند و خود عاملی برا ناخوانایی کدها نگردند. در نتیجه استفاده بیش از حد و افراطی از کامنت ها می تواند به خوانایی کدها لطمه بزند.
فاصله گذاری مناسب
استفاده از استایل فاصله گذاری یکسان در تمام برنامه، کدهای نوشته شده را واضح تر نموده و قابلیت خوانایی کدها را بالا می برد. همچنین یک سیستم فاصله گذاری یکسان و منظم در رفع عیب و خطایابی کدها نیز کمک شایانی می کند. به عنوان مثال یک فاصله، باید در دو طرف اپراتورهای مورد استفاده قرار داده شود و از چسباندن اپراتورها به کاراکترهای پیش و بعد، خودداری گردد. در شکل زیر استایل خوب و بعد در فاصله گذاری اپراتورهای محاسباتی در زبان برنامه نویسی پایتون نشان داده شده است.

# Good Style
Results = ( 3 + 7 ) / ( 12 * 5 )
# Bad Style
Results=( 3+7 )/ ( 12* 5 )
به طوری که در کد فوق مشاهده می شود، تغییر در استایل فاصله بندی بین کدها تأثیر بسیار بالایی در خوانایی و یا واضح بودن کدها خواهد داشت. در نتیجه بهتر است به عنوان یک عادات خوب برنامه نویسی، از یک استایل یکسان و استاندارد در فاصله بندی بین دستورات استفاده شود.
خطاهای برنامه نویسی (Programming Errors)
خطاهای برنامه نویسی را می توان در سه بخش، دسته بندی نمود. گروه اول شامل خطاهای گرامری یا Syntax Error، گروه دوم خطاهای زمان اجرا یا Runtime Error و نهاًیتا خطاهای منطقی یا معنایی یا Logical Error می شود. خطاهای منطقی به نام خطاهای معنایی (Semantic Error) نیز شناخته می شوند. در ادامه به توضیحات بیشتری در مورد هر یک از خطاهای فوق الذکر می پردازیم و در زبان برنامه نویسی پایتون مصادیقی از هر یک را با ذکر مثال ارائه خواهیم کرد.
خطاهای نحوی یا گرامری یا Syntax Error
فراوان ترین و ساده ترین خطایی که به عنوان یک برنامه نویس با آن مواجه می شوید، خطاهای نحوی یا Syntax می باشند. همچون هر زبان برنامه نویسی، پایتون نیز دارای دستورات نحوی مربوط به خود می باشد و شما بایستی به صورتی کدنویسی کنید که قواعد دستوری این زبان را به طور کامل رعایت کنید. در صورتی که برنامه شما در جایی یکی از این قواعد نحوی را نقض کند، برنامه با خطای Syntax متوقف خواهد شد و مفسر، امکان اجرای برنامه به طور کامل را نخواهد داد. به عنوان مثال در صورتی که کوتیشن مارک به درستی قرار داده نشود و یا آنکه تایپ املایی یک کلمه کلیدی به درستی انجام نشود و یا متغیری که تعریف نشده فراخوانی شود و یا از کلاس و یا توابعی که از پیش تعریف نشده استفاده شود، در همه این موارد مفسر با خطای Syntax، اجرای برنامه را متوقف خواهد کرد و امکان ادامه اجرای برنامه را نمی دهد. رفع این گونه خطاها بسیار ساده می باشد زیر مفسر پایتون دقیقاً به جایی که این خطا رخ داده اشاره نموده و از این طریق به سادگی می توان این نوع خطاها را برطرف نمود.
# Syntax Error
Sum = (10 + 5) / (5 * 2
# Syntax Error =>> Missing parenthesis
# Syntax Error
for i in range(100):
print (i)
# Syntax Error =>> Indentation Error
# Syntax Error
x = y ** 2
# Syntax Error =>> y variable is not defined
نکته
خطاهای نحوی یا Syntax Error، ساده ترین نوع خطا در کدنویسی در زبان های برنامه نویسی مختلف می باشند. در ابتدای یادگیری یک زبان برنامه نویسی، خطاهای نحوی تعداد زیادی از خطاها را شامل می شوند، ولی به مرور زمان این نوع خطاها کاهش می یابند. به دلیل آنکه این نوع خطاها توسط مفسر تشخیص داده شده و جلوی ادامه برنامه نویسی، گرفته می شود، این نوع خطاها قابلیت انتشار کمی دارند و در بخش های دیگر برنامه منتشر نمی شوند.
خطاهای زمان اجرا یا Runtime Error
گروه دوم از خطاهای برنامه نویسی، خطاهای زمان اجرا می باشند. این خطاها، شامل خطاهایی هستند که در زمان اجرای برنامه تحت شرایط خاصی حادث می شوند. این خطاها معمولاً در شرایطی ایجاد می شوند که مفسر پایتون در حین اجرای برنامه با شرایطی رو به رو شود که امکان اجرای آن دستور را نداشته باشد. به عنوان مثال ورودی نادرست به برنامه در حین اجرا می تواند یکی از منابع ایجاد خطاهای زمان اجرا باشد. یا تقسیم عدد بر صفر نیز می تواند یکی از دلایل دیگر ایجاد خطای زمان اجرا گردد. به عنوان مثال، برنامه ای را در نظر بگیرید که تعداد عدد را از ورودی پذیرفته و میانگین اعداد را گزارش می دهد. فرض کنید در حین اجرای برنامه، کاربر به جای ورود اعداد، از کاراکترهای حرفی استفاده کند که در این حالت برنامه با خطای زمان اجرا متوقف می گردد. در کدهای زیر چند نمونه از خطاهای زمان اجرا با استفاده از دستورات زبان برنامه نویسی پایتون نشان داده شده است
# Runtime Error
numbers = input(‘Enter some Numbers :’)
User: 15,25,16,25,’H’
Print sum(numbers)
# Runtime Error =>> Sum Function cant work on int and string
در کدهای بالا، در صورتی که کاربر تعدادی عدد را به عنوان ورودی به برنامه دهد، برنامه بدون هیچ اشکالی کار خواهد کرد ولی اگر به جای اعداد از یک حرف لاتین به عنوان مثال ‘H’ استفاده کند، برنامه با خطای زمان اجرا، متوقف می شود.
# Runtime Error
for i in range(10,-10,-1):
print ( 1.0 / i )
# Runtime Error => Zero Division Error
در کدهای فوق، مفسر، از عدد 10 مثبت به سمت -10 عدد با شناسه i عدد 1 را بر i تقسیم نموده و نتیجه را چاپ می کند. این برنامه تا زمانی که عدد 1 بر عددی غیر از 0 تقسیم شود درست کار خواهد کرد. ولی زمانی که عدد 1/0 شود، برنامه با خطای زمان اجرا یا Runtime Error مواجه خواهد شد. خطاهای زمان اجر به نسبت خطاهای نحوی تعداد و فراوانی کمتری دارند ولی عیب یابی این نوع خطا به نسبت سخت تر از خطای نحوی است.
خطاهای منطقی یا معنایی (Logical/Semantic Error)
خطاهای منطقی، زمانی اتفاق می افتند که برنامه کاری را که برنامه نویس مد نظر داشته انجام نمی دهد. در این نوع خطا، هیچ گونه خطای نحوی و یا خطای زمان اجرایی وجود ندارد و برنامه به درستی کار می کند، ولی چیزی که مد نظر برنامه نویس است، انجام نشده و برنامه کار دیگری را انجام می دهد. معمولاً این نوع خطا، از پیچیده ترین و خطرناکترین نوع خطا محسوب می شود، زیرا اولاً مفسر هیچ ساز و کاری برای جلوگیری از این نوع خطا ندارد و در صورتی که برنامه نویس در عملیات تست متوجه این خطا نشود، برنامه همچنان این خطا یا باگ را داشته و نتایج غلطی تولید می کند. ثانیاً عیب یابی و رفع خطاهای منطقی معمولاً سخت تر و زمان گیر تر از دو نوع خطای قبلی است. عیب یابی و رفع این نوع خطا نیاز به مهارت بالایی در عملیات Debugging داشته و برنامه نویسان حرفه ای نیز بعضاً در این بخش با مشکلات زیادی رو به رو می شوند. برای آنکه جلوی این نوع خطاها گرفته شود باید هر قطعه ای از کدها که توسط برنامه نویس نوشته می شود، ابتدا تست و آزمایش شده و در صورتی که کدها به درستی کار کردند و نتایج مطلوبی ارائه دادند، عملیات کدنویسی ادامه یابد. به طور کلی اگر نسبت به خطایابی و رفع این نوع خطا به موقع مبادرت نشود، خطای ایجاد شده، در کل برنامه منشر شده و پروسه رفع خطای منطقی یا معنایی را پیچیده تر می کند.
# Logic/Semantic Error
# Python 2.x
print 10 / 3
# Semantic Error ==>> Expected 3.3333 but got 3
معنای برنامه فوق آن است که عدد 10 بر 3 تقسیم شده و مقدار 3.33333 دریافت گردد.، ولی این برنامه با خطای معنایی رو به رو شده و به جای تقسیم عدد اعشاری، تقسیم به صورت عدد صحیح انجام گرفته و در نتیجه به جای عدد 3.3333 عدد 3 دریافت می شود. این حالت نمونه ای از یک خطای معنایی ساده و اولیه می باشد.

تبدیل مختصات در نرم افزار Global Mapper

نقشه های پوششی زمین شناسی ایران در مقیاس 1:100000 بخش ششم

نرم افزار Slope Calculator V.1 برای استخراج نقشه شیب از مدل رقومی ارتفاعی با استفاده از 5 الگوریتم مختلف

فیلم آموزشی زمین مرجع یا ژئورفرنس لایه ها و داده های مکانی در نرم افزار Global Mapper

فیلم آموزشی زمین مرجع یا ژئورفرنس لایه ها و داده های مکانی در نرم افزار Arc GIS Desktop

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

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

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

فیلم آموزشی زمین مرجع یا ژئورفرنس لایه ها و داده های مکانی در نرم افزار Surfer

نقشه های پوششی زمین شناسی ایران در مقیاس 1:100000 بخش سوم

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

کارگاه آموزشی تحلیل داده های رستری با استفاده از زبان برنامه نویسی پایتون

روش برش حواشی نقشه های اسکن شده در نرم افزار Global Mapper

آشنایی و معرفی اولیه Google Earth Engine

فیلم آموزشی زمین مرجع یا ژئورفرنس لایه ها و داده های مکانی در نرم افزار Arc GIS Pro

نقشه تقسیمات سیاسی ایران

نرم افزار Coordinate Format Changer V.1 برای تبدیل فرمت مختصات

دانلود نقشه راههای ایران استایل 2

نقشه های توپوگرافی اسکن شده با مقیاس 1/50000 برگه زابل به شماره NH-41-1

نقشه های زمین شناسی اسکن شده ایران در مقیاس 1:250000

نقشه های توپوگرافی اسکن شده با مقیاس 1/50000 برگه جازموریان به شماره NG-40-4

آموزش برنامه نویسی پایتون بخش چهاردهم

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

دانلود نقشه راههای ایران استایل 4

دانلود رایگان تصاویر ماهواره ای ژئورفرنس شده با رزولوشن بالا

روش دانلود لایه های برداری لایه ها و عوارض شهری OSM

آموزش ویدئویی تحلیل های هیدرولوژی در نرم افزار ArcGIS Pro

دانلود نقشه راههای ایران استایل 3

نقشه های پوششی زمین شناسی ایران در مقیاس 1:100000 بخش دوم

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

آموزش برنامه نویسی پایتون بخش هجدهم

نرم افزار Terrain Morphometer V.1 برای اجرای آنالیز مورفومتری از مدل رقومی ارتفاعی

نرم افزار Coordinate to Map V.1 برای ترسیم عوارض برداری نقطه ای، خطی و پلیگونی بر اساس اطلاعات نقطه ای برداشت شده در عملیات نقشه برداری

نقشه های پوششی زمین شناسی ایران در مقیاس 1:100000 بخش هشتم

دانلود نقشه راههای ایران استایل 1

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

نقشه حوضه های هیدرولوژیکی ایران

روش های ترانسفورم (Transformation) مختصاتی در نرم افزار ArcGIS Pro

دانلود نرم افزار Arc GIS Pro 2.5 + روش نصب گام به گام

دیدگاهتان را بنویسید