Pro Dev by SharohatCode
11 subscribers
1 photo
12 links
👨‍💻 Pro Dev Community by SharohatCode
مجتمع للمبرمجين والمبدعين المهتمين بالـ Python، تطوير المواقع، والذكاء الاصطناعي.
شروحات – مصادر – أفكار مشاريع – فرص وتحديات برمجية 🚀
تابع القناة وشاركنا رحلتك في عالم البرمجة 💻
Download Telegram
Channel created
مرحبًا بكم في قناة "مجتمع البرمجةوالتطوير"!

نحن سعداء بانضمامكم إلينا ونتطلع إلى تقديم محتوى مفيد وممتع لكم. في هذه القناة، نقدم شروحات ودروس متخصصة في التقنية والبرمجة وكل ما يهم عشاق التكنولوجيا باللغة العربية.

🔹 ما يمكنكم توقعه من قناتنا:
- شروحات مفصلة ومبسطة لأحدث التقنيات والأدوات.
- دورات تعليمية مجانية في مختلف مجالات البرمجة والتكنولوجيا.
- نصائح وحيل لتحسين مهاراتكم التقنية.
- أحدث الأخبار والمستجدات في عالم التقنية.

🔹 كيف يمكنكم الاستفادة القصوى:
- تأكدوا من تفعيل الإشعارات لتصلكم أحدث المنشورات فور نشرها.
- تفاعلوا معنا من خلال التعليقات والأسئلة؛ نحن هنا لمساعدتكم.
- شاركوا المحتوى مع أصدقائكم ليستفيد الجميع.

نحن هنا لنبني مجتمعًا من المبدعين والمحبين للتكنولوجيا. لا تترددوا في مشاركة أفكاركم وملاحظاتكم معنا.

شكرًا لانضمامكم، ونتمنى لكم رحلة تعليمية ممتعة ومفيدة!

#تطوير_البرمجيات #بايثون #البرمجة_والتطوير
Pro Dev by SharohatCode pinned «مرحبًا بكم في قناة "مجتمع البرمجةوالتطوير"! نحن سعداء بانضمامكم إلينا ونتطلع إلى تقديم محتوى مفيد وممتع لكم. في هذه القناة، نقدم شروحات ودروس متخصصة في التقنية والبرمجة وكل ما يهم عشاق التكنولوجيا باللغة العربية. 🔹 ما يمكنكم توقعه من قناتنا: - شروحات مفصلة…»
📚 سلسلة "تعرف على": Python 🐍

Python هي لغة برمجة عالية المستوى، سهلة التعلم ومتعددة الاستخدامات.

🔑 مميزات Python:
- بساطة القراءة والكتابة
- مكتبات غنية لمختلف المجالات
- مناسبة للمبتدئين والمحترفين

💼 استخدامات شائعة:
- تطوير الويب (Django, Flask)
- علوم البيانات والذكاء الاصطناعي
- أتمتة المهام وإدارة الأنظمة

