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


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


آموزش برنامه نویسی پایتون بخش بیست و چهارم
توابع در پایتون (Functions)
توابع را می توان برای تعریف کدهای با قابلیت استفاده مجدد و سازماندهی و ساده سازی کدها مورد استفاده قرار داد. فرض کنید که نیاز به یافتن مجموع اعداد صحیح از 1 تا 10 و 20 تا 37 و 35 تا 49 هستید. در صورتی که بخواهید برنامه ای بنویسید که این عملیات را انجام دهد، کدهای شما برای این سه عملیات به صورت زیر خواهد بود:
sum = 0
for i in range(1, 11):
sum += i
print(“Sum from 1 to 10 is”, sum)
sum = 0
for i in range(20, 38):
sum += i
print(“Sum from 20 to 37 is”, sum)
sum = 0
for i in range(35, 50):
sum += i
print(“Sum from 35 to 49 is”, sum)
همانطور که ملاحظه گردید، کدهایی که برای انجام محاسبات مربوط به این سه عملیات نوشته شده است، بسیار به یکدیگر شبیه هستند به جز بخش مربوط به ابتدا و انتهای اعدادی که مورد پردازش قرار می گیرند که در این سه قطعه کد، متفاوت هستند. چقدر خوب خواهد بود که بتوانیم کدهایی بنویسیم که یکبار یک قطعه کد را نوشته و بارها در موارد مشابه از آن استفاده کنیم. در اصل در زبان برنامه نویسی پایتون این کار را با تعریف توابع انجام می دهیم که امکان ایجاد کدهای با قابلیت استفاده مجدد را فراهم می آورد. برای مثال کدهایی که در ادامه ملاحظه می کنید، می تواند با استفاده از یک تابع ساده سازی شود:
1 def sum(i1, i2):
2 result = 0
3 for i in range(i1, i2 + 1):
4 result += i
5
6 return result
7
8 def main():
9 print(“Sum from 1 to 10 is”, )
10 print(“Sum from 20 to 37 is”, sum(20, 37))
11 print(“Sum from 35 to 49 is”, sum(35, 49))
12
13 main() # Call the main function
در کدهای فوق، خط 1 تا 6، تابعی به نام sum را تعریف می کند که دارای دو آرگومان یا پارامتر ورودی است که این آرگومان ها به ترتیب i1 و i2 می باشند. خطوط 8 تا 11، تابع main را تعریف می کند که توابع sum (1,10) را برای محاسبه مجموع اعداد از 1 تا 10 فراخوانی می کند. تابع sum (20,37) را برای محاسبه مجموع اعداد از 20 تا 37 احضار نموده و نهایتاً تابع sum(35,49) را برای محاسبات مربوط به مجموع اعداد از 35 تا 49 صدا می زند. یک تابع، مجموعه ای از دستوراتی است که با یکدیگر در یک گروه قرار داده شده اند تا یک عملیات خاصی را انجام دهند.
تعریف تابع در پایتون (Defining a Function)
تابع شامل تعیین نام تابع، پارامترها یا آرگومان های ورودی تابع و بدنه آن می شود. سینتکس تعریف یک تابع در زبان برنامه نویسی پایتون به صورت زیر می باشد:
def functionName(list of parameters)
# Function body
بیایید نگاهی به یک تابع تعریف شده برای تعیین عدد بزرگتر بین دو عدد وارده به تابع داشته باشیم. این تابع را به نام max در نظر بگیرید که دارای دو پارامتر یا آرگومان به نام های num1 و num2 است که عدد بزرگتر از این توسط تابع تعیین و برگشت داده می شود. در شکل زیر مؤلفه های این تابع نشان داده شده است.

