طيب السلام عليكم اعطناكم احنا واجب يعني لسه الواجب
deadline ماوصلش صح؟ اه طيب اه يعني بس نتسلمه ان
شاء الله بنشوف اذا في اسئلة مش عارفين نتحلوها
بنحلها تمام؟ وانا بركض على حاجة يا جماعة ان الواجب
تحلوه بنفسكم تمام؟ ليش؟ لأن بكرا مثلا ممكن في
الامتحان يجي بعض الاسئلة من الواجب تمام؟ وانت
ماتحلش السؤال في الامتحان وفي الواجب بتجيبليها
محلول هذا إيش معناه؟إنه غالبا أو أكيد ان انت مش
انت اللي حاله ففي الحالة هذه هحطلك في الواجب زي ما
أخدت وين في الامتحان واضحة كيف الفكرة؟ طيب و
بعدين عشان تستفيدوا لأن أصلا هذا الواجب هو مراجعة
المادة يعني فعليا أنا هذه المادة بحفظهاش مافيش
عندي معلومات في حفظها هي المراجعة أو دراستها حل
تمارينطيب اللي بنسوي المحاضرة هذه يا جماعة ناخد
تمرين أخر على ال list احنا هيك موضوع ال list قريبا
خلصناه و بعدين نبدأ في موضوع جديد اللي هو ال
strings طبعا طيب السؤال اللي بدي أحله اللي لجيت هو
السؤال عشرة خمسة في الكتاب السؤال بيقول write a
program that reads in numbers separated by a space
in one line
يعني بطلب مني أدخل أرقام، الأرقام هذه مفصولة عن
بعض بمسافات، بعد ما أدخل الأرقام في الآخر بضغط
enter المفروض ياخد الأرقام هذه وإيش يعمل؟ يفصلهم،
أخدنا كيف نفصل ال string عن طريق ال split
reads in numbers separated by a space in one line
and displays distinct numbers يعني بعد هيك بعد ما
ياخد الأرقام بده يعرضلي فقط الأرقام المختلفة يعني
إذا الرقم أنا دخلته أكتر من مرة في ال input لما
يعرضليها بيعرضليها بس إيش بس مرة واحدة يعني مثلا
السؤال هذا enter ten numbers تمام بدخل رقم واحد
واتنين وتلاتة واتنين وواحد ستة تلاتة أربعة خمسة
اتنين لاحظ أن في أرقام متكررة زي الاتنين والتلاتة
مثلاضغط انتر تمام طبعا ليه حلنا هذاأه شبيه فيه طيب
نحله تاني من باب التفكير طبعا طلعلي إيش الناتج
واحد اتنين تلاتة ستة أربعة خمسة يعني الأرقام بدون
إيش بدون تكرار هذا مثال على أرقام بس يعني أكيد
مستخدم كتير في الحياة لإزالة إيش الحاجات المكررة
سواء أنا عندي نصوص كلمات أسماء
أفلترهم على اساس إيش أخد بس الأسماء بدون تكرارطيب
زي ما قولنا او اتعودنا فحل اسئلة زي هيك حاول تجزئ
السؤال لأجزاء وخل كل جزئية بتفكر فيها فحينه اول
جزئية لازم ناخد ال input تمام و نجزئه بحيث يكون
عنده list و بعدين نفكر كيف نشيل التكرار طبعا احنا
شوفنا كيف نجزئ المحاضرة الماضية يعني اول حاجة بدي
اقوله هنا numbers تمام و بدي اقوله inputعلى أساس
نقرأ الأرقام اللي هو enter ten numbers هي
داخل أرقام مفصول بينها spaces تمام؟ بعدين بروح ل
numbers تمام؟ و بحكيله split
تمام؟ وهنا بقول ال split هيكون بناء على المسافة
هذا ال split حكينا يعني أول حاجة هيسميه text على
أساس ان انا بدخله كنص تمام؟
ال text عم بتقوله split عشان ينشئ عند إيش list طيب
ال list هاد هيكون فيها الأرقام المطلوب الآن أن انا
أجيب الأرقام بدون
ممتاز سؤال كويس الان يا جماعة انا عندي تمام لو انا
نفذت ال code هذا وشوفت ال list ايش فيها يكون فيها
نصوص تمام يعني هاي مثلا enter 10 numbers واحد
مسافة ستة اربعة سبعة تمانية تسعة و enter هاي طبقة
لل list بس طبقة اللي شايفين في quotations موجودة
حواليك رقم بدليل ان هذا نص تمام كيف نحوله
رقم و أحوله لإنتجر كيف؟ طلعوا معايا for .. شوفوا
بدي أعملها في خطوة واحدة for I in .. لأ بدي أقوله
range لن
ال list و
بعدين بروح ل list ال I و باخد فيها int list ال I
حد فاهم حاجة عن إيش بسوي؟
و نجرب نشوف نتأكد انه شرقال بلاش يطلع من الشرقال
تضحكوا عليا بعدين تمام هاي list بتاع نعمل run الان
تمام
هاي الان هاي الناتج اللي عندى في الأول طبق لل list
و هي نصوص و بعدين طبق ليه و هي إيش و هي أرقام إيش
اللي عملت عشان أحور النصوص لأرقام تمامهذه الليست
هنا بتجي عندك نصوص صح؟ عشان احولها لأرقام بده امر
على كل رقم رقام تمام؟ على كل input او كل entry
موجود في الليست و اعدل القيمة بتاعته لرقم صح ولا
لأ؟ يا جماعة احنا انا عند list هذه شكل ال list
لحظة تكتبوش تمام؟ لأن هذا هرحيهاأنا عندي محتوى
list عبارة عن مثلًا نصوص هذه نص مش رقم تمام؟ بدي
أحوله لرقم بدي أمره على كل واحد تمام؟ و أقول له
استبدل للواحد بإيش؟ بواحد بدون quotation صح؟ و
استبدل للاتنين باتنين بدون quotation و الستة بستة
بدون quotation مدام أنا بحكي استبدال بنفعش أستخدم
ال for loop بتاعة for I in leftشوفت المحاضرة
الماضية انه لما بده اعدل قيم ال list for I in list
بقدرش اعدل فيها بقدرش ايه يعني انا لأ عشان اعدل
قيمة لازم اكون عارف ال index تمام هذا أخدنا مثال
عليه المرة الماضية يعني انا مثلا لما اجي اقول بده
اعدل قيم ال list احطها صفر مثلا بينفعش اقوله for I
in list تمام ايش بيناعدله بيقوله I حطها صفرهذا ال
code صح؟ لأ هذا بيعدل بس في إيش؟ في ال I لكن هل
أعدل في ال list؟ لأ عشان أعدل في ال list ده أضطر
أعمل iteration على ال index تا list فعشان هيك قلت
له for I in لن ال list عشان ال I تتغير من إيش؟ صفر
و واحد و اتنين و تلاتة طب ليش أنا بدي أوصل لل
index؟ بديش أوصل للمحتوى على أساس أقول له هذه list
ال I بدنا نغيرها نحط فيها قيمة جديدةأيش القيمة
الجديدة اللي بنحطها في list ال I؟ هي خد list ال I
نفسها و حولها ل integer و خزينها في list ال I طبعا
واحد اللي مش متعود يبرمج هيتطلع في السطر هذا و
يقول لي كيف هد نحطها هي نفسها في هد؟ لأ أنا بقرأ
القيمة بتاعة list ال I معروف ال assignment اللي
يساوي الواحدة إيش بيعمل؟ بنفذل على الشمالو بخزينها
في اليمين مين اللي بتنفذ في الأول اللي على الشمال؟
ايش هيعمل؟ هيقرأ القيمة اللي عند list ال I و
يحولها ل integer و يرجع يخزينها وين؟ في list ال I
واضحة يا جماعة؟ السؤال
المهم اللي بترح نفسه هل أنا بحتاج فعلا أحول
الأرقام؟
هو اللي طالبه انه بسأله التكرارصح ولا لأ؟ فهل
لازمني أحوّل ما هو التكرار بحسبه و بعتبرها نص؟ و
بشوف مكرر ولا لأ؟ يعني أنا لازمني أحوّل الأرقام
إيه؟ انت لما تكون .. محتاج أعمل عملية حسابية،
تمام؟ أه بحوّل الأرقام، لكن هل في المثال تبعي
محتاج أن أحوّلهم لأرقام؟ لأ التكرار بعتبره نص،
وشوف الله إذا مكرر، شيله، تمام؟الخير هو أننا
فرجناكم كيف نغيّر القيم في ال list لكن فعلياً هذا
ال code ما له مش لازم عرفتوا كيف قلتلكم
ماتكتبوهوش؟ لأن هو كفكرة لكن في الحل للسؤال مش
لازم طب نكمل الان احنا انتوا معايا يا جماعة ولا
لأ؟ الان احنا فصلنا جمعنا البيانات اللي أنا دخلتها
في list واحدة بدي أشيل التكرارطيب مين يفكر معايا
أنا عند list فيها أرقام تمام فيها بيانات مكررة
أسماء مثلا تمام هاي مثلا خلينا نقول هنا فيه أحمد
تمام و هنا فيه علي تمام و هنا عمر تمام و هنا فيه
كمان أحمد تمام و هنا فيه عمر تمام هاي list فيها
أسماء فيها تكرار بدي أجيب الأسماء بدون تكرار أيوة
اتفضلي
أيوة اتفضلي نعمل if القيمة not unless نعمل if
القيمة
not unless نعمل if القيمة not unless نعمل if
القيمة not unless نعمل if القيمة not unless نعمل
if القيمة not unless نعمل if القيمة not unless
نعمل if القيمة not unless نعمل if القيمة not
unless نعمل if القيمة not unless نعمل if القيمة
not unless نعمل if القيمة not unless نعمل if
القيمة not unless نعمل if القيمة not unless نعمل
if القيمة not unless نعمل if القيمة not unless
نعمل if القيمة not unless نعمل if القيمة not
unless نعمل if القيمة not unless نعمل if القيمة
not unless نعمل if القيمة not unless نعمل if
القيمة not unless نعمل if القيمة not unless نعمل
if القيمة notصح؟ و بعدين أروح على التاني، هاي علي،
في عندي علي قبل هيك؟ لأ لسه هدا أول مرة أمر عليه،
و بعدين لاجيت عمر، في عنده عمر قبل هيك؟ لأ، بعدين
لاجيت إيش؟ أحمد، بدأ أتذكر أنه كان في أحمد قبل،
تمام؟ على أساس أن هذا مانه، خلاص بدش هي، تمام؟
فلازم يكون عندي طريقة أنه أنا كل اسم أمر عليه أضل
ماتذكرهليش؟ عشان لو مرنيت عليها مرة تانية ماخدوش
بعيل الاعتبار، طبعا فالان احنا هنحتاج طبعا .. طبعا
عشان نتذكر حاجة بنعمل variableتمام؟ لكن احنا هنا
محتاجين نتذكر اكتر من حاجة .. فبلزمني ايش؟ بلزمني
list .. ليش بتلزمني ال list؟ لأنه الأن أنا الفكرة
أنه أنا الأسماء اللي بده امر عليها .. كل اسم بده
امر عليه أول مرة بده أحطه في ال list عشان نتذكر
يعني و كأنه هذا ال list هي الورقة اللي أنا ماخدها
و قاعد بسجل عليها بقول اه مريتها احمد سجل احمدمريت
على عمر، سجل عمر، مريت على علي، سجل عليه، ليش؟ على
أساس لو مريت على أحمد مرة ثانية، أرجع، أتذكر،
أتطلع على أيش؟ على الورجة اللي عندي، أشوف مسجل
عليها أحمد ولا لا، تمام؟ إذا مسجل، ماضفوش تاني،
تمام؟ هذا ال list هي اللي فيها الأسماء مالها اللي
مش مكررة، تمام؟ اللي هي الناتج النهائي اللي أنا
بديها، الورجة هذه، أنا في الحياة ورجة، لكن في
الواقع إيش ممثلها؟أه ك list و بنفعش أمثلها ك
variable لأن ال variable بخزن فيه إيش حاجة واحدة
فهمتوا ليش بدنا list تمام طيب يبقى أنا عشان أشيل
التكرار بخز ال list عشان أسجل فيها كل عنصر بمر
عليه و لو مرت عليه مرتين ما بديش أحطه في ال list
حالي فبعمل list جديدة في الأول إيش بتكون فاضي و
بعدين بنروح على ال list الأولانية بنقول for I in
list يعني روح مر على كل العناصر الموجودةفي ال list
الأولى، و إيش نقوله؟ والله إذا العنصر اللي بمر
عليه مش موجود في ال list التاني، يضيفه، يعني أنا
هاي الورقة عندي فاضية لسه، مريت على أحمد، هل أحمد
موجود في الورقة اللي عندي؟ أنا جاي بحول تفكير
الواقع إلى إيش، لبرمجة، هل أحمد موجود عندي في
الورقة؟ مش موجود، روح سجل إيش، أحمدو هكذا اي واحد
مش موجود في الورق بسجنه فبقول له if I not in list2
list2
.append ال I بس مر على عناصر اي حد بتلاقيهاش في
list2 اضيفها فيه الان مر على حاجة موجودة مسبقا مش
هيضيفها تمام بعد ما يخلص اللوب كلها تمام بنقول له
list إيش print
لست اتنين تعالى
نجرب الان
هذه النتيجة اللى طلع عندى دخلت انا مجموعة ارقام
الناتج اللي طلع عندي المفروض أنه طلعه للأرقام بدون
تكرار يعني مثلا عندي أنا الستة مرتين طلعها مرة
واحدة تمام الخمسة مرتين طلعها مرة واحدة السبعة
برضه مرة واحدة والتمانية والواحد والتسعة والاتنين
هدولة ماتكرروش أصلا فطلعهم طلعهم مرة واحدة طبعا
لازالوا هدولة كنصوص صح ولا تمام إذا بدي أهم أرقام
نعملهم زي ما عملنا قبل شويةطبعا خلاص هي اللي مطلوب
سونا ان احنا ايش شيلنا المكرر واضحة يا جماعة كيف
الفكرة طيب هيك يا جماعة احنا بكون غطينا موضوع ال
list واخدنا عليه امثلة كتير الآن هنتقل ان شاء الله
لموضوع تاني وهو ال string موضوع ال string يا جماعة
مشروع في chapter تمانية في الكتاب تمام مشروع في
chapter تمانيةفى الكتاب واحد طبعا اول سؤال هيتورد
لأنفسكوا انت يا نديتنا شبطة العشرة ورجعتنا لشبطر
تمانية اللي ايش اللخبطة هذى؟ سبب اللخبطة هذى لأنه
هنشوف كمان شوية ان ال string هي نوع من أنواع ال
list وانا عشان افهم كيف اتعامل مع ال string بدأ
أكون قبل فاهم ال list عشان هيك انا غيرت ايش؟ غيرت
الترتيب طيب ال string ايش هي ال string؟ ببساطة هي
عبارة عن نص
كيف نعرف ال string؟ بنعرفها زي أي variable عادي
يعني بيعرف x و y اللي بديها كيف هيفرجها ال string
عن أي رقم مثلا بالقيمة اللي أنا بحطها فيها يعني
انا مثلا لو اجت quotation .. double quotation كتبت
hello world هيك فعليا انا عملت نص وخزنته في
variable اسمه ايش؟ اسمه x ال x صارت ايش؟ صارت
string
الان في طريقة تانية لتعرف ال string من باب العلم
بس تمام؟ ممكن انا اجي أعمل string y أعمل str تمام؟
و اكتبله مثلا ايش؟ و اكتبله أحمد تمام؟ هذه نفسها
تكافئ ان احط quotations على طول تمام؟ ليش
بتعطينيها بس من باب العلم؟ تمام؟ عشان لو واحد
شافها مكتوبة في كتاب، هيقولش هذه مااخدناها عشان
طيب اللي بعده، الآن
الـ String يا جماعة هي نوع خاص من أنواع ال list
بمعنى أنه أنا لما فعليا عملت variable و كتبت فيه
hello world فعليا في الذاكرة في ال RAM راح عمل
list تمام؟
و كل حرف من حروف النص اتخذن وين؟ في مكانفي space
طبعا هنا في مكان مستقل هذا شكل ال variable يعني ال
X صح باين انه variable لكن هو فعليا ايش؟ عبارة عن
list كاملة وهذه كلها ال list اسمها ايش؟ اسمها X
طبعا هذا شكل ال string كما هو موجود في الذاكرة طيب
ايش باستفيد انا؟ ماشي يعني انا انت بجاعة بتقولي
كده في الذاكرة موجود ايش استفدنا احنا يعني؟أنا
هستفيد في إيش؟ أنه مثلا ممكن أقوله اطبعلي اعملي
print x 0، إيش يعني x 0؟ اطبعلي أول حرف، صح ولا
لأ؟ اعملي print x لن ال x ناقص واحد، إيش يعني؟ أخر
حرفأه مش لإن طبعة X بينقصين لإن X نقص واحد هد عشان
تجيب أخر حرف اللي هي نفسها لما أعمل X ثانب واحد
تمام print X تلاتة زي ما بتعامل مع ال list بتعامل
مع أيش مع ال string تمام تعالى شوف ال natural طالع
عنديهي هذا أول character وهذا الأخر وهذا برضه
الأخر وهذا مثلا رقم لل index 7 و 3 اللي هي ال ال
التاني تمام ففعليا ال string تماما زيها زي إيش زي
ال list نقطة نسيت أحكيها احنا ليش أصلا بندرس ال
string إيش الفايدة من الموضوع ده كله تمام مش احنا
قلنا في الأول لازم نفهم إيش الفايدة اللي احنا
بندرسهإن كتير من البرامج بحتاج من خلالها التعامل
مع نصوص زي إيش مثلا أنا بدي أعمل برنامج بحث بدي
أبحث في نص موجود أعمل موقع web و عنده صفحات و بدي
أقوله دورلي على كلمة كده في الصفحة كل المواقع اللي
بتحط بحث عملية البحث و استخرج من نص هذا نوع من
أنواع التعامل مع النصوص بدي عند نص معين بدي أستبد
الكلمات موجودة فيه شيللي كلمة كده و حطلي بدلها
كلمة تانيةهذا برضه تستبدال الأجزاء من الكلمات، نص
معين قطع ليه الأجزاء، خليليه كل جملة لحال، مثلا في
برامج للتعامل مع النصوص، هذا كل نوع من .. بنسميه
text processing، معالجة النصوص وفيه أدوات كتير
مستخدمة وعلم واسع، موضوع ال text processingأساسيات
text processing أنا لازم أتعلم كيف أتعامل مع النص
طيب نرجع لموضوعنا هاي أنا جاعة بوصل العناصر من
خلال ال index نقطة تانية ال
functions برضه اللي كنا نستخدمها مع ال list ممكن
نستخدمها مع ال string زي ايش مثلا خلينا نقول linلن
ال X مش هذه كلها اللي استخدمها في ال list برضه هنا
لما أقول لن ال X تمام هيطبع لمفروض طول إيش طول ال
string كمان في عندنا ال max X
و print من ال X نفس ال methods اللي كانت موجودةفي
ال list طب هنا ال max و ال min إيش هيطبع؟ بالظبط
على أصلي code ترتيب الأصلي code هو كالتالي من a
capital ل z capital و بعدهم بيجي ال a small ل z
small يعني دايما مثلا ال b capital اللي askي
اتبعها أكبر من ال a capital صح؟ ال a small اللي
askي اتبعها أكبر من ال z capital
كيف .. اه z small اكتر اكتر حاجة فانا لما اقولله
max كايني بقولله هاتلي ال character اللي أكبر ..
أكبر أسكي لما أقولله من كايني بقولله هاتلي ا .. ا
.. ال character اللي أقل أسكي كله واضحة ايش يعني
max و من .. من ال .. من ال text تمام
هاي مثلا اه ..مش اللي صار هنا لحظة اه طبع طبع في
space اه الان طول ال 11 طول ال list او ال string
ال character اللي له اكتر ASCII code هو ايش ال R
small O P Q R S T U R لان اقل ASCII code هو ايش ال
space مش في space هنا تمام هذا اقل ASCII code
طيب أيضا من الحاجات اللي ممكن تلزمني في ال string
ال slicing مش أخدمها في ال list موجود في ال string
برضه يعني مثلا بدي مثلا الكلمة الأولى من النص هذا
هتليها أو عندي مثلا واحد اسمه محمد علي تمام؟بدي
اسمه الأول بس، تمام؟ بقوله روحلي لل X، تمام؟ و هات
من البداية لحد إيش؟ صفر، واحد، اتنين، تلاتة،
أربعة، خمسة، ستة، سبعة، هنعملها، في سؤال، هناخده،
خلينا نتعلم الأساسيات، بعدين بنشوف التمرين، تمام؟
زميلتكوا بتسأل، بقول أنا مش عارف قدش طول أول اسم،
هل في طريقة أن أجيب دايما الأول اسم؟ أه في، هذا
واحد من الأسئلة اللي حلوةلأ بندور على أول مسافة
وين موجودة و بعدين بنقوله تعالى من الأول للمسافة
تمام؟ بس لسه احنا ماخدناش كيف ندور على أول مسافة
وين موجودة صح ولا؟ طيب صفر واحد اتنين تلاتة أربعة
خمسة ستة سبعة تمام؟ بحط تمانية ليش؟ عشان يجيبلي
أول سبعة تمام؟ وهذه عملنا مالها print
تمام؟ هى طبعلى إيش؟ طبعلى محمد طيب
شوفنا ال slicing في كمان عندي حاجة اسمها ال .. ال
concatenation إيش يعني؟ ربط النصوص مع بعض تمام؟
يعني مثلا واحد ال first name تبعه
أحمد واحد ال last name تبعه
عمر تمام؟ بده اربطهم مع بعض بقوله full name يساوي
first name زائد last name هيك طبعا هيربطهم مع بعض
ملزقين في بعض بيكونوا يعني لو طبعت أنا full name
تمام وعملت print عشان
هذا بحط زائد ال concatenation دايما عبارة عن إيش
زائد طيب
في عندنا كمان ال repetition إيش يعني كلمة repeat
تكرار repeat يكرر repetition يعني تكرارهذه برضه
موجودة في ال list مش عارف انا انسيت اعطيكوا إياها
لو قلنا مثلا ال list عندي فيها مثلا 1,2 و 1,4
خليني أقول تمام؟ و بعدين قلتله list 2 يساوي list 1
ضرب 5 تمام؟
شايفين كيف؟list 1 ضرب 5 هذا معناه انه اروح على
list 1 كررها خمس مرات وهذا يصبح list 2 يعني خليني
اشوف ايش النتج هلجيت اعمل run مطبع ناشمه print
list
2 تمام
هاي الشكل ايش؟صارت واحد اربعة واحد اربعة واحد
اربعة واحد اربعة واحد اربعة اربعة اربعة اربعة
اربعة اربعة اربعة اربعة اربعة اربعة اربعة اربعة
اربعة اربعة اربعة اربعة اربعة اربعة
اتمام؟ بالصدفة لجيت أن هذا اسمه برضه ال last name
أحمد اسمه أحمد أحمد بتحصل تمام؟ بدي أكرر هذا ممكن
أقوله full name يساوي ال first name ضرب اتنين هذا
repetition تكرار بيعمل أحمد وجنبها أحمد تمام؟ I
print full name تمام؟
ضرب تلاتة بتطلع ايش؟ تكرار، مكرر طيب هي للعلم،
يعني ممكن ما تلزمش كتير في الاستخدام طيب
البحث في النص، ازاي ما ببحث في النص؟برضه ممكن ابحث
عن text أحد طرق البحث .. أحد .. في طرق كتير بحث
يعني في ال list في أكتر مضارف البحث أولها أن أعمل
in صح؟ if x in list بتطلع ليها true أو false وفي
طريقة تاله اللي هي index ما ال index بتستخدم في
البحث ليش؟ إذا العنصر موجود بيجيبلي ال index تبعه
إيش .. لما يقولنا list dot index إيش فيديتها؟عطله
كلمة بيشوف الكلمة قاعدة بيجيبلي ال index تبعها صح
ولا أين موجودة هذا يعتبر من طرق البحث يعني إذا لجأ
الكلمة هيرجعلي index رقم معين مالجهاش ممكن أرجعلي
error أو ناقص واحد مثلا نفس البحث في ال string في
ال list برضه موجود في النصوص بمعنى مثلا هاي ال
textmy name is Ahmed I live in Gaza I study in IUG
بدنا
نشوف نقوله text if بدنا نبحث في النص هذا نطلب من
المستخدم ايش search keyword input
search for نقطتين و بعدين بنقوله if text if search
keyword in text اطبع ليه found بس يقولي موجود او
مش موجود ايش هذا ال code بيعمل هاي نص موجود عندى و
بعدين هطلب من المستخدم يدخل ايش كلمةو بعدين كيف
بدي أفحص الكلمة الموجودة في النص و لا لأ بدي أقول
له if search keyword موجودة في ال text اطبعلي ايش
اطبعلي found زي
ال lesson تماما هاي لأ انا شغلت البرنامج هحطه هاي
بدي احط ال input تمام هاي Gaza تمام هاي اطبعلي ايش
اه found لو حطت اي كلمة تانه مش هاطبعلي حاجة ممكن
احط اللي هنا إيش else
طب بعد ما نجينا قبل نعرف مكانها اه مش هيك انتوا
سألتوا حالكوا هل جيت؟ اه بنقوله print تمام؟ بنروح
لل text و بنقوله إيش؟ عنا index و بنقوله search
keyword صح ولا لأ؟ يعني إذا الكلمة موجودة اطبعلي
انها found معايا انتوا ولا لأ يا جماعة؟ و هاي بده
كمان اختصر ال printout تمام؟ أحط هنا found at
حد فاهم حاجة إيش عملت مرة تانية هاي نص يا جماعة
طلبت من المستخدم يدخلي الكلمة اللي بتبحث عنها تمام
و بعدين قلتله شوف لي الكلمة موجودة في النص ولا لأ
تمام إذا موجودة في النص طبعا إذا اتنفذت هذه هيروح
يطبع لي found at موجودة فيه المكان تمام و بعدين
جيبنا text dot إيش dot index و حطينا الكلمة عشان
يجيب لي وين إيشوين موجودة وطبعت ايش هنا حولتها ل
string عشان انا جمعتها معاها دي else ايش not found
ده دي نجرب هاي
Gaza found at ايش index 28 ايش بيهمني اعرف ان
موجود في بعض البرامج لما تاخد user interface
design ممكن احتاج اعلم الكلمة وين موجودة بالأصفر
مثلا مش هيك بعمل ال word مثلا لما نبحث بيعرف وين
موجودة بروح بعلمها تمام؟
أه تبدو يحولها ل hyperlink مثلا طبعا ال index هذه
بتجيبلي مكان أول ظهور للكلمة طبعا كيف الواحد بدو
يجيب كل الأماكن للظهور هذه هنشوفها من ضمن التمرين
اللي هناخدها احنا في الأول احنا اشي قلنا الترتيب
نفهم ايش فايدة الموضوع و بعدين ايش الاساسيات
بتاعته ال functions و بعدين بناخد ايش تمرين عملية
طيب
خلّي النص هذا نحتاج نرجعله comparing ال strings
ممكن أقارن بقول هو ممكن نتقارن ما بين strings يعني
مثلا قولتله name واحد يساوي محمد عليه name اتنين
هل هدول زي بعض؟ لأ مش زي بعض فى هنا عندى E و هنا
عندى ايش A طبعا طيب لو قلتله اطبعلي او كيف بدى
افحص انه يساوي بعض او لا اكيد ال F name واحد يساوي
هنا W يساوي طبعا name اتنين اطبعلي انه هذا او ممكن
على طول ايش نروح نعمل ممكن هذه نعملها ايش print
هتطبع ليها true او false في الحالة هيطبع falseهي
طبع ليه؟ طبع ليه false لأن في حرف H مختلف ايش
بيعملهو في المقارنة يا جماعة؟ بيبدأ يقارن من
البداية تمام؟ امتى بيوقف لحد ما يلاقي character
واحد مختلف؟ يعني في الأول هيلاقي ال M زي ال M،
سيبهم O زي ال O، H و A، M، M، و بعدين وصل وين؟ ال
E و ال A تمام؟ هدول مختلفين على طول هيطلعلي إيش؟
false، بيكملش إيش؟ الفحص للآخرزي ما فيه يساوي فيه
كمان إيش؟ ماشي لا يساوي مفهومة أكبر من أو أصغر من
تمام هذا باعتمد على إيش؟ على ask code نفس المقارن
ببدأ يقارن من البداية تمام؟ هيصل وين؟ عند ال E و
ال A تمام؟ هل ال ask بتاع ال E أكبر من ال ask بتاع
ال A؟ صحيح تمام؟ يبقى هذا هتطلع إيش؟ true هيكمل
الباقي حتى لو فيه اختلافات بعد هيك هو مش معنيطبعا
يعني أنا هو مش معنى إيش فيه بعد هيك ممكن يكون فيه
هنا Z مثلا طبعا أه هو له عند أول حرف مختلف طبعا
بيقرر هل ال name واحد أكبر من name اتنين أو أصغر
طبعا وين أول حرف مختلف ال E و ال A بناء عليهم يشوف
مين أكبر من الحرفين هدول بيقرر مين أكبر name واحد
أو name اتنينلأن الـ E أكبر من A بناء على أصلي كود
تمام؟ فهيطبع لي أنه true فعلا name واحد أكبر من
name اتنين لو كانت هذه E مثلا وهنا حطيت زيادة أو
خلي هذه عالية وهذه زيادة عشان نطلع نتيجة مختلفةفي
الحالة ده ده كله يساوب بعض وهي اول ايش اول اختلاف
ال Z أسكي تبعها أكبر من Z capital فهذا هيطلع ايش؟
False مفهوم ال compare ما بين الكلمات بفيد ان انا
اعرف مين بيجي في الترتيب قبل ايش؟ قبل التاني اذا
نام واحد أكبر من نام اتنين يبقى فعليا في الترتيب
نام واحد بتيجي بعد نام اتنين صح ولا يا جماعة
الأكبر هو اللي بيجي بعدصح؟ فى سؤال؟
طيب نكمل الأساسيات بتاعة ال string iterating
string ايش هن iterating؟ نعمل loop زى ما بعمل loop
على ال list بعمل برضه loop على مين؟ على ال string
بتعمل loop على ال string هذه بقول 4 Iin text أطبع
لمن؟ أطبع لل I عشان يطبع character character تمام؟
تمام؟
هاي الناتج هذا لو بدى أجزء النص تبقى لإيش؟ آه ل
character
في طريقة تانية كمان لل loop for i in range لن ال
text range
هذه
طريقة تانية لل loop ايش بتخلف عن الطريقة الأولى
هذه الطريقة الأولى و التانية تمام هذه for i in
text
نفس النتيجة الاتنين نفس النتيجة
و قلت له for i and x كل character موجود في ال text
بيحطه في ال I و بطبعه طب التانية نفس الحاجة تماما
بس ايش التغيير ان ال I انا خلته يتغير بناء ال
index تمام؟ و بعدين قلت له روح تكست ال I انا
هنا مغيرتش تمام؟ اه طبعه بسواضحة؟ هذا أخدناه في ال
list يا جماعة طريقتين لل loop الطريقة الأولى أن
أنا بقرأ القيمة مباشرة و بقبعها الطريقة التانية أن
أنا بعمل loop على ال index و من ال index بجيبكوا
القيمة و بقبعها صح؟ احنا عادة بنستخدم الطريقة
الأولى بس امتى كنا نلجأ للطريقة التانية اللي مابده
يغير صح أو لا؟ اللي مابده يغير صح؟الطريقة الأولى
بقدرش أغير لما اتغير ال I مش معناه .. معناه انك ال
.. ال text ما اتأثرتش لكن هنا لما اتغير text ال I
كأنا
غيرت في ال lift نفسيواضح يا جماعة هذه النقطة؟ طيب،
نقطة مهمة جدا في الفارق .. يعني هل تفهمنا احنا ان
ال text هي نوع من أنواع ال list؟ لكن في فارق مهم
جدا بين ال text و ال list و هو ان ال text او ال
string is immutable ايش
هي كلمة immutable؟ immutable معناها غير
قابل للتغيير يعني
بيقوللي انه انت ال string بتقدرش تغير محتوى عن
طريق ال index تمام؟
كيف يعني السؤال هذا؟ الان احنا اتفجنا افرض و انا
مثلا بدي اغير كل character من هدولة اشفر النص هذا
احطه نجومطبعا كيف ممكن احل السؤال هذا بسيطة ممكن
اروح اقوله مرلي على كل character وشيل القيمة وحط
مكانها ايش نجمة صح مش ممكن اعمل هيك طيب اتيت انا
هي اللوب الموجود عندى قولتله for I in range لن ال
text وروح ايش لكل text I وحط مكانها ايش نجمة start
انت معايا ولا لأ يا جماعةهذا ال loop زي مثال ال
list اللي حلناه لما حولنا الأرقام من نصوص لرقم
تمام كنا نستخدم ال loop زي هيك هذا احنا مرّينه على
كل أنصر عن طريق ال index تبعه و بعدين قلت له text
I حط فيها إيش نجمة هنا لو أنا عملت run تمام هذا
طلع ليه error إيش بيقول لي هنا؟ بيقول لي ال star
object does not support item assignmentيعني انت
بتقدرش تعمل assignment على ال string object
حتى لو كانت input أنا ماقدرش بالمرة أغير محتوى ال
string عن طريق ال index أكيد هنا الواحد بتسأل طب
احنا المرات محتاجة نغير نستبدل كلمة زي ما حكيتنا
في الأول مش هذا تغيير اه انتبهوا معايا هل جيت ال
string تحديدا فعليا يعني واحد برضه ممكن يجي يقولي
ايش يقولي انا ممكن اغير ال text كلها اقولي حط
بدالها ايشعلي مش هيك انا غيرت المحتوى ال variable
text هنا إيش بيصير فعليا في ال memory هو بيقوللي
.. بيقوللي انت لما تروح تغير قيمة متغير من نوع ال
string فعليا هو إيش بيعمل؟ المتغير اللي في الأول
بحذفه وبنشغل متغير جديد لكن بيغيرش هالمحتوى نفس ال
string هذا اللي بيصير في الذاكرةو على فكرة هذا
الحاجة موجودة في كل لغة برمجية، إن الـ String
دايماً لها تعامل خاص، لا يمكن تغييرها عن طريق
Index، هذا نقطة كثير ما يعرفوها ببرمجيين، ليش الـ
String دايماً Immutable أو غير قابلة للتغيير؟من
نواحي الأمنية ليش ال passwords عبارة عن إيش كلها
أصلا كلها عبارة عن text لو في إمكانية لاختراق ال
passwords تمام و أن أنا أروح أدخل على characters و
أبدلهم هتصير الموضوع سايم تمام فبقولك لأ ال string
مافيش إمكانية أنه يتعدل على محتوياته الداخلية ممكن
أنا أعرف value من جديد كاملتمام؟ لكن أن أغير على
characters معينة فيه لأ عن طريق ال index يبقى ال
string جماعة نقطة مهمة immutable هتأثر على الكلام
اللي هنحكيه كمان شوية تمام؟ واضح النقطة؟ واضح ليش
هذا خطأ؟ أنا ممنوع أغير في محتوى ال string من خلال
ال index تمام؟
في ال list ممكن
طيب هذا هيترتب عليه بعض الحاجات لأن خلّيني الآن
نشوف يعني احنا اتناولنا بعض ال functions اللي
يشترك فيها ال string مع ال list زي ال lin و ال min
و ال max و ال n في البحث و ال concatenation و ال
repetition هذه كل الحاجات تشترك فيها ال string مع
مين؟ مع ال list لأن ال string هي أصلا list تمام؟
بس list غير متغيرة صح؟طيب، في بعض الأمور الخاصة في
مين؟ في الـ String، تمام؟ ليش خاصة في الـ String؟
الـ String عبارة عن نص، النص اللي بتعامل خاص،
تمام؟ زي إيش مثلا؟ في عندي مثلا method، تمام؟ طبعا
أنا أقعد ال functions اللي هتنولها كلها بستدعيها
من خلال اسم ال .. ال string dot اسم ال string dot
أول method اللي نتناولها اليوم اسمها lower ال
lower عادة من اسمها بتحول النص ل lower case بتحول
النص ل lower case تعالوا نعمل print لل text ايه
عملت انا هنا اي text و روحت نفثت lower و بعدين
طبعت ال text و تعالوا نعمل runطبعا لحظة بنشوف إيش
اللي .. اللي صار عندي، هاي النص اللي طالع عندي،
صار lower؟ لأ ماصارش lower، المفروض إنه يحول كل
حاجة ل lower على أنا بدي .. على ال .. على ال ..
المكتوب قدام، طب ليش ماحولهاش ل lower؟ بقول هنا
اتفجنا إحنا إن ال text مانهImmutable يعني ممنوع
أغير على إيش؟ على ال text نفسه، تمام؟ ال lower
مستحيل يتغير عن نص نفسه، طب إيش بتعمل ال lower؟
بيقول ال lower فعليا بتنشأ string جديدة بالتغييرات
تمام؟ ال string الأصلية تظل إيش؟ كما هي هذا من باب
أن ال string مالها immutable في ال list هذا الكلام
ماكانش موجود يعني أنا لو عند list وكنت أعمل dot
sort إيش كان يعمل؟ كان يغير في ال list كلها صح
ولا؟ أو لما كنت أعمل list dot append ال append مش
موجودة في ال string تمام؟
فعليًا text.lower لا تتغير في الـ text نفسه،
بيترجع لك نص جديد فيه تغيرات، تمام؟ يعني بمعنى
أننا نقول أنك بترجع نص جديد، لازم يكون عندك أيش؟
متغير وهذا الكلام هينطبق على كل ال methods اللي
هنشوفهم بعد هيك، مافي ولا method بتغير على النص
الأصلي، ليش؟ لأن النص ماله immutable، تمام؟ طيب
إيجابي تتطبع على ال gate؟ بتتطبع مين؟تكست اتنين
تكست واحد ماله ضال زي ما هو والدليل انه هي اطبع ال
print text تمام و تعالوا نعمل run و تعالوا نشوف
ايش صار هنا تمام هاي اللص الأساسي ماتغيرش وهي اللص
اللي نتج عن عيش عن تنفيذ اللوارق شايفين كل الحروف
صارت ايش صارت صغيرة
طيب عند text تلاتة يسوى text.upper وطبعه
لإيش؟ text3 وبنقوله كمان text4 يسوى text
.capitalize وبنقوله text5 يسوى text.title
طبعا تكست واحد اتنين تلاتة تكست اربعة وهي تكست
خمسة نشوف ايش .. ايش معنى .. معنى كل واحدة لو عملت
run الان شوف الناتج كيف هيختلف و ايش كل ناتج يعود
على ايش معنى هذا النص الأساسي واضح النص يا جماعة
ولا .. اه هاي النص الأساسيهذا النص الناتج عن lower
وهذا النص الناتج عن upper كله أصبح upper وهذا النص
الناتج عن capitalized ايش معنى capitalized؟ هذه
باستخدامها لما يكون عندي جملة متكاملة بدي أول حرف
الجملة بس يكون capital والباقي كله small وهذا اللي
صار في النص كله انه أوله بس حطه capital والباقي
كله small title ايش معناه title؟أول حرف في كل كلمة
بيكون capital احنا في ال .. في ال reports اللي
بنكتبها باللغة الإنجليزية المتعارف عليه أنه أول
كلمة في أول حرف بيكون إيش؟ بيكون capital فإذا بدي
النص تابعي أستخدمه ك title عشان أحطه مثلا في أول
الصفحة بنفذ عليه إيش؟ عملية titleطيب خلينا واحد
ممكن يسأل سؤال بيقول يا عم طيب إيش فايدة ال lower
و ال upper يعني هدول أستخدمهم أنا في الحياة يعني و
لا بس بتعطينا يوم هيك عشان أعبي وجد؟ لأ هدول مهمين
جدا بالذات في عملية ال text processing كيف؟ خلينا
ناخد مثال عملي أنا هنا عندي نص طبعا و بكرا من هنا
نبحث في ملفات نقرأ من ملفه و نبحث فيه طبعا و بدي
أطلب من المستخدم أو أطيح له فرصة إيش أنه يبحث
ممكن تمام بس شوف المثال انا اعطيكيه عشان يبين ايش
فايدة اللوة و ال upper و غيره search keyword بدي
اطلب من المستخدم ايش يحط كلمة البحث search for عن
ايش بدك تبحث تمام المفروض الان الكلمة اللي انا
حطيتها في search keyword اشوفها موجودة في النص او
لأ كيف بشوفها بقوله if search keyword in text صح؟
هيطبعلي مثلا found و بدى يقولى وين موجودة text
.index
موجودة زى نفس ال code اللى كتبناها قبل شوية search
keyword مش
موجودة بنقوله print not found عادي بحث عادي شوفوا
ال code اللى كنت كتبه قبل شويةأجيت وعملت run طبعا
لسه أنا استخدمت هنا upper ولا lower لأ بدي
أفرجيكوا أين ممكن تظهر عندي مشاكل أجي هو بدي أبحث
كتب المصل اللي بدي أبحث عنه Gaza بس كتبها بإيش ال
G small اضغط enter كتب لإيش not found أجي كتب لي
Gaza كلها capital CH4 Gaza كلها capital برضه قال
لي إيشجالي not found ليش؟ لأن فعليا فعلا هي not
found الكلمة بنفس ال .. ال style مش موجودة طب كيف
انا ممكن احسن طريقة البحث اللي عندى بحيث انه يلاقي
الكلمة سواء كانت موجودة capital او small .. او
small .. او small .. او small .. او small .. او
small .. او small .. او small .. او small ..أه
احنا مش عارفين كيف مكتوبة هذا ممكن احتمال حيال ان
بظبط بس الاحنا الطريقة الأفضل انه عشان احنا نبحث
في النص نوحد اول حاجة حالة النص اللي بتبحث فيه و
حالة الكلمة اللي بتبحث عنها توحيد الحالة بين
الباحث و المبحوث فيه تمام؟ يعني مثلا انت بدك تبحث
عن كلمة في النص خل النص كله small و الكلمة اللي
بتبحث عنها ايش smallبغض النظر إيش ما ال user
يدخلها خلّيها إيش small و بغض النظر إيش النص تبعك
كيف مكتوب خلّيه كله small هيك أنا لما أبحث small
في small بلاقي صح ولا إيه يا جماعة كيف .. إيش ما
يدخل ال user مش أنا في النهاية أحول اللي هيدخله هو
small
ما أنا .. ما أنا المكتوب بالاصل بدي احوله small و
لا ادخله .. يعني خليني ااخد مثال تمام؟ مش هذا النص
الأصلي تمام؟ بدي اقوله هنا copy text ايش هنا؟ ده
نسخة من النص تمام؟ بدي اقوله عبارة عن ال text dot
ايش dot lower يعني حولت النص الأساسي مش حولته
انشأت نسخة جديدة كلها lower تمام؟ و بعدين ال user
دخل كلمة اللي هي ال search keyword تمام؟روحت هنا
لـ search keyword و قلتله search keyword
dot lower هاي lower و خزينها برضه يا في .. ممكن
اخزينها في نفسي ايش يعني هذا الكلام؟ انا عدلت مين؟
ال string الأساسية هي نفسي او ها حط نسخة جديدةسيرش
كيوارد اتنين ايش يعني ايش ال search keyword اتنين
هيكون فيها النص الأساسي بس كله معمول ايش ال small
لأن هذا صار كله small وهذا كله small هلقيت بطلت
خايف من ايش من اختلاف الحلقة بقوله والله دورلي عن
search keyword اتنين في copy text واضحة
هذا small وهذا small اه فش مشكلة بيلاجيههلجأت طبعا
بدأ أقوله تدور لي برضه في copy text عن index main
عند index search keyword دي اتنين مالجهاش بطلع لي
إيش not found الأن ال user بده يدخل الكلمة اللي
بده يبحث عنها هاي
نعمل run search
keyword حط جازة كلها small هاي طبع لي إيش طبع ليه
طبع لي foundأنا هذا جبته بس ما طبعتوش هاي print
هاي
كمان run تمام احمد كلها capital مثلا او كتبها هو
مخربشة اشي capital اشي small تمام و هاي برضه ايش
لجأة بغض النظر عن كيف ال user كتبها في النهاية
مدام انا وحدوحدت حالة النص الأساسي والنص اللي بدها
ابحث عنه خلاص بيلاجيهم ان اعرف وين موجودة في النص
لان ممكن بعد هيك في برامج ان اعلمها احتاج اعلمها
بالأصفر مثلا مش لازم اعرف وين موجودة الكلمة
ما هو ماشي افرض انا في الموقع تبعي حاطط نص احطه كل
small عشان اريح حالي؟ لأ ما هو النص الموجود في
الصفحات لازم يكون اشي capital و اشي small و اشي ..
صح ولا؟ لكن لما اجي ابحث في الخلفية بعمل العملية
هذه، تمام؟
طيب نشوف برضه برضه بعض ال methods تانية فيها
هنا method اسمها برضه swap case تابع لها دولة اللي
هو بس بيبدل حالة النص يعني مثلا text يساوي text
dot swap caseهنا يا جماعة اشوف ايش بعمل انا اتفجنا
انه انه اي method تابع لل string بتغيرش في ال
string بترجع ال string جديدة هنا اش عملت رجع ال
string جديدة و الجديدة خزنتها تاني وين في ال text
هيك انا بقدر اغير قيمة من ال text و هي فعليا زي ما
قلنا بنشيه string جديدة و بحذف ايش الأولانية تمام
هتنطبع ال text
كل الاسواق بس ايش عمل؟ swap للحلات تمام؟ اين ممكن
تلزم مش عارف، هاي عارفتوهم تمام؟ method تاني مهم
جدا تمام؟ ومستخدم بشكل كتير اللي هي إيش؟ replace
my
name is Ahmed I live in Israel تمام؟
الان بدنا نروح إيش نعمل؟ IG is in Israel بدنا نبدل
.. هذا نصفي كلمة إسرائيل بدنا نبدل كل إسرائيل
بإيش؟ Palestine .. بنروح لل text تبعنا text dot و
بنقوله replace .. بطلب الكلمة الجديدة و الكلمة
الجديدة .. تمام؟ هاي بنقوله إيش؟ إسرائيل .. تمام؟
وحط اللي بدالها إيش؟Palestine تمام مرة تانية هذا
مش هيبدل وين في ال text فبنعمل ايش text ونخزنها
بقى عشان ال text الأولى خلاص بدناش نشوفها تمام
يعني أغير في النسخة الجديدة رجعتها خزنتها وين في
ال text و بقى أجيب أطبع من ال text
هيبدلهم كلهم replace كله ببدله طبعا هيتطلع هنا my
name is Ahmed I live in Palestine I study in IOG
IOG is in Palestine طبعا كل ظهور لإزرائيل بدلها
بإيش ب Palestine واحد
هيقول لي طب واحد هذه capital و هذه small و واحد
كاتب إزرائيل ممكن تكون إيش هذه زي هيكصح أو لأ؟
واحدة مكتوبة كلها capital والتاني small ايش هيعمل؟
هيبدل المطابقة بس، تمام؟ يعني هنا الأولى ضلت
والتاني عملها، بدلها لأنه لما ييجي يبحث، هذه
مالجععاش زي ما هي فإيش لازم نعمل؟ زي ما عملنا قبل
شوية، تمام؟ يعني إنه وحد الحلات وبعدين إيش بتعمل؟
بتبدل تعالوا هنا أقوله text يساوي زي ..
هنا نعمل سطر جديد نقول له text يساوي text dot ايش
dot lower حولته لا ايش اه لا lower كله وخزنته تاني
وين في ال text وقوله استبدلي كل ايش خلاص مش صارت
النص الأساسي lower يبقى لأ لما استبدل بستبدل ايش
ببحث عن ال lower و بقوله بدليها بإيش ال plus لازم
توحد الحالة في الأول تمام
هي ايش؟ هي بدلي بس هنا ايش؟ يعني من سلبياتها أنه
حول كل النص لإيش؟ ل .. للورة
بنفعش،
بدها شغلة هادة، نقطع الكلمات و نغير هذه يعني ممكن
نشوف مثال عليها بعدين بس هذا كحال مبدئي مش الحال
طبعا؟ طب المهم replace إيش يعني؟ استبدل حاجة بحاجة
تانيةطب نشوف كمان method تانية طبعا فى عندنا
method اسمها strip طبعا
هذا
نص فى عندى مسافات فى الأول و فى الآخر مالهو مش
لازمة بتنغيهم طبعا ممكن اقوله text.strip
طبعا هاي بدي أقوله new text و أطبعه لإيش طبعا
برجع للنص بدون أي مسافات طبعا بيشيل المسافات اللي
في الأول و في الآخر وين هذا بتلزم ال strip دي يا
جماعة؟هذا ال strip تحديد يعني بتلزم لما أجي أتعامل
مع forms أطلب من المستخدم يعبي form طبعا ممكن
المستخدم هيك بتبتد فلسفة بروح بكتب اسمه بعمل
spaces بخربش بكتب كلام يعني واضح بعمل space ليش
بعمل spaces أذى طبعا كتب اسمه حط spaces طبعا أنا
لأ أنا لما أجيب اسمه بدي ايش كل حاجة مش لازمة
spaces إيش هعمل فيها أشيلها فبس جيبت عملت إيش هنا
stripبشيله كل حاجة زيادة عن النص اللي زي ال spaces
هذه طيب
نشوف كمان في عندنا methods ممكن تفيد في
ال search طلع معايا شوية
بس
المسافة في الأول والآخر
طيب اتطلعوا يا جماعة معاه احنا بدنا نبحث .. ها دي
بدنا
نبحث عن كلمة .. كلمة معينة في النص ايش بنستخدم N
صح FN اذا بدنا نعرف وين الكلمة موجودةممكن نستخدم
إيش؟ index و ال index هذه موجودة وين؟ في ال list
يعني مثلا لو احنا طبعنا print text dot index أحمد
هيجيبلي
كلمة أحمد وين موجودة تحديدا هيطبعلي إيش هنا؟ 11 طب
لو كلمة أحمد مش موجودة في النص كله مثلا عمر مافيش
في النص كله عمر تمام؟
هذه موجودة برضه في ال list هاي طبعة .. هاي طلع ل
air .. طلع ل error sub string not found طيب .. هذا
معناه أن ال index فيها مشكلة أنه لو مالجاش النص
بتطلع ل errorطب كيف أنا بدي عالج ال error هذا؟
الصح إنك إذا بدك تستخدم index قبلها تحط fn وروح
تطبق ال index واضح كيف؟ يعني إذا موجود روح جيبلي
ال index زي ما عملنا قبل شويه ماشي يا جماعة؟ لكن
هو بيقول لل string تحديدا أنا بجيبلك method تانية
بتريحك من ال error هذا كيف؟ إن اسمها text اسمها
text.findالـ Find هذي زي الـ Index تماما، إيش
يعني؟ يعني بتجيبلك مكان العنصر وين موجود، بس إيش
بتختلف على الـ Index؟ إنه لو مش موجود النص، بترجع
ناقص واحد، لو النص مش موجود، بترجع ناقص واحد، إذا
موجود، بترجع الـ Index تبعه، مرة تانية، الـ Find
زي الـ Index، إيش بتفرج عنها؟ يعني كيف زي الـ
Index؟ يعني بترجعلي مكانالنص اللي ببحث عنه في النص
الأصلي فإيش بتخلف ال find على ال index؟ ان ال find
لو مالجتش العنصر بترجح ناقص واحد لكن لو .. لو ال
index لو مالجتش العنصر بتطلع ال error طبعا مثلا
هاي find أحمد وبنقبع
كمان find
عمرونشوف إيش هتطبع للـ find هاي
طبع ل 11 لأنه لجأ أحمد وطبع ل ناقص 1 لأنه ما لجأش
عمر ليش 11؟ صفر، واحد، لحظة، هاي واحد، اتنين،
تلات، اربع، خمسة، ستة، سبعة، تمانية، تسعة، عشر،
أحداشر أول character في أحمد إيش؟ أحداشر، مكان أول
character، تمام؟
يبقى انا يا جماعة ممكن استخدم ال find لحالها للبحث
مش انا قبل شوية كنت استخدم ال in عشان ابحث ممكن
انا لو كنت ابحث عن كلمة اقوله على طول if text.find
الكلمة اللي بديها يعني مثلا هنا ادخلها من ال user
search keyword يساوي inputدخل أي كلمة بدك إياها و
بعدين قلت له if search keyword لا
يساوي ناقص واحد print found صح ولا لأ مش ممكن
أستخدمها دايق في البحث احنا ممنيين نفرجيكوا اكتر
من طريقة الببرمجين فش اتنين ببرمجوا نفس ال code كل
واحد بيفكر في طريقةهذه طريقة تانية اذا قمت
بالإنجليزي في الـ text إذا نفذت find وطلع مش ناقص
واحد معناها فعلا ماله إنه موجود هي نفسها لما أقول
if text in بس بطريقة تانية تمام؟ في
كمان عرفنا أنها جات ال find و index في عندي كمان
زي ال find في واحد اسمها R find
ماذا تفعل؟ هتجرب text.rfind هاي
أحمد نطبع
هذا ال print احنا جايزنا نتعلم ال methods و في
الآخر أيش هيكون في عليها تمرين فلازم يا جماعة هذا
ال method ترجعوها كويس عشان لما نستحضر التمرين
بدنا نروح نتذكر أيش المناسب للتمرينواضح؟ فلازم تجي
مراجعين تمام؟
هنا جاب لنفس النتيجة إيش 11 إيش بتفرق ال file؟
حاجة بسيطة جدا أن ال R file معناها R يعني اختصال ل
write لأنه بيبدأ البحث من وين؟ من اليمين، من الآخر
تمام؟ إيش ممكن تفرق؟ يعني إذا أنا مثلا عندي شك أن
النص اللي بديه موجود في آخر حاجة تمام؟أو مثلا أنا
عندي البيانات بتنضف دايما وين؟ في الآخر فعشان أسرع
عملية البحث أنا عارف مثلا أن أنا عندي برنامج كل
الإضافات فيه بتتم وين؟في الأخر و أنا بعمل عملية
بحث كتير طبعا فممكن أعمل عملية البحث بحيث أن التم
من أخر باب تسريع فقط يبقى ال R و ال R find و ال
find نفس الحاجة بس الفرق أن هذا ببدأ من أول للأخر
و هذا ببدأ من أخر للأول
لأ ال R-find عادي بتجيب لل index بداية من صفر لل
.. لل لن اه بالظبط بس الفرق ان هي كيف بتشتغل
internally تمام؟ طبعا
ناقص واحد بتلجأ زيها زي ال find تماما مافي اختلاف
بينهم بس هم بختلفوا داخليا في طريقة العمل يا جماعة
تمام؟
في أن نفس ال list ال method count text dot count
إيش فايديتها؟ إن عد الكلمة كم مرة كررت تمام؟ هاي
Palestine عد اللي كم مرة .. زي ال list تماما يا
جماعة تمام؟ هاي run أو هاي طبع ليه؟ اتنين
فيه انا كمان two methods ننهي فيهم الموضوع اسمهم
starts with أو ends with ايش starts with من اسمها
هل النص تبعي .. هذا طبعا starts with و ends with
.. with بترجع true او false يعني فحصلة هل النص
تبعي يبدأ بكلمة معينة او لامثلا هنا start with ماي
كتبت، إيش هترجع؟ هترجع true هل النص ببدأ بماي؟
هيرجع لإيش؟ true هل النص تابع إيه؟ بنت إيه؟
بماي مثلا هيرجع لإيش؟ false يعني عشان أفحص البداية
والنهايةطبعا؟ واحد ممكن يسأل طب ما .. إيش هنستفيد
منها؟ يعني إيش هن .. هن .. هنطلع في الآخر لما نعرف
إيش ال baby ده و إيش بنتي؟ في تطبيقات كتير بلزمني
أعرف هن الناس ببدأ بحاجة معينة أو لأ مثال هناخد
المحاضرة الجاي، تمام؟ إيجي عندنا ناس بدأ أفحص هل
هو valid URL ولا لأ؟ إيش هن ال valid URL؟هل هو
URL؟ Link يعني هل هو ال link صحيح ولا لأ؟ فبنقوله
يفحصه هل ال link .. النص هذا بيبدأ بـ http و بنتهي
.. و بنتهي بـ .com أو .net أو .org أو .ps أو .. مش
عارف إيش إذا هذه الحدثة اتحققت بيكون النص ماله URL
صح ولا؟ ماشي
المرة الجايبنكمل ان شاء الله