def إزالة_التكرارات(قائمة):
"""إزالة التكرارات مع الحفاظ على الترتيب"""
شوهد = set()
نتيجة = []
for عنصر in قائمة:
if عنصر not in شوهد:
شوهد.add(عنصر)
نتيجة.append(عنصر)
return نتيجة
أرقام = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
print(إزالة_التكرارات(أرقام)) # [3, 1, 4, 5, 9, 2, 6]
def تحليل_نصين(نص1, نص2):
"""مقارنة الكلمات في نصين"""
كلمات1 = set(نص1.split())
كلمات2 = set(نص2.split())
print(f"كلمات النص الأول: {len(كلمات1)}")
print(f"كلمات النص الثاني: {len(كلمات2)}")
مشتركة = كلمات1 & كلمات2
print(f"\nالكلمات المشتركة ({len(مشتركة)}):")
for كلمة in مشتركة:
print(f" • {كلمة}")
فريدة_1 = كلمات1 - كلمات2
print(f"\nفريدة في النص الأول: {فريدة_1}")
فريدة_2 = كلمات2 - كلمات1
print(f"فريدة في النص الثاني: {فريدة_2}")
نص_أول = "البرمجة ممتعة ومفيدة جداً"
نص_ثاني = "تعلم البرمجة مفيدة للمستقبل"
تحليل_نصين(نص_أول, نص_ثاني)
# نظام صلاحيات بسيط
صلاحيات_مدير = {"قراءة", "كتابة", "حذف", "إدارة"}
صلاحيات_محرر = {"قراءة", "كتابة"}
صلاحيات_مشاهد = {"قراءة"}
def فحص_صلاحية(صلاحيات_مستخدم, عملية):
if عملية in صلاحيات_مستخدم:
return f"✅ مسموح: {عملية}"
return f"❌ ممنوع: {عملية}"
# اختبار
print(فحص_صلاحية(صلاحيات_محرر, "كتابة")) # ✅ مسموح
print(فحص_صلاحية(صلاحيات_محرر, "حذف")) # ❌ ممنوع
# ما الصلاحيات التي يحتاجها المحرر ليصبح مديراً؟
ناقصة = صلاحيات_مدير - صلاحيات_محرر
print(f"الصلاحيات الناقصة: {ناقصة}") # {'حذف', 'إدارة'}
أصدقاء = {
"أحمد": {"سارة", "محمد", "فاطمة", "علي"},
"سارة": {"أحمد", "محمد", "نورة"},
"محمد": {"أحمد", "سارة", "خالد", "فاطمة"}
}
def أصدقاء_مشتركين(شخص1, شخص2):
"""البحث عن الأصدقاء المشتركين بين شخصين"""
if شخص1 not in أصدقاء or شخص2 not in أصدقاء:
return set()
return أصدقاء[شخص1] & أصدقاء[شخص2]
def اقتراح_أصدقاء(شخص):
"""اقتراح أصدقاء جدد (أصدقاء الأصدقاء)"""
if شخص not in أصدقاء:
return set()
اقتراحات = set()
for صديق in أصدقاء[شخص]:
if صديق in أصدقاء:
اقتراحات |= أصدقاء[صديق]
# إزالة الشخص نفسه وأصدقائه الحاليين
اقتراحات -= {شخص}
اقتراحات -= أصدقاء[شخص]
return اقتراحات
print("الأصدقاء المشتركين بين أحمد وسارة:")
print(أصدقاء_مشتركين("أحمد", "سارة"))
print("\nاقتراحات أصدقاء لأحمد:")
print(اقتراح_أصدقاء("أحمد"))