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


جدول تناوبی تحلیل های مکانی در GIS

معرفی هفت منبع داده اقلیمی رایگان جهانی

چرخش قطبی در مقابل چرخش خورشید آهنگ

آنالیز تصویر شئی گرا (OBIA)

تعامل انرژی در سنجش از دور : انعکاس، جذب و گسیل انرژی

معرفی 6 منبع رایگان داده های لیداری

آشنایی با SAR با استفاده از مثال

برنامه لندست : 50 سال آرشیو از تصاویر سطح زمین

دانلود رایگان نرم افزار ArcGIS Pro 2.8

ابر نقطه ای چیست ؟

انواع نقشه ها در سیستم اطلاعات جغرافیایی: 25 روش مختلف و جذاب برای نمایش داده های مکانی در GIS

تصحیحات اتمسفری در سنجش از دور چیست ؟

سیستم های تصویر نقشه چیست ؟ و چرا بعضا برای ما گمراه کننده هستند ؟

ژئودزی: ریاضیات مکان

گیرنده های GPS چگونه کار می کنند ؟ سه گانه سازی در مقابل مثلث بندی

مأموریت توپوگرافی رادار شاتل (SRTM)

چرا پنجره اتمسفری در علوم زمین دارای اهمیت است ؟

تصاویر ماهواره ای DigitalGlobe: وردویو(Worldview)، ژئوآی(GeoEye) و آیکونوس (IKONOS)

راهنمای طبقه بندی نزدیکترین همسایه در e-Cognition

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


آموزش برنامه نویسی پایتون بخش سوم
در این قسمت، به آموزش سه مبحث در مورد برنامه نویسی می پردازیم. مبحث نخست در مورد اجرای محاسبات ریاضی توسط زبان برنامه نویسی پایتون می باشد. مبحث بعدی در مورد استایل و عادات خوب و بد برنامه نویسی است و نهایتاً در مورد انواع خطاهای برنامه نویسی، با ذکر مصادیقی از این نوع خطاها در پایتون آشنا خواهیم شد.
استفاده از پایتون در اجرای محاسبات ریاضی
پایتون می تواند تمام انواع محاسبات ریاضی را انجام داده و نتایج را نشان دهد. برای اجرای محاسبات جمع، تفریق، ضرب و تقسیم دو عدد 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 دریافت می شود. این حالت نمونه ای از یک خطای معنایی ساده و اولیه می باشد.

دانلود و روش نصب نرم افزار Surfer 24

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

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

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

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

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

روش نصب نرم افزار ArcGIS Pro 3.0.2

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

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

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

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

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

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

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

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

معرفی و دانلود نرم افزار SAGA GIS

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

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

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

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

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

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

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

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

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

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

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

آموزش تحلیل های هیدرولوژی در نرم افزار Arc GIS Desktop

نقشه های موقعیت سیاسی منطقه مطالعاتی بخش دوم

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

روش نصب نرم افزار Envi 5.6

دانلود نقشه های توپوگرافی اسکن شده با مقیاس 1/50000 برگه تربت حیدریه به شماره NI-40-4

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

دانلود نرم افزار ArcGIS Pro 3.0.2

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

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

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

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

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

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