مقدمه
آموزش تبدیل تاریخ میلادی به شمسی و برعکس با پایتون
هر برنامهنویس مبتدی به دنبال پروژههایی است که بتواند با آنها مهارتهای خود را تقویت کند و در عین حال یک ابزار واقعی بسازد. یکی از این پروژهها که هم کاربردی است و هم آموزشی، تبدیل تاریخ میلادی به شمسی و برعکس با پایتون است.
فرض کن نیاز داری یک تاریخ را از تقویم میلادی به شمسی تبدیل کنی یا برعکس، اما نمیخواهی به ابزارهای آنلاین یا نرمافزارهای پیچیده متکی باشی. حالا این سوال پیش میآید: «چطور میتوانم یک برنامه ساده بنویسم که این کار را برایم انجام دهد؟» 🤔
اینجاست که این مقاله آموزشی وارد میشود! 🎉 در اینجا، گامبهگام یاد میگیری چطور یک برنامه بسازی که با گرفتن روز، ماه و سال، تاریخ را به شکل موردنظر تبدیل کند. علاوه بر این، در طول این مسیر با مفاهیم مهمی مثل مدیریت ورودی، استفاده از کتابخانههای پایتون و حتی نمایش درست متن فارسی در ترمینال آشنا میشوی.
پس اگر آمادهای اولین پروژه کاربردی خودت را با پایتون بسازی، همراه ما باش تا یاد بگیری چطور با چند خط کدنویسی ساده، یک ابزار واقعی و جذاب طراحی کنی. 🚀
🔍 چرا تبدیل تاریخ مهم است؟
در زندگی روزمره، ما بین تقویم شمسی و میلادی جابهجا میشویم. گاهی نیاز داریم تاریخ تولد یا رویدادی خاص را از شمسی به میلادی تبدیل کنیم، یا شاید بخواهیم تاریخ یک ایمیل کاری که با فرمت میلادی ارسال شده را به شمسی برگردانیم. هر دو تقویم برای کاربردهای متفاوتی در زندگی ما اهمیت دارند.
اما چرا این دو تقویم متفاوت هستند؟ تقویم میلادی بر اساس حرکت زمین به دور خورشید محاسبه میشود، در حالی که تقویم شمسی در ایران با تکیه بر آغاز بهار تنظیم شده است. این تفاوت باعث میشود که تاریخها در این دو تقویم همواره با هم همخوانی نداشته باشند و نیاز به تبدیل داشته باشیم.
در این مقاله، این چالش را با کمک برنامهنویسی پایتون حل خواهیم کرد تا به راحتی بتوانیم تاریخها را از یک تقویم به دیگری تبدیل کنیم.
ابزارها و کتابخانههای لازم برای تبدیل تاریخ با پایتون
برای اینکه برنامه ما به درستی کار کند، نیاز داریم پایتون را نصب کنیم و از چند کتابخانه پرکاربرد برای تبدیل تاریخ و نمایش صحیح متن فارسی استفاده کنیم. در این بخش به ابزارهایی که برای اجرای این برنامه لازم داریم، میپردازیم.
نصب پایتون
قبل از هر چیزی باید مطمئن شوید که پایتون روی سیستم شما نصب شده است. پایتون یکی از محبوبترین زبانهای برنامهنویسی است و به راحتی میتوانید آن را از سایت رسمی دانلود کنید.
🔗 مراحل نصب پایتون:
- به سایت python.org بروید و نسخه متناسب با سیستمعامل خود (ویندوز، مک یا لینوکس) را دانلود کنید.
- هنگام نصب، گزینه “Add Python to PATH” را انتخاب کنید. این کار باعث میشود پایتون در محیط ترمینال یا Command Prompt قابل دسترسی باشد.
- پس از نصب، در ترمینال دستور زیر را وارد کنید تا مطمئن شوید پایتون به درستی نصب شده است:
- python –version
اگر نسخه پایتون نمایش داده شد، یعنی نصب موفقیتآمیز بوده است.
آموزش نصب کتابخانههای تبدیل تاریخ در پایتون
برای تبدیل تاریخ میلادی به شمسی و برعکس و همچنین نمایش صحیح متن فارسی، به سه کتابخانه نیاز داریم:
- jdatetime: برای تبدیل تاریخ.
- arabic_reshaper: برای اصلاح اتصال حروف فارسی.
- bidi.algorithm: برای تنظیم راست به چپ متن فارسی.
۱. کتابخانه jdatetime
کتابخانه jdatetime یک ابزار قوی برای کار با تاریخ شمسی است که به راحتی تاریخهای میلادی را به شمسی و برعکس تبدیل میکند.
🔗 نصب کتابخانه
pip install jdatetime
۲. کتابخانه arabic_reshaper
این کتابخانه برای اصلاح اتصال حروف فارسی استفاده میشود. اگر از آن استفاده نکنید، حروف فارسی در ترمینال جدا از هم نمایش داده میشوند.
🔗 نصب کتابخانه
pip install arabic-reshaper
۳. کتابخانه bidi.algorithm (H4)
کتابخانه bidi.algorithm برای تنظیم راستچین (RTL) متن فارسی استفاده میشود. این کتابخانه جهت متن را طوری تنظیم میکند که در ترمینال به درستی نمایش داده شود.
🔗 نصب کتابخانه
pip install python-bidi
ترکیب کتابخانهها در پروژه
برای اینکه متن فارسی در ترمینال درست نمایش داده شود، باید از ترکیب دو کتابخانه arabic_reshaper و bidi.algorithm استفاده کنیم.
🔧 تابع نهایی برای پردازش متن فارسی
from bidi.algorithm import get_display
import arabic_reshaper
def process_farsi_text(text):
reshaped_text = arabic_reshaper.reshape(text) # اصلاح اتصال حروف
return get_display(reshaped_text) # تنظیم جهت راست به چپ
چرا این ابزارها ضروری هستند؟
- بدون jdatetime نمیتوانید تاریخها را به راحتی بین تقویم میلادی و شمسی تبدیل کنید.
- بدون arabic_reshaper، حروف فارسی به صورت جدا از هم نمایش داده میشوند.
- بدون bidi.algorithm، متن فارسی در ترمینال به صورت معکوس یا چپچین دیده میشود.
ساخت گامبهگام برنامه تبدیل تاریخ در پایتون
حالا که ابزارهای موردنیاز را آماده کردیم، وقت آن است که برنامه را مرحله به مرحله طراحی کنیم. این پروژه به شما کمک میکند با مفاهیم پایهای پایتون مثل ورودیها، شرطها، و استفاده از کتابخانهها آشنا شوید. در ادامه، هر بخش از برنامه را توضیح میدهیم.
دریافت ورودی از کاربر
اولین قدم در طراحی برنامه، دریافت تاریخ از کاربر است. برای این کار، برنامه به صورت جداگانه سال، ماه و روز را از کاربر میپرسد. نکته مهم این است که برنامه باید ورودیهای فارسی و انگلیسی را به درستی پردازش کند و اعداد فارسی را به انگلیسی تبدیل کند.
💡 چرا این مرحله مهم است؟
ورودیها باید دقیق و معتبر باشند، زیرا یک خطای کوچک (مثل وارد کردن ماه ۱۳ یا روز ۳۲) میتواند کل فرآیند تبدیل تاریخ را مختل کند.
🔧 کد نمونه برای دریافت ورودی
def get_date_input(prompt):
while True:
try:
value = input(process_farsi_text(prompt)).strip()
# تبدیل اعداد فارسی به انگلیسی
value = value.translate(str.maketrans("۰۱۲۳۴۵۶۷۸۹", "0123456789"))
return int(value)
except ValueError:
print(process_farsi_text("لطفاً یک عدد معتبر وارد کنید."))
🔹 نکات کلیدی این بخش
- استفاده از تابع translate برای تبدیل اعداد فارسی به انگلیسی.
- استفاده از شرطهای try-except برای مدیریت ورودیهای نامعتبر.
تبدیل تاریخ میلادی به شمسی
پس از دریافت تاریخ میلادی از کاربر، باید آن را به تاریخ شمسی تبدیل کنیم. این تبدیل با کمک کتابخانه jdatetime انجام میشود.
💡 چرا این مرحله مهم است؟
تبدیل تاریخ میلادی به شمسی برای کاربران ایرانی بسیار کاربردی است، مثلاً برای تنظیم برنامهها، پیگیری رویدادها، یا کارهای روزانه.
🔧 کد نمونه برای تبدیل تاریخ میلادی به شمسی
def convert_to_shamsi():
print(process_farsi_text("تاریخ میلادی را وارد کنید."))
year = get_date_input("سال (yyyy): ")
month = get_date_input("ماه (mm): ")
day = get_date_input("روز (dd): ")
try:
miladi_date = datetime(year, month, day)
shamsi_date = jdatetime.date.fromgregorian(date=miladi_date)
print(process_farsi_text(f"تاریخ شمسی: {shamsi_date.strftime('%Y-%m-%d')}"))
except ValueError:
print(process_farsi_text("تاریخ وارد شده معتبر نیست."))
🔹 نکات کلیدی این بخش
- استفاده از jdatetime.date.fromgregorian برای تبدیل میلادی به شمسی.
- مدیریت خطاها برای تاریخهای نامعتبر.
تبدیل تاریخ شمسی به میلادی
💡 چرا این مرحله مهم است؟
تاریخ میلادی در اکثر سیستمهای جهانی استفاده میشود و تبدیل تاریخ شمسی به میلادی میتواند از اشتباهات جلوگیری کند.
🔧 کد نمونه برای تبدیل تاریخ شمسی به میلادی
def convert_to_miladi():
print(process_farsi_text("تاریخ شمسی را وارد کنید."))
year = get_date_input("سال (yyyy): ")
month = get_date_input("ماه (mm): ")
day = get_date_input("روز (dd): ")
try:
shamsi_date = jdatetime.date(year, month, day)
miladi_date = shamsi_date.togregorian()
print(process_farsi_text(f"تاریخ میلادی: {miladi_date.strftime('%Y-%m-%d')}"))
except ValueError:
print(process_farsi_text("تاریخ وارد شده معتبر نیست."))
🔹 نکات کلیدی این بخش
- استفاده از shamsi_date.togregorian() برای تبدیل شمسی به میلادی.
- اطمینان از مدیریت خطاها در ورودی.
حل مشکل نمایش متن فارسی در برنامههای پایتون
متن فارسی در ترمینال به صورت پیشفرض به درستی نمایش داده نمیشود. با کمک کتابخانههای arabic_reshaper و bidi.algorithm، میتوان متن فارسی را به صورت صحیح و راستچین نمایش داد. چون اگر متن فارسی به درستی نمایش داده نشود، کاربر تجربه ناخوشایندی خواهد داشت و ممکن است برنامه را غیرحرفهای بداند.
🔧 کد نمونه برای نمایش صحیح متن فارسی
from bidi.algorithm import get_display
import arabic_reshaper
def process_farsi_text(text):
reshaped_text = arabic_reshaper.reshape(text) # اصلاح اتصال حروف
return get_display(reshaped_text) # تنظیم جهت راست به چپ
🔹 نکات کلیدی این بخش
- استفاده از arabic_reshaper.reshape برای اتصال حروف فارسی.
- استفاده از get_display برای راستچین کردن متن.
کد کامل و آماده اجرای تبدیل تاریخ در پایتون
حالا که مراحل طراحی برنامه را مرحله به مرحله توضیح دادیم، وقت آن است که کد نهایی را همراه با توضیحات ارائه کنیم. در این بخش، ابتدا توابع برنامه را معرفی میکنیم و سپس نحوه اجرای منوی اصلی را توضیح میدهیم. با این برنامه، میتوانید به سادگی تاریخ میلادی را به شمسی و برعکس تبدیل کنید و از یادگیری مفاهیم پایه پایتون لذت ببرید.
تعریف توابع
تمام عملکردهای اصلی برنامه در قالب توابع تعریف شدهاند تا برنامه قابل گسترش و مدیریت باشد. در ادامه هر تابع را همراه با توضیحات ارائه میکنیم:
۱. تابع پردازش متن فارسی
این تابع وظیفه دارد متن فارسی را برای نمایش صحیح در ترمینال اصلاح کند. بدون این تابع، متن فارسی ممکن است به صورت جدا از هم یا برعکس نمایش داده شود.
from bidi.algorithm import get_display
import arabic_reshaper
def process_farsi_text(text):
reshaped_text = arabic_reshaper.reshape(text) # اصلاح اتصال حروف
return get_display(reshaped_text) # تنظیم جهت راست به چپ
🔹 نکات کلیدی این بخش
- arabic_reshaper برای اتصال حروف فارسی.
- bidi.algorithm برای راستچین کردن متن.
۲. تابع دریافت ورودی از کاربر
این تابع ورودیهای کاربر را به صورت عدد دریافت میکند و مطمئن میشود که اعداد فارسی و انگلیسی به درستی پردازش شوند.
def get_date_input(prompt):
while True:
try:
value = input(process_farsi_text(prompt)).strip()
value = value.translate(str.maketrans("۰۱۲۳۴۵۶۷۸۹", "0123456789")) # تبدیل اعداد فارسی به انگلیسی
return int(value)
except ValueError:
print(process_farsi_text("لطفاً یک عدد معتبر وارد کنید."))
🔹 نکات کلیدی این بخش
- تبدیل اعداد فارسی به انگلیسی برای سازگاری با کد.
- مدیریت خطاهای ورودی با try-except.
۳. تبدیل تاریخ میلادی به شمسی
این تابع تاریخ میلادی را از کاربر دریافت کرده و آن را به تاریخ شمسی تبدیل میکند.
from datetime import datetime
import jdatetime
def convert_to_shamsi():
print(process_farsi_text("تاریخ میلادی را وارد کنید."))
year = get_date_input("سال (yyyy): ")
month = get_date_input("ماه (mm): ")
day = get_date_input("روز (dd): ")
try:
miladi_date = datetime(year, month, day)
shamsi_date = jdatetime.date.fromgregorian(date=miladi_date)
print(process_farsi_text(f"تاریخ شمسی: {shamsi_date.strftime('%Y-%m-%d')}"))
except ValueError:
print(process_farsi_text("تاریخ وارد شده معتبر نیست."))
🔹 نکات کلیدی این بخش
- استفاده از jdatetime.date.fromgregorian برای تبدیل.
- مدیریت خطاها برای تاریخهای نامعتبر.
۴. تبدیل تاریخ شمسی به میلادی
این تابع تاریخ شمسی را از کاربر دریافت کرده و آن را به میلادی تبدیل میکند.
def convert_to_miladi():
print(process_farsi_text("تاریخ شمسی را وارد کنید."))
year = get_date_input("سال (yyyy): ")
month = get_date_input("ماه (mm): ")
day = get_date_input("روز (dd): ")
try:
shamsi_date = jdatetime.date(year, month, day)
miladi_date = shamsi_date.togregorian()
print(process_farsi_text(f"تاریخ میلادی: {miladi_date.strftime('%Y-%m-%d')}"))
except ValueError:
print(process_farsi_text("تاریخ وارد شده معتبر نیست."))
🔹 نکات کلیدی این بخش
- استفاده از shamsi_date.togregorian برای تبدیل.
- مدیریت خطاها برای تاریخهای نامعتبر.
اجرای منوی اصلی
منوی اصلی برنامه به کاربر امکان میدهد که بین تبدیل تاریخ میلادی به شمسی، تاریخ شمسی به میلادی یا خروج از برنامه یکی را انتخاب کند.
def main():
while True:
print(process_farsi_text("\n1: تبدیل میلادی به شمسی"))
print(process_farsi_text("2: تبدیل شمسی به میلادی"))
print(process_farsi_text("3: خروج"))
choice = input(process_farsi_text("یک گزینه را انتخاب کنید: ")).strip()
if choice == "1":
convert_to_shamsi()
elif choice == "2":
convert_to_miladi()
elif choice == "3":
print(process_farsi_text("خدانگهدار!"))
break
else:
print(process_farsi_text("گزینه نامعتبر است. لطفاً دوباره تلاش کنید."))
🔹 نکات کلیدی این بخش
- نمایش گزینههای موجود به کاربر.
- هدایت به توابع مناسب بر اساس انتخاب کاربر.
- امکان خروج از برنامه با انتخاب گزینه “خروج“.
کد نهایی برنامه
در پایان، کد نهایی برنامه به صورت کامل و آماده اجرا به این شکل است:
from bidi.algorithm import get_display
import arabic_reshaper
import jdatetime
from datetime import datetime
def process_farsi_text(text):
reshaped_text = arabic_reshaper.reshape(text)
return get_display(reshaped_text)
def get_date_input(prompt):
while True:
try:
value = input(process_farsi_text(prompt)).strip()
value = value.translate(str.maketrans("۰۱۲۳۴۵۶۷۸۹", "0123456789"))
return int(value)
except ValueError:
print(process_farsi_text("لطفاً یک عدد معتبر وارد کنید."))
def convert_to_shamsi():
print(process_farsi_text("تاریخ میلادی را وارد کنید."))
year = get_date_input("سال (yyyy): ")
month = get_date_input("ماه (mm): ")
day = get_date_input("روز (dd): ")
try:
miladi_date = datetime(year, month, day)
shamsi_date = jdatetime.date.fromgregorian(date=miladi_date)
print(process_farsi_text(f"تاریخ شمسی: {shamsi_date.strftime('%Y-%m-%d')}"))
except ValueError:
print(process_farsi_text("تاریخ وارد شده معتبر نیست."))
def convert_to_miladi():
print(process_farsi_text("تاریخ شمسی را وارد کنید."))
year = get_date_input("سال (yyyy): ")
month = get_date_input("ماه (mm): ")
day = get_date_input("روز (dd): ")
try:
shamsi_date = jdatetime.date(year, month, day)
miladi_date = shamsi_date.togregorian()
print(process_farsi_text(f"تاریخ میلادی: {miladi_date.strftime('%Y-%m-%d')}"))
except ValueError:
print(process_farsi_text("تاریخ وارد شده معتبر نیست."))
def main():
while True:
print(process_farsi_text("\n1: تبدیل میلادی به شمسی"))
print(process_farsi_text("2: تبدیل شمسی به میلادی"))
print(process_farsi_text("3: خروج"))
choice = input(process_farsi_text("یک گزینه را انتخاب کنید: ")).strip()
if choice == "1":
convert_to_shamsi()
elif choice == "2":
convert_to_miladi()
elif choice == "3":
print(process_farsi_text("خدانگهدار!"))
break
else:
print(process_farsi_text("گزینه نامعتبر است. لطفاً دوباره تلاش کنید."))
if __name__ == "__main__":
main()
بررسی چالشهای تبدیل تاریخ میلادی به شمسی با پایتون
هر پروژه برنامهنویسی، حتی اگر ساده باشد، با چالشهایی همراه است که حل کردن آنها بخش هیجانانگیز یادگیری محسوب میشود. در این پروژه تبدیل تاریخ میلادی به شمسی و برعکس با پایتون، با دو چالش اصلی مواجه میشویم: نمایش صحیح متن فارسی در ترمینال و مدیریت ورودیهای نامعتبر. در ادامه هر چالش را توضیح میدهیم و راهحلهای ارائهشده در برنامه را بررسی میکنیم.
نمایش صحیح متن فارسی در ترمینال
یکی از بزرگترین چالشها هنگام کار با متن فارسی در ترمینال، نمایش نامناسب حروف است. این مشکل زمانی رخ میدهد که حروف فارسی به صورت جدا از هم یا برعکس نمایش داده شوند. برای حل این مسئله، نیاز است متن را قبل از نمایش، پردازش کنیم.
🔧 راهحل ارائهشده در برنامه:
برای رفع این مشکل، از ترکیب دو کتابخانه arabic_reshaper و bidi.algorithm استفاده کردیم:
- arabic_reshaper حروف فارسی را به صورت متصل اصلاح میکند.
- bidi.algorithm متن را راستچین و جهت آن را تنظیم میکند.
مدیریت ورودیهای نامعتبر
چالش بعدی مربوط به ورودیهایی است که کاربر ممکن است به اشتباه وارد کند. برای مثال:
- وارد کردن اعداد خارج از بازه صحیح (مثل ماه ۱۳ یا روز ۳۲).
- استفاده از کاراکترهای غیرعددی به جای اعداد.
- وارد کردن اعداد فارسی به جای انگلیسی.
🔧 راهحل ارائهشده در برنامه:
برای مدیریت ورودیها:
- از تابع translate برای تبدیل اعداد فارسی به انگلیسی استفاده شد.
- از ساختار try-except برای مدیریت خطاهای ناشی از ورودیهای نامعتبر بهره گرفتیم.
- پیامهای مناسب به کاربر نمایش داده میشود تا اشتباهاتش را اصلاح کند.
🔗 مثال کد حل این چالش
def get_date_input(prompt):
while True:
try:
value = input(process_farsi_text(prompt)).strip()
value = value.translate(str.maketrans("۰۱۲۳۴۵۶۷۸۹", "0123456789")) # تبدیل اعداد فارسی به انگلیسی
return int(value)
except ValueError:
print(process_farsi_text("لطفاً یک عدد معتبر وارد کنید."))
مزیت این راه حل
- جلوگیری از کرش کردن برنامه.
- راهنمایی کاربر برای وارد کردن اطلاعات صحیح.
جمعبندی راهحلها
در این پروژه
۱.مشکل نمایش حروف فارسی در ترمینال با استفاده از دو کتابخانه arabic_reshaper و bidi.algorithm حل شد.
۲.رای مدیریت ورودیهای نامعتبر، از تبدیل اعداد فارسی به انگلیسی و بررسی صحت دادهها با ساختار try-except استفاده شد.
این چالشها و راهحلها نه تنها برنامه را حرفهایتر کردهاند، بلکه به کاربران مبتدی نشان میدهند چگونه در مواجهه با مشکلات رایج، از ابزارها و تکنیکهای مناسب استفاده کنند.
سوالات متداول
- آیا میتوانم این برنامه را روی هر سیستمی اجرا کنم؟
بله، این برنامه با استفاده از زبان برنامهنویسی پایتون نوشته شده و روی هر سیستمی که پایتون نصب شده باشد (ویندوز، مک، لینوکس)، قابل اجرا است. فقط کافی است مطمئن شوید که کتابخانههای موردنیاز را نصب کردهاید. - چرا متن فارسی در ترمینال به درستی نمایش داده نمیشود؟
متن فارسی به صورت پیشفرض ممکن است در ترمینال معکوس یا جدا از هم نمایش داده شود. برای حل این مشکل، ما از کتابخانههای arabic_reshaper و bidi.algorithm استفاده کردهایم که متن فارسی را اصلاح کرده و به درستی نمایش میدهند. - آیا این برنامه فقط از اعداد انگلیسی پشتیبانی میکند؟
خیر، در این برنامه ورودیهای کاربر (روز، ماه و سال) میتوانند به صورت اعداد فارسی یا انگلیسی وارد شوند. برنامه به طور خودکار اعداد فارسی را به انگلیسی تبدیل میکند. - اگر تاریخ وارد شده نامعتبر باشد، برنامه چه واکنشی نشان میدهد؟
اگر کاربر تاریخ نامعتبری مثل ماه ۱۳ یا روز ۳۲ وارد کند، برنامه با استفاده از مدیریت خطاها، پیام مناسبی نمایش میدهد و از کاربر میخواهد که دوباره تلاش کند. - چطور میتوانم برنامه را گسترش دهم؟شما میتوانید با اضافه کردن ویژگیهای زیر، برنامه را گسترش دهید:
- نمایش فاصله زمانی بین دو تاریخ.
- نمایش روز هفته برای تاریخ وارد شده.
- طراحی رابط گرافیکی (GUI) برای بهبود تجربه کاربری.
- آیا این پروژه برای یادگیری مفاهیم پیشرفته پایتون مناسب است؟
این پروژه بیشتر برای آشنایی با مفاهیم پایه مثل دریافت ورودی، مدیریت خطا و استفاده از کتابخانهها طراحی شده است. با این حال، میتوانید از این پروژه به عنوان پایهای برای یادگیری موضوعات پیشرفتهتر مثل طراحی رابط کاربری یا کار با تاریخهای پیچیدهتر استفاده کنید.
جمعبندی
برنامهنویسی پایتون، مثل یک ابزار جادویی است که به تو امکان میدهد ایدههای ذهنیات را به واقعیت تبدیل کنی. امروز با یک پروژه ساده یاد گرفتی که چطور از پایتون برای حل یک نیاز واقعی استفاده کنی. این فقط یک شروع است. تصور کن اگر مهارتهای بیشتری در پایتون یاد بگیری، چه کارهای شگفتانگیزی میتوانی انجام دهی! 🚀
اگر میخواهی زبان پایتون را گام به گام یاد بگیری و برنامههای پیشرفتهتری بسازی، پیشنهاد میکنم آموزش کامل پایتون را از دست ندهی. این آموزشها به تو کمک میکنند تا مفاهیم پایه را درک کنی، مهارتت را تقویت کنی و به یک برنامهنویس حرفهای تبدیل شوی. 🌟
✨ امروز شروع کن و اولین قدم را در مسیر برنامهنویسی بردار! دنیای جذاب پایتون منتظر توست. 🎉