cb
codebamin
الفصل 6 · القوائم (Lists)

تمارين فهرسة القوائم والأطوال

لديك قائمة things وقيمة to_find. اطبع أول فهرس تظهر عنده to_find داخل القائمة؛ أي أصغر عدد i يجعل things[i] مساوية لـto_find. مثلًا، إذا كانت القيم:

__no_auto_translate__ things = ['on', 'the', 'way', 'to', 'the', 'store'] to_find = 'the'

فيجب أن يطبع البرنامج 1.

يمكنك افتراض أن to_find موجودة في القائمة مرة واحدة على الأقل.

جميل!

وبالمناسبة، الفهرسة وlen() تعملان مع النصوص أيضًا. جرّبهما في الطرفية.

إليك تمرينًا آخر. لديك نصان متساويان في الطول، مثل:

__no_auto_translate__ string1 = 'Hello' string2 = 'World'

اطبعهما رأسيًا جنبًا إلى جنب، مع مسافة بين كل محرفين متقابلين:

H W e o l r l l o d

رائع!

غالبًا يشبه حلك شيئًا كهذا:

for i in range(len(string1)): char1 = string1[i] char2 = string2[i] print(char1 + ' ' + char2)

لكن هذا لا يعمل جيدًا إذا كان النصان مختلفين في الطول. بل إن الخطأ يختلف بحسب ما إذا كان string1 أو string2 هو الأطول.

تحديك التالي هو إصلاح هذه المشكلة بملء المحارف «المفقودة» بمسافات.

فمثلًا، إذا كانت القيم:

__no_auto_translate__ string1 = 'Goodbye' string2 = 'World'

فيجب أن يكون الناتج:

G W o o o r d l b d y e

وإذا كانت القيم:

__no_auto_translate__ string1 = 'Hello' string2 = 'Elizabeth'

فيجب أن يكون الناتج:

H E e l l i l z o a b e t h

عمل ممتاز! خذ استراحة قصيرة؛ لقد استحققتها.

solution.py
1
2
3
4
5
6
7
8
9
10
الطرفية (shell)
>>>