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


هزار کاربرد و استفاده GIS

آنالیز رستری در سیستم اطلاعات جغرافیایی – مکانی (GIS)

تفاوت بین ژئوماتیک (Geomatics) و جی آی اس (GIS)

50 ماهواره تاثیر گذار در تاریخ سنجش از دور

جدول تناوبی تحلیل های مکانی در 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)

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

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


آموزش برنامه نویسی پایتون بخش بیست و دوم
حلقه های تکرار (loops)
یک حلقه می تواند برای اجرای یک دستور به صورت مکرر و تکراری مورد استفاده قرار گیرد.
فرض کنید که نیاز به نمایش یک رشته (مثلاً رشته “Programming is Fun” ) به تعداد 100 بار هستید. برای نوشتن این برنامه، اینکه بخواهیم این کد را 100 بار بنویسیم کار زمان بر و سختی خواهد بود.

بنابراین چطور بایستی این مسئله را حل کرد؟ در زبان برنامه نویسی پایتون یک ساختار قدرتمندی به نام حلقه های تکرار وجود دارد که تعداد اجرای یک قطعه از برنامه ها را کنترل می کند که به این ساختارها، ساختاهای تکرار می گویند. با استفاده از یک دستور حلقه، نیاز به نوشتن دستور print به تعداد 100 بار نخواهید بود. خیلی ساده با استفاده از حلقه ها به کامپیوتر دستور می دهید که یک رشته را به تعداد دلخواه مثلاً 100 بار چاپ کند. یک حلقه از نوع while را می توان به صورت زیر نوشت:
count = 0
while count < 100:
print(“Programming is fun!”)
count = count + 1
متغیر count در ابتدا برابر با 0 است. این حلقه درست بودن عبارت count < 100 را بررسی می کند. در صورت درست بودن این عبارت، بدنه حلقه اجرا می شود. بدنه حلقه بخشی از حلقه است که شامل دستوراتی است که رشته Programming is Fun را به طور متوالی اجرا و چاپ می کند و در هر بار اجرای حلقه متغیر count را یک واحد افزایش می دهد. این حلقه به طور متوالی بدنه حلقه را اجرا می کند تا آنکه عبارت count < 100 به صورت نادرست یا False ارزیابی شود. (که این حالت زمانی اتفاق می افتد که مقدار متغیر count به 100 برسد). در این زمان، حلقه شکسته شده و دستور بعد از حلقه در صورتی که وجود داشته باشد اجرا شده و روند اجرای برنامه دنبال می گردد. یک حلقه ساختاری است که اجرای متوالی بلوکی از دستورات را اجرا می کند. مفهوم حلقه ها یکی از مبانی بیسیک و بنیادین در مبحث برنامه نویسی در تمامی زبان های برنامه نویسی است. در زبان برنامه نویسی پایتون دو نوع حلقه وجود دارد: حلقه while و حلقه for. حلقه while یک حلقه با کنترل شرطی است که شرط ادامه و یا توقف حلقه را در هر سیکل بررسی می کند. در صورتی که شرط اجرای حلقه True ارزیابی شود، حلقه ادامه پیدا خواهد کرد و هر زمان که شرط اجرای حلقه False ارزیابی شود حلقه شکسته خواهد شد و اجرای آن متوقف می شود. در صورتی که حلقه for، حلقه ای با کنترل تعداد تکرار می باشد و نیاز به شرط برای ادامه تکرار ندارد. در صورتی که تعداد تکرار مشخص باشد، حلقه for نتیجه بهتری در بردارد و در صورتی که تعداد تکرار نامشخص باشد و ادامه حلقه وابسته به شرایط خاصی باشد، حلقه while گزینه بهتری است. ولی در کل مسائل مختلف را می توان هم با حلقه for و هم با حلقه while پیاده سازی نمود.
حلقه while
حلقه while، دستورات را تا زمانی که شرط اجرای حلقه True ارزیابی شود، ادامه می دهد. سینتکس حلقه while به صورت زیر است:
while loop-continuation-condition:
# Loop body
Statement(s)

