ایجاد برنامه های خط فرمان با ماژول click – بخش دوم

در بخش نخست از سری مطلب های آموزش ماژول click برای ایجاد برنامه های خط فرمان در مورد ماژول click و ایجاد option صحبت کردیم و توضیح دادیم که چگونه می توانیم مقادیر را به option ها ارسال کنیم. در ادامه آموزش های ماژول click در این مطلب می خواهیم در مورد آرگومان ها صحبت کنیم. آرگومان ها (arguments) عملکردی شبیه به option ها دارند ولی با این تفاوت که، آرگومان ها وابسته به موقعیت (positional) هستند. کد زیر مثال ساده ای از پیاده سازی آرگومان را نشان می دهد. برای ایجاد یک آرگومان باید از ()click.argument استفاده کنیم.

ادامه‌ی خواندن

ایجاد برنامه های خط فرمان با ماژول click – بخش نخست

در مطلب ایجاد برنامه های خط فرمان با ماژول sys توضیح دادیم که چگونه توسط لیست sys.argv یک برنامه خط فرمان ساده ایجاد کنیم. در واقع هدف این بود که توضیح دهیم چگونه می توانیم آرگومان های ورودی به نام اسکریپت را کنترل کنیم. توجه کنید که نام اسکریپت در لیست sys.argv اولین المان با اندیس صفر است. اما فهرست sys.argv برای کاربردهای جدی و نوشتن برنامه های کاربردی به هیچ عنوان عملی و کاربردی ساده نخواهد داشت، بنابراین در این مطلب می خواهیم از ماژولی به نام click برای ایجاد برنامه های خط فرمان استفاده کنیم. ادامه‌ی خواندن

ایجاد برنامه های خط فرمان با ماژول sys

برنامه هایی که ما اجرا می کنیم باید ورودی را دریافت و سپس خروجی را برای کاربر ایجاد و نمایش دهند. این ورودی ها می توانند از طریق خط فرمان، واسط گرافیکی (GUI)، فایل های متنی به فرمت XML یا CSV یا JSON و یا پایگاه داده ها باشند. خروجی نیز به صورت معمول بر روی صفحه نمایش یا درون فایل ها یا پایگاه داده ها نوشته می شود. در این مطلب می خواهیم از طریق ماژول استاندارد sys برنامه هایی را ایجاد کنیم که از طریق خط فرمان ورودی را دریافت و خروجی را نمایش دهد. ادامه‌ی خواندن

دریافت وضعیت آب و هوا از طریق پایتون

در مطلب قبلی در مورد خواندن داده های به فرمت json صحبت کردیم و توضیح دادیم که چگونه از url داده های به فرمت json را بخوانیم و پردازش کنیم. در این مطلب می خواهیم از طریق api متن باز سایت OpenWeather، وضعیت اب و هوا را بر اساس نام شهر، پیدا کنیم. اولین کاری که باید انجام دهید، ثبت نام در سایت OpenWeather.org است. پس از آن باید از طریق این لینک درخواست API KEY کنید. از این API KEY درون برنامه برای انجام احراز هویت (authentication) استفاده می شود. ادامه‌ی خواندن

خواندن و نوشتن فایل های json در پایتون

JSON که کوتاه شده JavaScript Object Notation  است، فرمت استاندارد و مستقل از پلتفرم و یا زبان برنامه نویسی است که از آن برای تبادل اطلاعات (Information Exchange) میان سیستم های مختلف و مستقل از یکدیگر استفاده می شود. در این نوشته آموزش می دهیم که چگونه فایل های json که روی سیستم یا روی شبکه وجود دارند را بخوانیم و همچنین چگونه فایل های json را ایجاد کنیم.

در نوشته پسین نمونه ای را خواهیم گفت که با خواندن داده های به فرمت json داده های هواشناسی و وضعیت آب و هوا را بدست می آوریم. در پایتون ماژول استانداردی به نام json وجود دارد که تمامی نیازهای خواندن و ایجاد کردن فرمت json را پوشش می دهد. همچنین می توانید از کتابخانه Pandas نیز برای خواندن و نوشتن فرمت JSON کمک بگیرید.

