مسائل

حساب العمر

اكتب إجراء يحسب عمرك في أي سنة معينة.

def age_at(age_now: int, current_year: int, at_year: int) -> int:
    pass # اكتب هنا بدل كلمة pass

print(age_at(0, 2000, 2010)) # بعد الولادة
print(age_at(20, 2000, 2010)) # في المستقبل
print(age_at(20, 2000, 1995)) # في الماضي
None
None
None

حساب الأجر

عرِّف الإجراء الذي يحسب الأجر بعاملين:

  • hours: float: عدد الساعات التي يعملها الموظف
  • per_hour_rate: float: سعر الساعة الواحدة

واجعل نوع العائد float كذلك باستعمال -> float.

# اكتب الإجراء هنا

ثم اختبر الإجراء باستعمال جمل توكيدية: assert.

توحيد الصيغة

في هذا المثال، تعود هذه النصوص كلها إلى نفس المعنى.

  • (‘medina’, ‘madinah’, ‘madina’, ‘al madinah’, ‘al madina’, ‘medina’, ‘madinah’, ‘madina’, ‘المدينة’, ‘مدينة’),
  • (‘mecca’, ‘makkah’, ‘makka’, ‘makkah’, ‘makkah’, ‘مكة’, ‘مكه’),

المطلوب إنشاء قاموس بحيث لو أعطيته أحد هذه الكلمات كمفتاح، فإنها جميعًا تؤول إلى صيغة موحدة:

def normalize_city_name(city_name: str) -> str:
    pass # اكتب جسد الإجراء هنا
assert (
    'madinah' ==
    normalize_city_name('المدينة') ==
    normalize_city_name('al madinah') ==
    normalize_city_name('medina')
)

assert (
    'makkah' ==
    normalize_city_name('مكة') ==
    normalize_city_name('makkah') ==
    normalize_city_name('makka') ==
    normalize_city_name('mecca')
)