یک تابع در پایتون دارای یک سرآیند یا Header و بدنه یا body می باشد. بخش سرآیند یا header ابتدا از کلمه کلیدی def که مخفف define می باشد، استفاده نموده و سپس نام تابع بایستی تعیین گردد. تعریف نام تابع از تمامی قوانین مربوط به تعیین نام متغیرها بایستی پیروی کند. بعد از این بخش بایستی کولن “:” در انتهای بخش سرآیند قرار داده شود. متغیرهایی که در بخش header تابع معرفی می شوند را به نام پارامترهای مجازی و یا پارامترها یا آرگومان های تابع می شناسیم. یک پارامتر در اصل یک متغیر موقعیتی است که در زمانی که تابع فراخوان می شود مقادیر ورودی به تابع در این موقعیت ها قرار می گیرد و به عنوان ورودی های تابع pass می شود. این مقادیر که در هنگام فراخوانی تابع به صورت پارامترهای ورودی به تابع معرفی می شوند را با نام پارامترهای واقعی یا آرگومانهای تابع می شناسیم. پارامترها به صورت اختیاری هستند و توابع می توانند هیچ پارامتر ورودی را دریافت نکنند. برای مثال تابع random.randint() دارای هیچ پارامتر ورودی نمی باشد. برخی از توابع دارای مقدار بازگشتی می باشند. برخی دیگر می توانند هیچ مقدار بازگشتی نداشته باشند. در صورتی که یک تابع مقداری را برگرداند به نام توابع با مقدار بازگشتی نامیده می شوند. بدنه توابع شامل مجموعه ای از دستوراتی است که تعیین می کنند تابع چه کاری باید انجام دهد. برای مثال بدنه تابع max از دستور شرطی if برای تعیین اینکه کدام عدد بزرگتر است استفاده نموده و مقدار آن عدد را برگشت می دهد. دستور return که از کلید واژه return برای برگشت یک مقدار به احضار کننده تابع، استفاده می کند در توابع با مقدار بازگشتی مورد استفاده قرار می گیرد. دستور return را معمولاً در انتهای بدنه تابع قرار می دهند و هنگامی که این دستور اجرا می شود اجرای تابع متوقف شده و مقدار برگشت داده شده به فراخواننده تابع ارسال می گردد.
فراخوانی یا احضار یک تابع در پایتون (Calling a Function)
فراخوانی یک تابع، کدهای موجود در بدنه تابع را اجرا می کند. در بخش تعریف تابع، شما تعیین می کنید که چه اتفاقی یا چه کاری بایستی انجام گیرد. برای استفاده از یک تابع، بایستی آن را فراخوانی یا call کنید. برنامه ای که تابع را فراخوانی می کند به نام caller می نامند که خود می تواند تابعی دیگر باشد. دو روش برای فراخوانی توابع وجود دارد بر اساس اینکه مقدار برگشتی وجود داشته باشد یا خیر. در صورتی که تابع مقداری را برگشت دهد فراخوانی این نوع توابع معمولاً به صورت فراخوانی با مقدار به کار گرفته می شوند. برای مثال:
larger = max(3, 4)
تابع max(3,4) ابتدا فراخوانی شده و نتیجه ای که از این تابع برگشت یا return می شود به متغیری به نام larger انتساب داده می شود. به نمونه دیگری توجه کنید:
print(max(3, 4))
این تابع نتیجه برگشت داده شده توسط تابع max(3,4) را پرینت می کند.
در صورتی که یک تابع، هیچ مقداری را برگشت ندهد، فراخوانی آن تابع بایستی به صورت یک دستور یا statement باشد. برای مثال، تابع print هیچ مقداری را برگشت نمی دهد.
print(“Programming is fun!”)
نکته
تابعی که دارای مقدار بازگشتی می باشد را نیز می توان به صورت یک statement فراخوانی نمود. در این مورد، مقدار بازگشت داده شده، ignore شده و مد نظر قرار نمی گیرد. این حالت شرایط خاص و نادری است ولی در صورتی که فراخواننده تابع نیازی به مقدار بازگشتی آن نداشته باشد، امکان پذیر است.
در صورتی که یک برنامه، تابعی را فراخوانی کند، کنترل برنامه به تابع فراخوانی شده منتقل می گردد. سپس تابع فراخوانی شده، کنترل اجرای برنامه را مجدداً با استفاده از دستور return یا هنگامی که اجرای تابع پایان پذیرد، به فراخواننده تابع بر می گرداند.
1 # Return the max of two numbers
2 def max(num1, num2):
3 if num1 > num2:
4 result = num1
5 else:
6 result = num2
7
8 return result
9
10 def main():
11 i = 5
12 j = 2
13 k = # Call the max function
14 print(“The larger number of”, i, “and”, j, “is”, k)
15
16 main() # Call the main function
برنامه فوق همان طور که ملاحظه می گردد، دارای توابع main و max می باشد. دستورات این برنامه تابع main را در خط 16 فراخوانی می کند. معمولاً در برنامه ها، تابعی به نام main تعریف می گردد. اکنون چطور این برنامه اجرا می گردد ؟ مفسر پایتون ابتدا دستورات این برنامه را به صورت خط به خط، از خط اول می خواند. خط اول که کامنت بوده و ignore می شود. هنگامی که مفسر بخش Header تابع را در خط 2 می خواند، تابع و بدنه آن را در حافظه نگهداری می کند. توجه داشته باشید که تعریف تابع، تنها تابع را ایجاد می کند اما تابع را احضار یا مجبور به اجرا نمی کند. نهایتاً مفسر تعریف تابع main را می خواند (در خطوط 10 تا 14) و آنها را در حافظه موقت نگهداری می کند. مفسر دستورات خط 16 را می خواند که تابع main را احضار نموده و باعث می شود این تابع اجرا شود. اکنون کنترل اجرای برنامه وارد تابع main می شود به طوری که در شکل زیر این مراحل نشان داده شده است:


ترکیب باند: تبدیل تصاویر سیاه – سفید به تصاویر رنگی

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

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

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

آموزش صفر تا صد ترسیم نقشه های توپوگرافی حرفه ای در نرم افزار Arc GIS

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

مدلسازی سایه-اندازی ساختمان ها در چشم اندازهای شهری در نرم افزار ArcGIS Pro

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

روش نصب نرم افزار Arc GIS Pro 2.8

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

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

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

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

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

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

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

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

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

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

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

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