در کد زیر نمونه ساده ای از داده های به فرمت json را نشان می دهد که متشکل از چندین جفت کلید و مقدار است که میان آکولادهای باز و بسته شده قرار دارند. برای شروع لطفا کد زیر را در یک فایل با پسوند json ذخیره کنید تا در ادامه این فایل را خوانده و پردازش کنیم. ادامه‌ی خواندن

مرتب سازی لیست و تاپل در پایتون

تابع sorted در پایتون برای مرتب سازی لیست، تاپل و دیکشنری ها استفاده می شود. همچنین هر متغیری از نوع لیست دارای متد sort است که لیست را به صورت درجا (In-Place) مرتب می کند. ساده ترین حالت استفاده از متد sort به صورت قطعه کد ۱ است. این متد می تواند هیچ ارگومانی دریافت نکند و لیست را به صورت صعودی و درجا مرتب کند. متد هیچ مقدار جدیدی بر نمی گرداند بلکه خود لیست را مرتب می کند. ادامه‌ی خواندن

تابع reduce در پایتون

تابع reduce دو آرگومان را به عنوان ورودی دریافت می کند. آرگومان اول نام یک تابع (یا یک تابع lambda) آرگومان دوم یک نوع داده متوالی مانند لیست یا تاپل است. عملکرد تابع reduce به این صورت است که ابتدا تابع آرگومان اول را بر روی دو آیتم اول اجرا می کند و سپس تابع آرگومان اول را بر روی نتیجه قبل و سومین آیتم اجرا می کند و همین روند را تا آخرین آیتم مطابق شکل ۱ انجام می دهد. مطابق شکل ۱ یک لیست شامل پنج عدد داریم و مطابق قطعه کد ۱ نیز یک تابع lambda برای جمع دو عدد استفاده شده است. ادامه‌ی خواندن

تابع filter در پایتون

در پایتون از تابع filter برای جداسازی برخی از آیتم های درون یک نوع داده متوالی استفاده می شود. مانند تابع map این تابع دو آرگومان دریافت می کند. اولین آرگومان یک تابع و دومین آرگومان نیز یک نوع داده متوالی مانند لیست و تاپل است. اگر شرط درون تابع برقرار باشد، تابع مقدار true و در غیر این صورت مقدار false برگشت داده می شود. در قطعه کد ۱ تابع lambda هر یک از اعداد درون لیست را بررسی می کند و اگر کوچکتر از صفر (منفی) باشد مقدار true برگشت داده می شود. مقدار نهایی اعداد منفی است که درون متغیر result ذخیره می شوند. ادامه‌ی خواندن

تابع map در پایتون برای انجام عملیات بر روی داده های متوالی

در پایتون لیست، تاپل و دیکشنری شامل توالی از عناصر (آیتم ها) هستند که برخی اوقات لازم است تا یک عملیات را بر روی هر یک از آیتم های آنها انجام دهیم. به طور مثال فرض کنید یک لیست از اعداد داریم که می خواهیم توان ۲ هر یک از آیتم های آنرا بدست آوریم. روش معمول این است که از حلقه for استفاده کنیم و حاصل توان ۲ هر آیتم را درون یک لیست جدید بریزیم. در قطعه کد ۱ ابتدا یک لیست از اعداد صفر تا ۱۰ ایجاد شده است و سپس در حلقه for توان ۲ هر عدد در لیست دیگری ذخیره می شود. ادامه‌ی خواندن

lambda برای تعریف توابع بی نام در پایتون

مانند هر زبان برنامه نویسی دیگر در پایتون می توان توابع بی نام (Anonymous Function) تغریف کرد. روش معمول برای تعریف توابع (توابع با نام) استفاده از کلمه کلیدی def است ولی برای تعریف توابع بی نام باید از کلمه کلیدی lambda استفاده کرد. توابع lambda معمولا همراه توابع map, reduce و filter استفاده می شوند. همانند توابعی که با def تعریف شده اند، توابع lambda نیز پس از تعریف باید فرخوانی شوند. ادامه‌ی خواندن