Skip to content

Latest commit

 

History

History
182 lines (137 loc) · 4.9 KB

File metadata and controls

182 lines (137 loc) · 4.9 KB

🤝 راهنمای مشارکت در پروژه

از اینکه می‌خواهید در تکمیل این پروژه مشارکت کنید، سپاسگزاریم! 🎉

📋 قبل از شروع

  1. فایل STATUS.md را بخوانید تا از وضعیت فعلی پروژه مطلع شوید
  2. یک مسئله از لیست اولویت‌ها انتخاب کنید
  3. مطمئن شوید که مسئله قبلاً تکمیل نشده است

🎯 انتخاب مسئله

اولویت‌بندی

  1. اولویت بالا: مسائل ساده (50 مسئله اول هر پوشه)
  2. اولویت متوسط: مسائل متوسط
  3. اولویت پایین: مسائل سخت

مسائل پیشنهادی برای شروع

  • A_basics: A0071-A0100
  • B_data_structures: B0022-B0050
  • C_functions_modules: C0006-C0050
  • D_file_data: D0006-D0050
  • E_oop: E0004-E0050
  • F_standard_modules: F0004-F0050

📝 فرمت استاندارد

1. فایل سوال (question.md)

# سوال کد_مسئله - عنوان_فارسی

## سطح: ساده/متوسط/سخت

## صورت مسئله
توضیح کامل مسئله به زبان ساده و روان

## ورودی
توضیح ورودی‌های مورد نیاز

## خروجی
توضیح خروجی مورد انتظار

## مثال
\```
ورودی:
[مثال ورودی]

خروجی:
[مثال خروجی]
\```

## راهنمایی
- نکته 1
- نکته 2
- نکته 3

2. فایل جواب (solution.py)

# کد_مسئله - عنوان_فارسی
# توضیح کوتاه یک خطی

# کد پایتون تمیز و خوانا
# با کامنت‌های مناسب

✅ چک‌لیست قبل از ارسال

  • فایل سوال با فرمت صحیح ایجاد شده
  • فایل جواب با فرمت صحیح ایجاد شده
  • کد تست شده و کار می‌کند
  • کد تمیز و خوانا است
  • کامنت‌های فارسی اضافه شده
  • حداقل یک مثال در سوال وجود دارد
  • راهنمایی‌های مفید ارائه شده
  • encoding فایل‌ها UTF-8 است

🎨 استانداردهای کدنویسی

Python Style Guide

  • از PEP 8 پیروی کنید
  • نام متغیرها باید معنادار باشند
  • از کامنت‌های فارسی استفاده کنید
  • کد باید ساده و قابل فهم باشد

مثال کد خوب:

# محاسبه فاکتوریل یک عدد
def factorial(n):
    if n == 0 or n == 1:
        return 1
    return n * factorial(n - 1)

# دریافت ورودی
number = int(input())
result = factorial(number)
print(result)

مثال کد بد:

def f(x):
    if x==0 or x==1:return 1
    return x*f(x-1)
n=int(input())
print(f(n))

📂 ساختار پوشه

پوشه_اصلی/
├── کد_مسئله/
│   ├── کد_مسئله_question.md
│   └── کد_مسئله_solution.py

مثال:

A_basics/
├── A0071/
│   ├── A0071_question.md
│   └── A0071_solution.py

🔍 بررسی کیفیت

قبل از ارسال، مطمئن شوید:

  1. صحت: کد بدون خطا اجرا می‌شود
  2. کامل بودن: تمام بخش‌های مورد نیاز وجود دارد
  3. وضوح: توضیحات واضح و قابل فهم است
  4. مثال: حداقل یک مثال کامل دارد
  5. راهنمایی: نکات مفید برای حل ارائه شده

🚀 نحوه ارسال

روش 1: Pull Request (توصیه می‌شود)

  1. Fork کردن پروژه
  2. ایجاد branch جدید
  3. اضافه کردن مسائل
  4. Commit با پیام مناسب
  5. ارسال Pull Request

روش 2: Issue

  1. ایجاد Issue جدید
  2. پیوست کردن فایل‌ها
  3. توضیح تغییرات

📧 ارتباط

اگر سوالی دارید:

🎓 نکات مهم

برای مسائل ساده:

  • مفاهیم پایه را پوشش دهید
  • کد ساده و مستقیم باشد
  • توضیحات کامل ارائه دهید

برای مسائل متوسط:

  • چند مفهوم را ترکیب کنید
  • الگوریتم‌های متوسط استفاده کنید
  • راه‌حل‌های مختلف را در نظر بگیرید

برای مسائل سخت:

  • مفاهیم پیشرفته را بکار ببرید
  • بهینه‌سازی را در نظر بگیرید
  • پیچیدگی زمانی و مکانی را توضیح دهید

🌟 تشکر

هر مشارکتی، کوچک یا بزرگ، ارزشمند است! با کمک شما، این پروژه به بهترین منبع آموزش پایتون فارسی تبدیل می‌شود. 💚


با تشکر از مشارکت شما! 🙏