مسائل
قاموس داخل قاموس
إذا كان لديك قاموس متداخل كالتالي:
المطلوب أن تسحب من تفضيلات المستخدم المتغيرات التالية:
theme
notifications.sms
- آخر عنصر في:
emails
توحيد الصيغة
في هذا المثال، تعود هذه النصوص كلها إلى نفس المعنى.
- (‘medina’, ‘madinah’, ‘madina’, ‘al madinah’, ‘al madina’, ‘medina’, ‘madinah’, ‘madina’, ‘المدينة’, ‘مدينة’),
- (‘mecca’, ‘makkah’, ‘makka’, ‘makkah’, ‘makkah’, ‘مكة’, ‘مكه’),
assert (
'medina' ==
normalize_city_name('medinah') ==
normalize_city_name('al madina') ==
normalize_city_name('المدينة') ==
normalize_city_name('المدينه')
)
assert (
'mecca' ==
normalize_city_name('makkah') ==
normalize_city_name('makka') ==
normalize_city_name('مكة') ==
normalize_city_name('مكه')
)
تصحيح الإملاء
اكتب فعلًا يصحح الإخطاء الشائعة في الإملاء العربي.
- إبدال التاء المربوطة بالهاء: مكتبه، لعبه، روايه
- إبدال الظاء بالضاد والعكس: ظابط، قرظ، ضهر
- زيادة الياء: أحسنتي، رأيتكي
والمطلوب فقط تصحيح الأخطاء المذكورة.
حساب الجُمَّل
حِسَاب الجُمَّل هي طريقة لتسجيل صور الأرقام والتواريخ باستخدام الحروف الأبجدية، إذ يُعطى كل حرف رقما معينا يدل عليه.
فكانوا من تشكيلة هذه الحروف ومجموعها يصلون إلى ما تعنيه من تاريخ مقصود وبالعكس كانوا يستخدمون الأرقام للوصول إلى النصوص.
حساب الجمَّل | |||||||
---|---|---|---|---|---|---|---|
ا | 1 | ي | 10 | ق | 100 | غ | 1000 |
ب | 2 | ك | 20 | ر | 200 | بغ | 2000 |
جـ | 3 | ل | 30 | ش | 300 | جغ | 3000 |
د | 4 | م | 40 | ت | 400 | دغ | 4000 |
هـ | 5 | ن | 50 | ث | 500 | هغ | 5000 |
و | 6 | س | 60 | خ | 600 | وغ | 6000 |
ز | 7 | ع | 70 | ذ | 700 | زغ | 7000 |
ح | 8 | ف | 80 | ض | 800 | حغ | 8000 |
ط | 9 | ص | 90 | ظ | 900 | طغ | 9000 |
اكتب تفاصيل الفعل الذي يحسب الجمَّل لكلمة معينة.
assert gematria('غرم') == 1240
assert gematria('رب') == 202
assert gematria('ريح') == 218
assert gematria('شعب') == 372
وكذلك في العبارات:
التوفيق بين مجموعتين
مسألة التوفيق بين مجموعتين تجدها في سياقات كثيرة.
نريد في هذا التمرين التوفيق بين أشخاص وما لديهم من مهارات وبين شركات وما تطلبها من هذه المهارات.
يمكن أن تبدأ بهذا الشكل لإيجاد كمية التوافق:
person_skills = {"Python", "SQL"}
needed_skills = {"Python", "R", "Ninja", "Gymnastics", "Art of War"}
لكن في الواقع تأتي البيانات لمجموعة من الأشخاص مع مجموعة من الشركات هكذا:
people = [
{"name": "Ahmad", "skills": ["Python", "Go", "JavaScript", "Machine Learning", "Statistics"]},
{"name": "Jawad", "skills": ["Management", "Business", "Marketing"]},
{"name": "Belal", "skills": ["Python", "Statistics", "R", "Management"]},
]
companies = [
{"name": "X", "skills_needed": ["Python", "Machine Learning", "Statistics"]},
{"name": "Y", "skills_needed": ["Sales", "Marketing", "Leadership", "Management"]},
{"name": "Z", "skills_needed": ["Statistics", "R", "Management"]},
]
اكتب برنامج للتوفيق بين المجموعتين بحيث ترتب على بما يناسب الشركات مرة، وبما يناسب الأشخاص مرة.
X: Ahmad, ...
Y: Jawad, ...
Z: Belal, ...
Ahmad: X, ...
Jawad: Y, ...
Belal: Z, ...