الجلسة التطبيقية 2: النصوص، والتكرار
الجلسة التطبيقية 2 (Recitation 2)
المصادر والنسبة والترخيص
المادة الأصلية: آنا بيل (Ana Bell)، MIT OpenCourseWare (MIT OCW)، معهد ماساتشوستس للتكنولوجيا، مقرر 6.100L: مقدمة في علوم الحاسوب والبرمجة باستخدام Python، خريف 2022 (Fall 2022).
هذه ترجمة وتكييف عربي غير رسمي وفق رخصة CC BY-NC-SA 4.0: النسبة–غير التجاري–المشاركة بالمثل، ولا تعني اعتمادًا أو تأييدًا من MIT أو MIT OCW. شروط الاستخدام والاستشهاد.
منهج الترجمة: لكل عنوان في الملخّص الأصلي عنوان مستقل، وحُفظ ترتيب العناوين والمحاور والشيفرة والتذكيرات كما في الأصل. الشيفرة محفوظة بالإنجليزية، ولم تُترجَم أسماء الدوال ولا الكلمات المفتاحية ولا أسماء المتغيّرات. لم تُضمَّن صور.
ملاحظة المترجم: المصدر ملف Word. فقد استخراج النصّ بعض المسافات البادئة، وفصل سهمَي الشرح اللذين كانا داخل سطر واحد إلى نصّ مستقل. وعوّضت علامات التنصيص المنحنية « “ ” » و« ‘ ’ » وشرطة الطرح « – » بعلامات ASCII حتى تعمل الشيفرة كما كُتبت، وأُبقيت الأخطاء الواردة في الأصل كما هي.
المحاضرة المرتبطة
تُرافق هذه الجلسة التطبيقية المحاضرة 3: التكرار (Iteration). ويعرض ملخّصها مراجعةً لما في المحاضرتين 2 و3: النصوص (Strings) والإدخال/الإخراج (Input/Output) والتفريع (Branching)، ثم آليات التكرار (Looping Mechanisms).
تذكيرات (Reminders)
6.100L، الجلسة التطبيقية 2 — 16 سبتمبر 2022.
- مسابقة MQ 2 الأربعاء المقبل.
- التسليم المرحلي في منتصف مجموعة المسائل PS1 مستحقّ الأربعاء المقبل.
- تمارين الإصبع قبل كلّ محاضرة.
مراجعة المحاضرة 2: النصوص، والإدخال/الإخراج، والتفريع
النصوص (Strings)
- نوع بيانات جديد — وهو تسلسل من المحارف.
my_string = "Hello world!"
- يمكن فهرستها وتقطيعها:
my_string[0] # outputs "H"
my_string[2] # outputs "l"
my_string[-1] # outputs "!"
my_string[-2] # outputs "d"
my_string[1:3] # outputs "el"
- ويمكننا دمج النصوص:
my_new_string = my_string + ' ' + my_string
الإدخال (Input)
- انتهينا من الأمر
input. - أيّ شيء يدخله المستخدم يُقرأ ككائن سلسلة نصية (string object)!
x = input("Enter a string: ") # what the user inputs is assigned to x as a string
- ويمكن تحويل مُدخل المستخدم إلى عدد صحيح:
x_as_int = int(input("enter and int: ")) # here x will be an integer
الإخراج (Output)
- انتهينا من الأمر
print.
print(x)
- الفاصلة تُدمج مع مسافة بينها:
print(("x = ", x)
- عبارات
printمفيدة جدًّا في تنقيح الأخطاء (debugging)! وخصوصًا لرؤية ما يحدث داخل الحلقات.
التفريع (Branching)
- الفكرة أنّنا نريد تنفيذ كتل معيّنة فقط إذا تحقّقت شروط محدّدة.
- ننشئ بنية شيفرة تتحقّق من حاجتنا.
مثال على التفريع (Example branching):
x = 2
if x == 3:
print("x is 3!")
elif x == 2:
print("x is 2!")
else:
print("x is neither 2 or 3")
مراجعة المحاضرة 3: الحلقات وطرق التكرار
آليات التكرار (Looping Mechanisms)
- المرور على مجالات من الأعداد.
- المرور على عناصر سلسلة نصية.
- الفكرة الرئيسة — نريد تكرار الأشياء عدّة مرّات، أي إعادة استخدام الشيفرة.
حلقات for
- لحلقات
forمجال محدَّد مسبقًا تعمل ضمنه.
for i in range(x):
- حيث
iيمرّ من 0 إلىx-1.
for char in s:
- حيث
charسلسلة نصية تأخذ قيمة كلّ محرف فيsعلى التوالي.
حلقات while
- لحلقات
whileشرط تفحصه لتقرّر هل تواصل العمل؛ فهي تعمل إلى أن لم يعد ذلك الشرط محقَّقًا.
counter = 0
while counter < 3:
print(counter)
counter += 1