شکل زیر، فلوچارت مربوط به یک حلقه while را نشان می دهد. یک سیکل از اجرای یک حلقه را به نام یک تکرار یا iteration یا repetition از حلقه می نامند. هر حلقه دارای یک شرط اجرای حلقه می باشد که یک عبارت بولینی است که اجرای بدنه یا بلوک حلقه while را کنترل می کند. این عبارت بولینی در هر بار اجرای حلقه ارزایابی می شود تا تعیین کند که بدنه یا بلوک حلقه while باید اجرا شود یا نه. در صورتی که این عبارت به صورت True ارزیابی شود بدنه یا بلوک حلقه اجرا می شود و در غیر این صورت، کل حلقه شکسته و روند اجرای برنامه به دستوراتی که در ادامه قرار دارد منتقل شده و برنامه ادامه پیدا می کند. برنامه ای که 100 بار رشته Programming is fun ! را چاپ می کند در شکل زیر نشان داده شده است. فلوچارت مربوط به این حلقه در شکل زیر نشان داده شده است. شرط ادامه اجرای حلقه آن است که عبارت count < 100 درست یا True ارزیابی شود. در صورتی که این عبارت درست ارزیابی شود، دو دستور داخل بدنه یا بلوک while اجرا می گردد.

حلقه while، دستوراتی که در بلوک while قرار دارند را تا زمانی که شرط اجرای حلقه True ارزیابی می شود را اجرا می کند. در ادامه مثال دیگری از اینکه یک حلقه while چطور کار می کند ارائه شده است:
sum = 0
i = 1
while i < 10:
sum = sum + i
i = i + 1
print(“sum is”, sum) # sum is 45
در صورتی که عبارت i < 10 درست یا True ارزیابی شود. برنامه مقدار متغیر i را به متغیر sum اضافه می کند. متغیر i در ابتدا مقدار اولیه 1 را می گیرد، سپس به مقادیر 2 و 3 و … افزایش می یابد تا به مقدار 10 برسد. هنگامی که متغیر i به 10 رسید، عبارت i < 10 نادرست یا False خواهد بود و در نتیجه حلقه شکسته شده و پایان می پذیرد. در نتیجه مجموع اعداد 1 + 2 + 3 + … + 9 برابر با 45 محاسبه خواهد شد. فرض کنید این حلقه به اشتباه به صورت زیر نوشته شود:
sum = 0
i = 1
while i < 10:
sum = sum + i
i = i + 1
توجه داشته باشید که کل بدنه حلقه بایستی یک سطح به سمت داخل indent یا تورفته شود. در مثال فوق دستور i = i + 1 جز بدنه یا بلوک while به حساب می آید. این حلقه یک حلقه محدود می باشد که شرط i < 10 نهایتاً نقض شده و حلقه شکسته می شود. به این نوع حلقه، حلقه های while محدود گفته می شود.
نکته
توجه داشته باشید که شرط ادامه حلقه while سرانجام False می گردد تا اینکه حلقه while شکسته شده و پایان بپذیرد. یکی از خطاهای رایج برنامه نویسی شامل حلقه های نامحدود while می گردد. در صورتی که برنامه شما شروع به اجرای طولانی مدت نموده و روند اجرای حلقه پایان نپذیرد این امکان وجود دارد که با یک حلقه while نامحدود رو به رو باشید. در صورتی که برنامه را در پنجره command باز کرده باشید می توانید با فشردن همزمان CTRL + C برنامه را متوقف کنید.
احتیاط
برنامه نویسان اغلب به اشتباه یک حلقه را یک بار بیشتر و یا کمتر از آنچه مد نظرشان است، اجرا می کنند. این نوع اشتباه معمولاً به نام خطای off-by-one شناخته می شود. برای مثال حلقه ای که در کدهای زیر نشان داده شده است رشته Programming is fun را 101 بار به جای 100 بار چاپ می کند. این خطا از آنجا ناشی می شود که شرط count < 100 باید مورد استفاده قرار گیرد در صورتی که شرط count <= 100 استفاده شده است.
count = 0
while :
print(“Programming is fun!”)
count = count + 1
استراتژی های طراحی حلقه (loop-designed strategies)
نوشتن یک حلقه که به درستی کار کند برای برنامه نویسان مبتدی کار چندان ساده ای نیست. به سه گام زیر در طراحی و نوشتن یک حلقه توجه کنید:
گام اول: دستوراتی که باید تکرار شوند را مشخص کنید.
گام دوم: این دستورات را در یک حلقه همچون زیر قرار دهید.
while True:
Statements
گام سوم: شرط ادامه اجرای حلقه را تعیین کنید و دستورات متناسبی برای کنترل حلقه اضافه کنید.
while loop-continuation-condition:
Statements
Additional statements for controlling the loop

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

نرم افزار Z-scale Estimator

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

دانلود نرم افزار Envi 5.6

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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