🌟 مثال بسيط:
`python
print("مرحبا بكم في عالم Python!")

هل لديك تجربة مع Python؟ شاركنا في التعليقات! 👇
#Python #تعلم_البرمجة #ArabcodeMasters
🚀 تحدي البرمجة الأسبوعي: عداد الكلمات بـ Python 📊
مرحبًا مبرمجي Arabcode Masters! هل أنتم مستعدون لتحدٍ برمجي ممتع؟ 💻
التحدي: كتابة دالة Python تقوم بعد الكلمات في نص معين.
المتطلبات:
1. الدالة تأخذ نصًا كمدخل (input).
2. الدالة تعيد قاموس (dictionary) يحتوي على كل كلمة وعدد تكرارها.
3. يجب تجاهل حالة الأحرف (الكبيرة والصغيرة).
4. يجب إزالة علامات الترقيم.
مثال:
النص:
"Hello world! Hello programming. The world is beautiful"
النتيجة المتوقعة:
{'Hello': 2, 'World': 1, 'Programming': 1, 'World': 1, 'Beautiful': 1}
بونص (اختياري):
- جعل الدالة تتجاهل الكلمات الشائعة مثل
"in", "from", "on"
لديكم 48 ساعة لتقديم حلولكم! 🕒
شاركوا كودكم في التعليقات وناقشوا الحلول المختلفة مع زملائكم.
نصيحة: فكروا في استخدام الـ
split() and lower() and replace()
لمعالجة النص.
حظًا موفقًا للجميع! 👨‍💻👩‍💻
#تحدي_البرمجة #Python #ArabcodeMasters
Pro Dev by SharohatCode pinned «🚀 تحدي البرمجة الأسبوعي: عداد الكلمات بـ Python 📊 مرحبًا مبرمجي Arabcode Masters! هل أنتم مستعدون لتحدٍ برمجي ممتع؟ 💻 التحدي: كتابة دالة Python تقوم بعد الكلمات في نص معين. المتطلبات: 1. الدالة تأخذ نصًا كمدخل (input). 2. الدالة تعيد قاموس (dictionary) يحتوي…»
Channel photo updated
Channel name was changed to «Arabcode Masters»
Channel name was changed to «مجتمع البرمجة والتطوير»
حل التحدي خطوة بخطوة مع شرح كل خطوة:

الخطوة 1: تعريف الدالة وإعداد القاموس

سنبدأ بتعريف الداله وإنشاء قاموس فارغ لتخزين عدد الكلمات:

def word_counter(text):
word_count = {}


الخطوة 2: معالجة النص

سنقوم بتحويل النص إلى أحرف صغيرة وإزالة علامات الترقيم:

def word_counter(text):
word_count = {}

# Convert to lowercase and remove punctuation
text = text.lower()
for char in "!.,;:?":
text = text.replace(char, "")


الخطوة 3: تقسيم النص إلى كلمات وعدها

الآن سنقوم بتقسيم النص إلى كلمات وعد تكرار كل كلمة:

def word_counter(text):
word_count = {}

# Convert to lowercase and remove punctuation
text = text.lower()
for char in "!.,;:?":
text = text.replace(char, "")

# Split into words and count
words = text.split()
for word in words:
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1


الخطوة 4: إعادة القاموس

أخيرًا، سنقوم بإرجاع القاموس الذي يحتوي على عدد الكلمات:

def word_counter(text):
word_count = {}

# Convert to lowercase and remove punctuation
text = text.lower()
for char in "!.,;:?":
text = text.replace(char, "")

# Split into words and count
words = text.split()
for word in words:
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1

return word_count


الخطوة 5 (بونص): تجاهل الكلمات الشائعة

لتحقيق المتطلب الإضافي، يمكننا إضافة قائمة بالكلمات الشائعة وتجاهلها أثناء العد:

def word_counter(text):
word_count = {}
common_words = {"the", "in", "from", "on", "at", "to", "for", "of", "and", "a", "an"}

# Convert to lowercase and remove punctuation
text = text.lower()
for char in "!.,;:?":
text = text.replace(char, "")

# Split into words and count
words = text.split()
for word in words:
if word not in common_words:
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1

return word_count


الآن، لنختبر الدالة مع المثال المعطى:

# Test the function
text = "Hello world! Hello programming. The world is beautiful"
result = word_counter(text)
print(result)


هذا الكود سيطبع:


{'hello': 2, 'world': 2, 'programming': 1, 'beautiful': 1}



ملاحظة: لاحظ أن الكلمة "is" تم تجاهلها لأنها من الكلمات الشائعة، و"the" أيضًا تم تجاهلها. كما أن جميع الكلمات تم تحويلها إلى أحرف صغيرة.

هذا الحل يلبي جميع متطلبات التحدي، بما في ذلك المتطلب الإضافي (البونص). إنه يتجاهل حالة الأحرف، يزيل علامات الترقيم، ويتجاهل الكلمات الشائعة.
Pro Dev by SharohatCode pinned «حل التحدي خطوة بخطوة مع شرح كل خطوة: الخطوة 1: تعريف الدالة وإعداد القاموس سنبدأ بتعريف الداله وإنشاء قاموس فارغ لتخزين عدد الكلمات: def word_counter(text): word_count = {} الخطوة 2: معالجة النص سنقوم بتحويل النص إلى أحرف صغيرة وإزالة علامات الترقيم:…»
نصيحة برمجية

استخدام أسماء متغيرات وصفية: يساعد هذا على فهم الكود بسهولة أكبر. بدلاً من استخدام "x" كاسم متغير، استخدم اسمًا مثل "user_name". هذا يجعل الكود أكثر وضوحًا للقراءة والصيانة.

مثال يوضح هذه النصيحة:

مثال سيئ (بدون أسماء متغيرات وصفية):

x = 10
y = 5
z = x + y
print(z)


مثال جيد (مع أسماء متغيرات وصفية):

number_of_users = 10
number_of_active_users = 5
total_users = number_of_users + number_of_active_users
print(total_users)


الشرح :

* المثال السيئ: يستخدم الحروف x, y, و z كأسماء متغيرات. هذه الأسماء لا تعطي أي مؤشر على ما تمثله هذه المتغيرات.

* المثال الجيد: يستخدم أسماء متغيرات مثل number_of_users, number_of_active_users, و total_users.

هذه الأسماء توضح الغرض من كل متغير، مما يجعل الكود أسهل للقراءة والفهم.

فوائد استخدام أسماء متغيرات وصفية:

* تحسين القابلية للقراءة: يجعل الكود أسهل للقراءة والفهم، حتى بالنسبة للمبرمجين الآخرين الذين لم يكتبوا الكود.

* تسهيل الصيانة: يجعل من السهل إجراء تغييرات على الكود في المستقبل، حيث يمكنك بسهولة تحديد الغرض من كل متغير.

* تقليل الأخطاء: يساعد على تقليل الأخطاء، حيث يمكنك بسهولة التحقق من أنك تستخدم المتغيرات الصحيحة في الحسابات.

نصائح إضافية:
* استخدم أسماء متغيرات قصيرة وواضحة: لا تجعلها طويلة جدًا، ولكن تأكد من أنها وصفية بما فيه الكفاية.

* استخدم الأسلوب "camelCase" أو "snake_case" لتسمية المتغيرات: هذا يساعد على جعل أسماء المتغيرات أكثر قراءة.

* تجنب استخدام الأحرف الخاصة أو الأرقام في بداية أسماء المتغيرات: هذا يجعل أسماء المتغيرات أكثر صعوبة في القراءة.
نصيحه برمجيه

التعليق على الكود بحكمة:
تساعد في شرح الأجزاء المعقدة من الكود. ومع ذلك، تجنب التعليق على كل سطر.

ركز على شرح "لماذا" تم كتابة الكود بهذه الطريقة، وليس "ماذا" يفعل الكود إذا كان واضحًا.

مثال علي هذه النصيحه

import random

def generate_password(length=12, use_special_chars=True):
# Define character sets for password generation
lowercase = 'abcdefghijklmnopqrstuvwxyz'
uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
digits = '0123456789'
special_chars = '!@#$%^&*()_+-=[]{}|;:,.<>?'

# Combine character sets based on the use_special_chars flag
all_chars = lowercase + uppercase + digits
if use_special_chars:
all_chars += special_chars

# Generate password
# We use random.choice for each character to ensure uniform distribution
password = ''.join(random.choice(all_chars) for _ in range(length))

# Ensure the password contains at least one character from each required set
# This is done to meet common password strength requirements
while not (any(c.islower() for c in password) and
any(c.isupper() for c in password) and
any(c.isdigit() for c in password) and
(not use_special_chars or any(c in special_chars for c in password))):
password = ''.join(random.choice(all_chars) for _ in range(length))

return password

# Example usage
print(generate_password())
print(generate_password(length=16, use_special_chars=False))


دعنا نشرح النقاط الرئيسية:

1. التعليقات تشرح الغرض من أجزاء الكود المهمة، مثل تعريف مجموعات الأحرف وسبب استخدام random.choice.

2. لم نعلق على كل سطر. على سبيل المثال، لم نشرح ما تفعله join أو range لأنها وظائف أساسية في بايثون ومن المفترض أن يعرفها المبرمج.

3. التعليقات تركز على شرح "لماذا" تم كتابة الكود بهذه الطريقة. على سبيل المثال، نشرح لماذا نتحقق من وجود أحرف من كل مجموعة في كلمة المرور.

4. لم نستخدم تعليقات لشرح أشياء واضحة مثل تعريف الدالة أو طباعة النتيجة.

هذا النهج في التعليق يساعد في فهم المنطق وراء الكود دون إثقاله بتعليقات غير ضرورية.
#نصيحة_برمجية #اختبار_مستمر

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

اختبار الكود أثناء كتابته يساعد في اكتشاف الأخطاء مبكرًا. هذا يوفر الوقت ويجعل تصحيح الأخطاء أسهل مقارنة باكتشافها في نهاية المشروع.

def calculate_area(length, width):
return length * width

# Test the function as we write it
print(calculate_area(5, 3)) # Expected output: 15

# Add more test cases
print(calculate_area(0, 10)) # Expected output: 0
print(calculate_area(-1, 5)) # This might reveal a logical error

def calculate_perimeter(length, width):
return 2 * (length + width)

# Test the new function immediately
print(calculate_perimeter(5, 3)) # Expected output: 16
print(calculate_perimeter(0, 10)) # Expected output: 20

# Combine functions and test
def rectangle_properties(length, width):
area = calculate_area(length, width)
perimeter = calculate_perimeter(length, width)
return f"Area: {area}, Perimeter: {perimeter}"

# Test the combined function
print(rectangle_properties(5, 3)) # Expected output: "Area: 15, Perimeter: 16"


في هذا المثال، نقوم باختبار كل دالة أثناء كتابتها. هذا يسمح لنا باكتشاف أي أخطاء أو سلوك غير متوقع على الفور.

على سبيل المثال، قد نلاحظ أن calculate_area(-1, 5) تعطي نتيجة سالبة، وهو ما قد يكون غير مرغوب فيه لبعض التطبيقات.

من خلال الاختبار المستمر، يمكننا معالجة مثل هذه المشكلات على الفور، مما يجعل الكود أكثر متانة وأسهل في الصيانة.

#نصائح_البرمجة #تطوير_البرمجيات #بايثون #البرمجة_الفعالة