Table of Contents
ایدهٔ «کار را یکبار به کامپیوتر بسپار»
در فصل «خودکارسازی چیست؟» با مفهوم کلی خودکارسازی آشنا شدهاید. اینجا تمرکز ما روی کارهای خیلی ساده و روزمره است که میتوانید با چند خط کد پایتون آنها را خودکار کنید؛ کارهایی مثل:
- جابهجا کردن یا کپی کردن تعداد زیادی فایل
- تغییر نام گروهی فایلها
- تولید خودکار متنهای تکراری (مثل پیام خوشآمدگویی)
- انجام یک محاسبهٔ تکراری روی مجموعهای از دادهها
- تبدیل یک فرایند ۱۰ مرحلهای دستی به اجرای فقط یک اسکریپت
ایدهٔ اصلی:
هر کار تکراری که «تقریباً همیشه شبیه هم» انجام میدهید، نامزد خوبی برای خودکارسازی است.
در این فصل قرار نیست سراغ پروژههای پیچیده برویم؛ تمرین ما خودکارسازیهای کوچک است تا «الگوی فکری» شما برای دیدن چنین فرصتهایی شکل بگیرد.
شناسایی وظایف مناسب برای خودکارسازی
برای شروع، لازم است یاد بگیرید کدام کارها ارزش خودکار شدن دارند. چند نشانهٔ خوب:
- کاری که زیاد تکرار میکنید
- هر روز یکبار یا چند بار
- هر هفته روی فایلهای جدید
- کاری که مراحل واضح و تکراری دارد
- مثال: «فایلها را از پوشهٔ Downloads به پوشهٔ Photos منتقل کن»
- کاری که بهسادگی اشتباه میشود
- کپیـپیستهای زیاد
- احتمال جا انداختن یک فایل
- کاری که برای هر موردِ جدید، فقط چند پارامترش عوض میشود
- مثلاً در یک متن آماده، فقط نام و تاریخ را تغییر میدهید.
تمرین ذهنی ساده:
یک روز کامل، هر بار که کاری تکراری با کامپیوتر انجام میدهید، آن را در یک لیست یادداشت کنید. بعد با خودتان بپرسید:
«آیا پایتون میتواند این کار را انجام دهد؟»
ساخت یک اسکریپت خودکار ساده
یک «وظیفهٔ ساده» را میتوان اینطور به یک اسکریپت تبدیل کرد:
- ورودیها را مشخص کنید
- مثلاً نام پوشه، نام فایل، یا متنی که باید تولید شود.
- مراحل را دقیق بنویسید (به زبان انسان)
- گامبهگام: اول این، بعد آن.
- هر مرحله را با یک یا چند دستور پایتون پیاده کنید
- اسکریپت را تست کنید
- اول روی نمونهٔ کوچک، نه روی دادههای اصلی.
- هر جا لازم است، پیام چاپ کنید
- با
print()تا ببینید برنامه چه میکند.
مثال ۱: تولید یک پیام تکراری با مقادیر مختلف
فرض کنید باید برای چند نفر، یک پیام خوشآمدگویی شبیه زیر بسازید:
سلام [نام] عزیز،
به دورهٔ پایتون خوش آمدید. تاریخ شروع دوره: [تاریخ].
اگر بخواهید برای ۵۰ نفر این را دستی بنویسید، خستهکننده است. میتوانیم برای یک نفر آن را خودکار کنیم:
name = "علی"
start_date = "۱۴۰۳/۱۰/۰۱"
message = f"سلام {name} عزیز،\nبه دورهٔ پایتون خوش آمدید. تاریخ شروع دوره: {start_date}."
print(message)نکتهها:
- از
f"متن {متغیر}"برای قرار دادن متغیر وسط متن استفاده کردهایم. \nیک خط جدید میسازد.
با همین الگو، اگر اسامی را داشته باشید، میتوانید بهراحتی آن را روی چند نفر اجرا کنید (جزئیات کار با مجموعهها در فصل «مجموعههای داده» است، اینجا فقط ایده را میبینید).
مثال ۲: انجام یک محاسبهٔ تکراری روی چند عدد
فرض کنید هر روز باید مبلغ «حقوق + ۹٪ مالیات بر ارزش افزوده» را حساب کنید.
برای یک عدد، این برنامه کار را خودکار میکند:
salary = 15_000_000
tax_rate = 0.09
total = salary * (1 + tax_rate)
print("مبلغ نهایی:", total)اگر این کار را چند بار در روز انجام میدهید، داشتن چنین اسکریپتی یعنی:
- خطای محاسباتی کمتر
- صرفهجویی در زمان
- خروجی یکدست
بعداً میتوانید این را با گرفتن ورودی از کاربر ترکیب کنید (فصل ورودی/خروجی کاربر)، ولی اصل الگو همین است.
خودکارسازی کارهای سادهٔ فایلمحور (ایدهٔ مقدماتی)
جزئیات «کار با فایلها و پوشهها» در فصلهای دیگر میآید؛ اینجا فقط به عنوان «نمونهٔ وظیفهٔ ساده» ایدهها را میبینید.
ایده: ساختن گزارش روزانه با الگو
خیلی وقتها گزارشها یا یادداشتهای روزانه شکل ثابتی دارند، مثلاً:
- تاریخ:
- کارهای انجامشده:
- مشکلات:
- برنامهٔ فردا:
میتوانید اسکریپتی بنویسید که یک فایل متنی جدید با این قالب بسازد و تاریخ امروز را توی آن قرار دهد. این کار:
- شما را از «ساختن دستی فایل جدید، کپیکردن الگو» نجات میدهد.
- احتمال فراموشکردن یک بخش را کم میکند.
مثال ساده (روی مفهوم تمرکز کنید، نه جزئیات فایلها):
today = "۱۴۰۳/۱۰/۰۱"
filename = f"report_{today}.txt"
template = f"""گزارش روزانه - تاریخ: {today}
کارهای انجامشده:
مشکلات:
برنامهٔ فردا:
"""
print("نام فایل گزارش:", filename)
print("محتوای پیشنهادی:")
print(template)
در فصلهای بعدی، بهجای print، این متن را در فایل ذخیره خواهید کرد؛ اینجا فقط ایدهٔ «ساخت خودکار قالب متن» را میبینید.
شکستن یک کار دستی به گامهای قابلبرنامهنویسی
مهمترین مهارت در خودکار کردن وظایف ساده، «فکر کردن گامبهگام» است.
فرض کنید هر بار که فایلی را دریافت میکنید، این کارها را میکنید:
- فایل را دانلود میکنید.
- اسمش را به یک نام مرتب (مثلاً شامل تاریخ) تغییر میدهید.
- آن را به یک پوشهٔ خاص منتقل میکنید.
- در یک فایل متنی، یادداشت میکنید «امروز این فایل را دریافت کردم».
اگر بخواهید این کار را خودکار کنید، باید:
- ورودیها را مشخص کنید:
- نام فایل، تاریخ، پوشهٔ مقصد
- هر مرحله را به دستوراتی بشکنید:
- تغییر نام
- جابهجایی
- اضافه کردن یک خط متن به گزارش
الگوی فکری:
- الان من چه کار دستی میکنم؟
- اگر ربات بودم، گامهای دقیق و ریز من چه بود؟
- کدام گامها را الان با پایتون بلد هستم؟
- کدام گامها را بعداً یاد میگیرم؟ (مثلاً کار با پوشهها)
این روش کمک میکند حتی اگر هنوز همهٔ دستورات لازم را بلد نیستید، باز بتوانید برنامه را روی کاغذ طراحی کنید.
افزودن «انعطاف» به وظایف خودکار
یک قدم مهم در مسیر خودکارسازی این است که اسکریپت فقط برای یک شرایط خاص نباشد، بلکه:
- با مقادیر مختلف کار کند.
- مجبور نباشید برای هر ورودی، کد را تغییر دهید.
سه راه ساده برای انعطافپذیری بیشتر:
- استفاده از متغیرها بهجای عددهای ثابت
- بهجای
salary = 15000000، روی متغیرها و پارامترها فکر کنید. - استفاده از ورودی کاربر (در فصل ورودی/خروجی)
input()برای گرفتن مقدار از کاربر.- نوشتن توابع کوچک برای کارهای تکراری
- در فصل توابع میبینید که هر «کار کوچک» را میتوانید به یک تابع تبدیل کنید.
برای این فصل، همین که هنگام نوشتن اسکریپت ساده بپرسید:
«اگر فردا ورودی عوض شد، آیا مجبورم کد را ویرایش کنم؟»
کافی است. اگر جواب «بله» است، سعی کنید بخشی از آن را «عمومیتر» کنید (مثلاً عددها را در متغیرها بگذارید).
مدیریت خروجی و گزارش پیشرفت
در کارهای خودکار حتی ساده، مهم است که بدانید برنامه واقعاً چه کار کرده است. دو کار کمهزینه:
- استفادهٔ فکرشده از
print - چاپ یک پیام قبل یا بعد از هر عملیات مهم:
print("در حال تولید پیام خوشآمدگویی برای", name)- خلاصهٔ کار در پایان
- مثلاً:
print("تولید پیام برای 5 نفر کامل شد.")این کارها کمک میکند در خودکارسازیهای ساده هم اگر چیزی اشتباه شد، سریعتر متوجه شوید.
مثالهای ایدهای برای تمرین (بدون حل کامل)
برای خودتان تمرین کنید که چگونه آنها را به اسکریپت تبدیل کنید:
- محاسبهٔ خودکار مبلغ خرید با تخفیف
- ورودی: قیمت اصلی، درصد تخفیف
- خروجی: مبلغ نهایی که باید پرداخت شود
- ساخت متن رسید ساده
- ورودی: نام مشتری، مبلغ، تاریخ
- خروجی: متنی قالبدار که این اطلاعات را نشان میدهد
- محاسبهٔ مجموع ساعتهای کار در روز
- ورودی: ساعات مختلف کار (مثلاً ۳ ساعت + ۲.۵ ساعت + ۱ ساعت)
- خروجی: مجموع کل ساعتها
- تبدیل واحدهای ساده
- مثلاً تبدیل کیلومتر به متر، یا ساعت به دقیقه
- ساختن نامهای منظم برای فایلها (فقط بهصورت رشته)
- مثلاً ساختن رشتههایی مثل
report_1403_10_01.txt,report_1403_10_02.txtو ...
هدف این تمرینها این نیست که همهٔ جزئیات را همین حالا بلد باشید؛ هدف این است که یاد بگیرید به اطراف خود نگاه کنید و بپرسید:
«آیا این کار تکراری را میتوانم با چند خط پایتون برای همیشه راحت کنم؟»
هر بار که جواب شما «بله» است، یعنی یک وظیفهٔ سادهٔ جدید برای خودکارسازی پیدا کردهاید.