طيب في المحاضرة الماضية يا جماعة أخدنا بعض الأمثل
العملية على استخدام ال string المحاضرة هذه هنحل
كمان سؤالين و ندخل ان شاء الله في موضوع جديد اللي
هو التعامل مع ال files يعني كيف نقرأ و نكتب من
files طيب
السؤال اللي هنحل اليوم أول سؤال بيقول write a
functionالشيخ مع صفحة صحية هي صفحة صحية يعني اكتف
فانكشن تفحص هل ال password صحية تنطبق عليها شروط
معينة او لا ايش هي الشروط هذه هنشوفها الآن في
السؤال suppose that the password rules are as
follows قواعد ال password كانت تالية اول حاجة a
password must have at least eight characters يعني
لازم على الأقلطول ال password يكون تمانية تمانية
او اكتر بتكون ال password صحيح a password must
consist of only letters and digits يعني احنا بنقدر
نحط في ال password فقط حروف و أرقام يعني رموز
ممنوع تمام الشرط التالت a password must contain at
least two digits يعني لازم تحتوي على الأقل على
رقمينيعني أنا مش بدخل characters على الأقل تمانية
من التمانية هدول على الأقل اتنين بدهم يكونوا
digits طبعا هذه الشرط احنا بنواجهها كتير في ال ..
لما نعمل password صح؟ ليش بيقولك لأ ولا ال
password اللي عملتها لازم يكون فيها على الأقل
أرقام طبعا لازم يكون فيها بتبدأ ب capital طبعا حتى
ممكن نضيف شرط نقول مثلا إذا يكون بداية الكلمة إيش
capital letter
طيب خلينا نشوف شرط شرط و نشوف كيف احنا برمجيا
بنحقق الشروط هذه أول حاجة ال password must have at
least 8 characters على ال len هذا كيف بنعملها على
ال len يعني لازم يكون ال len أكبر من أو يساوي
تماني الشرط التاني ال password لازم تحتويأو تتكوّم
ال letters و ال digit اذا قلنا اذا قلنا اذا قلنا
اذا قلنا اذا قلنا اذا قلنا اذا قلنا اذا قلنا اذا
قلنا اذا قلنا اذا قلنا اذا قلنا اذا قلنا اذا قلنا
اذا قلنا اذا قلنا اذا قلنا اذا قلنا اذا قلنا اذا
قلنا اذا قلنا اذا قلنا اذا قلنا اذا قلنا اذا قلنا
اذا قلنا اذا قلنا اذا قلنا اذا قلنا اذا قلنا اذا
قلنا اذا قلنا اذا قلنا اذا قلنا اذا قلنا اذا قلنا
اذا قلنا اذا قلنا اذا قلنا اذا
قلنا اذا قلنا اذا قلنا ا
خلنا نحل السؤال مع بعض يا جماعة طبعا هو طلب إيش؟
function يعني خلنا نفكر في الأول إيش اسم ال
function؟ إيش ال input تبعها؟ و إيش ال output؟
يعني إيش رأيكوا؟ إيش ال input تبعها؟ إيش المدخل
هيكون لل function؟ ال password صح ولا؟ و المخرج
إيش؟يعني هي المفروض يقول ان انا valid ولا not
valid يعني ايش يعني المفروض يكون المخرج تبعها true
او false صح و لا يا جماعة دايما انا لما يكون عندي
نتيجة ا او لا ابيض او أسود واحد او صفر valid او
not valid برجع true او false طبعا طيب نجي هنا نعمل
ال function نقول diff اسمها check password
وبين القصين همرر مين؟ همرر ال password لأن
أنا عندي طريقة تانية للحل يا إما أحط F في
statement واحدة أحط فيها شروط شرط الأول إذا اتحقق
and الشرط التاني and الشرط التالت رجع true يا إما
نفحص شرط شرط والله إذا ما اتحققش الشرط الأول رجع
false إذا اتحقق إيش أعمل؟ كملواضح الفكرة كيف هذه؟
هذا ال logic المفروض يكون بناء عنكم من المادة
الأولى، يعني يا إما أن أفحص كل الشروط، أقول و الله
إذا اتحقق الشرط الأول و التاني و التالت رجعت روحه،
غير هي رجع فلس، هذا طريقة، زي ما عملنا المحاضرة
الماضية، حليلها بالطريقتين، الحل التاني كان إن
احنا حطينا كل الشروط ورا بعض،طبعا إذا اتحققوا كلهم
حطنا ال بينهم رجعنا true الطريقة التانية لأ نفحص
الشروط شرط شرط والله نفحص الشرط الأول مااتحققش على
طول مافيش داعي نكمل مافيش داعي نكمل نرجع false إذا
ما .. إذا مااتحققش الشرط مش هيرجع false هيكمل في
البرنامج نفحص الشرط التاني و التالت و هكذا الانين
أفضل أي طريقة أفضل لكن أنا عند هنا كل شرط بده شغل
طبعا فمثلة ان احطهم كلهم ورا بعض ممكن تكون صعبة
شوية طبعا و ال code ممكن مش readable يعني صعب
قراءته او فهمه لو واحد اجي بدي يقرأ ال code فانا
بدي احلها الطريقة التانية و كل واحد يعني اي مبرمج
ممكن يحل بطرق مختلفة طبعا طيب اول حاجة بدي اشوف
اتاكد ان طول ال string مايقلش عن تمانية لان امتى
المفروض يطلع false اذا قل عن تمانية فبدي اقوله if
لن ال password أقل من تمانية return
false يعني انا هنا حطيت شرط انه تكون اذا كانت أقل
من تمانية على طول مافيش جهة تكمل رجع ايش رجع فالان
اذا مادخلش على ال F ال statement او اذا مااتحققتش
ال F ال statement هيكمل تحت تمام؟ الآن بتبحث من
شرط التانيالشرطة التانية بيقول ان لازم ال password
تتكون من letters و digits يعني باختصار مايكونش
فيها مثلا رموز الان if password is unknow تمام؟
اه لأ بديش اعمل return true الان انا بدي اقول له
if not is unknown
return false ماهي الكلام اللي حققته انا اذا بديها
is unknown اذا كان يتكون من alphabetical
characters و numerical characters كمل اذا ماكانش
هيك ايش مانعمل false عشان هيك نفيتها قلت له if not
is unknown يعني اذا مااتحققش الشرط هذا خلاص بتكون
ال password مالها خاطئة فيعمل false return false
أمتى هيكمل إذا كانت الله؟ العكس واضح يا جماعة هذه؟
هذا logic يعني في الأول أنا الطريقة اللي مشيت
عليها أني أفحص شروط إذا كانت ال password مش صحيحة
فبدأ أشوف إذا ما انطبقش الشرط الأول هيك بحكي هي ال
logic إذا ما انطبقش الشرط الأول اطلعطب إذا انطبق
افحص الشرط التاني إذا ما انطبقش الشرط التاني اطلع
لاحظ أنا قاعد بانفي إذا ما .. إذا لم ينطبق الشرط
التاني اطلع كلمة إذا لم ينطبقها دي كيف طبقتها؟
حطيت not تمام؟ و هنا كيف طبقت إذا لم ينطبق هذا
الشرط؟ حطيت بدل أكبر من أو يسوى حطيت إيش؟ أقل من
تمام؟ الآن اتأكدنا من شرطينالان الشرط التالت هو
اللي بده شغل شوية، ايش بيقوللي؟ انه لازم يكون في
ال password على الأقل رقمين طب كيف نتأكد انه
رقمين؟ احنا واحدة يقوللي أخدنا method اسمها as
digit، تمام؟ بس هذا as digit بتفحص ال password
كلهاأنا بديش أفحص ال password كلها، أنا بدي أتأكد
إنه من ضمن ال characters ذات ال password فيه two
characters على الأقل ما لهم أرقام تمام؟ أه بالظبط
في الحالة هذه أنا بقدرش أفحص ال S digit على ال
password كلها لازم أجزء ال password ل characters و
أمره على character character و كل character أتأكد
إنه digit ولا مش digit واضحة الفكرة هذه؟طيب يبقى
انا ال S digit بديش افحصها على ال password بدي
افحصها على مين؟ على مين؟ على ال characters انتوا
معايا ولا لا يا جماعة؟ بدي افحصها على ال
characters كيف انا بفحصها على ال characters بتاعة
ال password؟ لازم اعمل loop على ال password عشان
اجيب character character عشان افحص character
character فبقول 4in
password مش هيك أنا بمره على ال characters طبعا
بقوله if I dot is digit لأن إيش عملت هنا فحصت مين
ال character هل هو digit ولا مش digit إيش بنعمل في
الحالة هذه خلينا نفكر هل جيت بالظبط احنا قولنا يا
جماعة مايقلش عدد ال digits عن اتنين بمعنى إنه إحنا
قاعدين بنعدصحيح ولا لأ فانا بتدمره على ال
characters اللي موجود في ال string هاي مثلا كلمة
hello تلاتة و تلاتين تمام هو اشترط عليه انه مايقلش
عدد ال digits عن اتنين فبتدمره على ال character
الأول هل هذا digit مدام انا حددلي عدد يبقى لازم
اعدهم صحيح ولا لأ يبقى لازم اعمل قبل هيك ايش متغير
counter قيمته مثلا صفر
تسيبه وروح وين؟ على اللي بعده رقم لأ لأ لأ لأ هذا
ما قاله رقم زيد ال counter بواحد وروح على اللي
بعده هذا رقم زيد ال counter بواحد الان اذا بتطلع
على ال counter والله اذا كان اتنين معناه الشرط ما
يتحقق كان اقل من اتنين هو ايش اشترط انه مايقلش عن
اتنين اذا كان اقل من اتنين معناه الشرط خطأ
مااتحققش واضحة ده الفكرة ده يا جماعة
فأنا عملت loop for i in password عشان يمرعلك كل
character وفحصت هل ال character عبارة عن digit إذا
كان الكلام هذا سليم هنا قبل اللوب هذا يجب عمل
counter يساوي صفر وهنا بحكي counter زائد يساوي
واحد بعد
ما يخلص هذا كله if counter
أقل من اتنين return
false كأني بقوله إذا ما اتحققش الشرط التالت صح
ولا لأ if counter أقل من اتنين إيش يعني إذا ما
اتحققش الشرط التالت اعمل برضه إيش return false
يعني أنا ماشي الشروط بالترتيب مسكت الشرط الأول
مااتحققش أعمل false على قول في دا عنكمل فيش دا
عنكملبعدين امسك اذا اتحقق الشرط الأول روح على
التاني مااتحققش التاني اعمل false اتحقق كمل على
التالت اشتغلنا على الشرط التالت اذا مااتحققش اعمل
false الان والله اذا ماعملش return من ال code اللي
جابه المعنى ان كل الشروط مالها اتحققت فماعلي الا
في اخر سطر احط return true
فهمتوا هذه؟ يعني إذا والله ما رجعش هنا وما رجعش
هنا وما رجعش هنا معناها أن كل الشرط حققت صح في
الآخر عملت return true واضح
الحل يا جماعة الآن ده نتأكد من الحل هذا كيف
نتأكد؟هذه عبارة عن function طبعا فبدأ أقول له لأن
check أو اه بدأ أعمله print و بين قصين أحطه ل
check password ايش عملت انا نديت check password من
داخل ال print ممكن ايه دي أعملها؟ بنفع و لا بنفعش؟
بنفع هتطبع على إيش؟ true أو false لأن check
password في الآخر بترجع قيمةانا هنا بطبع القيمة
اللى بترجع من ال function check password انجرب نحط
مثلا passwords هى مثلا أحمد تلاتة هذه المفروض ايش
تطلع false لإن فيها digit واحد طبعا هى الكتاب لهنا
false طب هاتوا نجرب اكتر من واحدة هذه
لنشوف مين هيطلع false و مين هيطلع true هذه false
ليش ال digits واحد هذه صحيحة ولا يعني على عدد واحد
اتنين تلاتة اربعة خمسة ستة سبعة طيب هذه مالها برضه
خطأ عشان فيها underscore هذه مالها خطأ خلينا
نعملنا واحدة صح عشان ايش حطها هنا مثلا
واضح يا جماعة؟ طب كيف نفحص إذا الكلمة بتبدأ
بcapital؟ ماقولنا إيش، صح؟
نشوف ايش في عندنا مثلا خلينا نقول هنا نعرف اجربها
مثلا P يساوى نص معين isUpper
في عندى method اسمها isUpper طالع يا جماعة معايا
أحنا بنفحص إذا الكلمة بتبدأ ب capital يعني أنا ضفت
شرط من عندي إيش الشروط الآن صارت إن الكلمة مايقلش
عن تمانية مايكونش فيها رموز تكون بس من أرقام و
characters و الشرط التالت إنه يكون فيها على الأقل
two digits و الشرط الرابع إنها تبدأ ب capital
letter طبعا؟ الآن عشان أشوف تبدأ ب capital letter
في عندي لل string مثل اسمها is upperطبعا إيش يعني
is upper؟ من اسمها تفحصلي إنه كان upper case بس
مقدرش أقوله أطبق .. أقوله password و أعمله is
upper ليش؟ لأنه هاد هيفحصها كلها أنا بدي أتأكد فقط
إنه أول واحد هو ماله ال capital طبعا فبقوله
password وحط هنا إيش؟ zeroيعني هل ال character
الأول upper؟ طبعا على نفس ال manual اللي مشيت عليه
انه انا دايما بفحص اذا الشرط مااتحققش اعمل return
false فبقول له if not upper .. صح و لا يا جماعة
احنا ده منين في الشرط return false كيف
تاني .. اهليش في الآخر حطينا return true؟ لأن احنا
الطريقة اللي مشينا عليها انه نفحص الشروط شرط شرط و
أي شرط مااتحققش نطلع من الـ return false يعني إذا
مااتحققش الشرط الأول اعمل return false بعدين روح
على الشرط التاني مااتحققش اعمل return false روح
على الشرط التالت مااتحققش اعمل return false طبعا؟
الآن في أي شرط مااتحققش هيطلع من ال function صح
ولا؟ طيب إذا مر على الشروط كلهمعناه مش هي عمل
return فالخيار الوحيد اللي ضال عندي او الاحتمال
الوحيد انها true تكون صح ولا لأ؟ يعني اذا هو الشرط
الأول اتحقق يعني معناه ماعملش return false الشرط
التاني اتحقق معناه ماعملش return false التالت
اتحقق ماعملش return false معناه انه خلاص انه كل
الشرط حققت فهيعمل return true واضح
هذي يا جماعة كيف؟
هل في method اسمها isTitle؟ هنا السؤال طبعا إذا في
method اسمها I في isTitle ممكن تمشي يعني مثلا هنا
لجيت أنا method اسمها isTitle بس هذا isTitle يعني
إيش بتعمل؟ لو المكوّنة من كلمتين لازم الحرف الأول
من كل كلمة يكون capitalإذا كانت ال password عبارة
عن كلمة واحدة هادى بتمشي فيها يعني هنا كإني بقول
برضه إذا not title اما return false بس أسهل عشان
تكون مفهومة يمكن هي دى بتطلع ايش مفهومة أكتر is
upper يعني معناه افحصلي ال character الأول والله
إذا ماكانش upperعلى طول اما ال return فالس الان لو
وصل عند هنا شايفين المؤشر هذا السطر هذا اذا وصل
عند السطر هذا معناه انه عدى من مين؟ من كل اللي فوق
معناه انه اكيد ماضلاش خيار ان ال password مالها
صحيح يعني
في الحالة هذه مثلا لو حطيتها decimal المفروض يرجع
ايش؟ false
طيب خلّيني أشوف مثال تاني
write a function that parses a binary number as a
string into a decimal integer use the function
header if binary to decimal binary string ايش معنى
الكلام هذا؟ بنعمل برنامج ياخد مني binary number
كstring ويحوله ل decimalواضح يا جماعة؟ بدى ياخد
منى binary ويحوله ل decimal طبعا انتوا أخدتوا في
المقدمة في الحوسبة الفاصلة الماضية التحويل من
ثنائي لعشري تمام؟ والمفروض أن يكون H بسيط صح ولا
لأ؟ يعني مثلا لو أنا قلت الرقم هذا 101 تحويله ل
decimal عبارة عن باخد هذا اتنين بضربه في H في
اتنين وصفرو هذا بضره في 2 أس 1 و هذا بضره في 2 أس
2 و بجمعهم كلهم النواتر صح ولا لأ هيك أنا بحول ل
decimal طيب خليني احنا نشوف كيف احنا بدنا ندخل
string عبارة عن رقم binary و في الآخر بده يطلعلي
رقم decimal يقوللي هذا ال binary ال decimal تبقى
ايه زيه تمام بدنا نفكر فيها خطوة خطوة اول حاجة انا
هدخل جام المبدأ حل خلينا نخطط كيف الحل هيكون بعدين
مطبقأول شي انا ال string هدخلها مثلا كنص طبعا؟
مش
شرط ممكن نحولها في الأول ممكن نحولها في الآخر،
طبعا؟ اه الاصل ان احنا نجزقها، طبعا؟ يعني بدي اخلي
او امر على كل واحد على حد، صح ولا؟ خلينا نشوف الآن
المفروض ممكن نبقى طبعا ال .. هذا الرقم زي هيك أول
character فيه وين كstring إذا اتعاملت معاه كstring
وين أول character؟ من هنا، مش من هنا، صح ولا؟ يبقى
أنا لما أجي أعمل loop بقوله for I in مثلا S، اللي
هي إيش ال S هذه؟ اللي هي ال .. ال string هذه ممكن
نعمل loop بالعكس، مش مشكلة، تمام؟ بس أنا بدي ..
أنا بدي أعملها بالشكل هذاالان بدى امسك ال
character الاول المفروض اضربه في ايش؟ في 2 اقص حجة
صح ولا؟ في 2 اقص جداش المفروض اضربه في المثال هذا
هنا في المثال هذا في 2 اقص جداش؟ في 2 اقص 3 كيف
عرفت 2 اقص 3؟
ماشي طول ال string جداش؟أربعة طبعا فدائما هنبدأ
الأول هيكون في اتنين أقصى صفر اتنين أقصى واحد
اتنين اقصى اتنين اتنين اقصى تلاتة هذا يا جماعة
ناسي كيف تحويل من بايدنا لديسمل تمام بنضرف في
اتنين أقصى صفر لحد اتنين أقصى طول الرقم ناقص واحد
صح ولا يعني هذا هينضرف في اتنين أقصى تلاتة هذه
التلاتة ممكن انا اجيبها ان هي لن ال S ناقصوحد
فشوفوا انا ايش بيسويه انا بدي اعرف طبعا الان اجيت
لكل ins ليش عشان امر على الأرقام واحد واحد صح ولا؟
الان هذا الرقم بينفع اضربه لسه هو character صح
لازم احاوله لإيش لأ لستري فبدي اقوله مثلا بيساوي
انتالـ I أشمل الكلمة، يعني كل character مرّيت عليه
حوّلته لإنتجة لإنتجة بعدين، أمسكت ال B و بدأ
أضربها في مين؟ لحظة، في لن .. في لن ال S ناقص واحد
لأن أنا .. في اتنين .. في اتنين .. في اتنين .. في
اتنين .. في اتنين .. مش هيك القص؟ لنالـ S ناقص
واحد طيب بعد ما ضربنا اول مفروض نحط الناتج المفروض
زي متذكرين برضه انه احنا لما نضرب في اتنين قص صفر
اتنين قص واحد اتنين قص اتنين اتنين قص تلاتة كل
هدول بنجمعهم صح ولا يبقى في الآخر هذا الناتج
المفروض اضيفه على sum بالظبط تمام؟ المفروض يكون
عندي sum هنا يساوي صفر وهذا كله ينضاف على مين؟طبعا
هنا بدنا indentation طبعا المفروض هذا كله ينضعف
على ال some لسه فاندي مشكلة هنا في ال code مرة
تانية يا جماعة عشان ما نخبطش انتبهوا معايا ال code
هاداش بيعمل أول حاجة بيعرف متغير اسم ال some came
to suffer بعدين بده مره على ال characters الموجودة
في ال stream character character من هناعاملية
التحويل بتقول إذا بدأت من هنا بتضرف في اتنين قص
سفر، إذا بدأت من هنا بدأت تضرف في اتنين قص طول ال
string ناقص واحد، واحد بيقول لي كيف جيب طول ال
string ناقص واحد؟ جرب
مفروض ال character اللي بعده ينضرب في إيش؟في اتنين
قص اتنين مش اتنين قص تلاتة يعني المفروض الرقم هذا
ماله ينجس طبعا ببساطة شديدة عشان اخلى الرقم هذا
ينجس هو البداية الرقم جدش هتكون N يساوي ل N ال S
ناقص واحد صح فادرب في N و بعدين قوله N ناقص يساوي
واحد
هيظلوا ينقص ايه؟ يعني ال N بدايتها اللي هي ال N S
ناقص واحد أول رقم هينضرب في إيش؟ في ال N S ناقص
واحد وبعدين هينقص ال N في اللفة اللي بعدها ال N
مالها هتقلب صح ولا إيه يا جماعة خلينا إيش نكتب
الكلام هذا هو
أصلا هيوقف لما يوصل لوين يعني automatically هيوقف
لما ال N تساوي سفر تمام؟لأنه هيعمل loop من أول
للآخر، تمام؟ فأخر قيمة هتكون للأن هتكون صفر طيب،
خلّينا نجرب نحل السؤال هذا أول حاجة بدي أطلب من
المستخدم يدخل إيش الرقم كstring فبدي أقول له مثلا
binaryأو لحظة قبل ما نطلب هو ايش طلب مني طلب مني
function صح لسه احنا نكتب ال function و بعدين نطلب
من المستخدم يعني طلب من المستخدم هذا في التجربة
طبعا فبدأ أقول له def هو طبعا بيان لصغتها شكل ال
method زي هيك هاي بنسخها لو حطها اسم ال function
binary to decimal بتاخد binary stringالمفروض أن
ترجعني integer صحيح؟ لأ اللي هو decimal value لأن
بالنسبالي على التفكير اللي فكرته تمام؟ أول حاجة
أريد أن أعرف sum قيمته صفر اللي هو هذا الناتج
النهائية اللي أريد أن أضعه فيها لأن أنا بمر على
أرقام واحد واحد وكل واحد بضربه في اتنين أو أسحاجة
و بضيف الناتج على ال sum بعدين
اتفجنا كمان ان انا كل رقم بمر عليه بضربه في اتنين
أس حاجة بيبقى انه انا اعمل for loop for I in
binary string هيك انا مريت عالمين على ال
characters واحد واحد خد ال character هذا و حاوله
لإيش لانتجار عشان اقدر اضرب و
بعدين ال character هذا اضربهن نقص
واحد و تنتهي عن صفر ن نقص
واحد و تنتهي
عن صفرواضيفه ع ال sum و بعدين ما ننساش ننقص من ال
n من ال n واحد خلصنا
يا جماعة الناتج one هيكون في الآخر في ال sum و
بقول return return
sum
يعني أنا هذا أكتر حاجة مقدر أعملها عشان أفهمكوا
السؤال اللي مش فاهمه قعد يروح ياخده على البيت و
يحلله لحاله و يحاول يفهمه تمام؟ لأن أنا معتمد أن
انتوا إيش .. يعني متذكرين كيف نحوّل من binary ل
decimal طيب لإن أنا عشان نجرب الحل هذا بنقوله مثلا
print و
ناخد ال .. ال function و نبعتلها أرقام binary
المفروض تطلع لل decimal الصح إليهامثلا بدي أقول
101، اللي هو إيش بطلع؟ خمسة، تمام؟ عندي 1111، اللي
هو سبعة طيب،
هاتنع مرة؟ تمام؟ هاي طلعلي خمسة، سبعة، عشر، تمام؟
في حد عنده سؤال يا جماعة؟ طيب،
نقطة أخيرة، قبل ما ننهي موضوع الـstring نقطة صغيرة
ما أتكوش إياها، يعني بدي أنوه إليها لأنه في جماعة
سألوني عليها المحاضرة الماضي shuffle a string، إيش
يعني shuffle a string؟ string مكونا من مجموعة
كلمات، بيقولنا لخبطها، تمام؟سؤال مثلا text
يساوي أحمد علي أمل عمر حسن لأن هذه أسماء هل بنقدر
نعمل لخبط على الأسماء هذه؟طيب، بنشوف كيف نقدر
نخبطها أول حاجة كان عندنا في ال list method يسمى
shuffle هل بنقدر نستخدم ال shuffle هنا؟ لأ، ليش؟
تمام، كلهم .. مو غير أيه كمان؟ ال text is
immutable يعني أنا مقدرش أغير على محتوى ال text
لاحظوا أن فيش ولا method احنا طبقناها على ال
string بتغير في ال string الأصليةبترجع متغير جديد،
طبعا؟ لكن في ال .. في ال list احنا بنقدر نغير
المحتوى، لما تقوله list dot start، إيش عمل؟
أرتبها، غيرها، shuffle، غير في ال list نفسها،
مارجعليش list جديدة، طبعا؟ فأي method كانت في ال
list تتغير محتوها، لا يمكن أن أستخدمها مع ال text
فيش في ال text اسمها text of sort هذا مافيش مثل
موجود زي هي لغوها لإني بقولك ال text هذا immutable
مقدرش أغيره على المحتوى و ال sort المفروض تغير في
المحتوى نفسه طب إيش الحل لو أنا بدي أعمل shuffle
أعشوائي أخربط الأسماء الموجودة هنا أول حاجة بدي
أعملها مدام بدي أخربط يبقى لازم أحول ال text لإيش
ل list ال list مقدر أخربطها ال text مقدرش أخربطه
صح؟فبالظبط كيف نحول من text ل list أخدنا أن نعمل
split بناء على المسافة تمام؟ وهذا يرجعلي list
نسميها مثلا names الآن خلاص صار in the list بقدر
أخبطها و بقدر أرتبها يعني حتى ممكن السؤال مش بصل
أخبط ارتب للأسماء الموجودة sort مثلابترتب الأسماء
اللي موجودة في النص طب كيف برتب الأسماء اللي
موجودة في النص؟ ماقدرش إلا أحول النص ل list كيف
حولته list؟ جزقته بناءً على ال space هيك صار list
بعدين باخد ال names بعملها sort إذا بترتبهم ترتيب
تصادي أو بعمل shuffle كيف نعمل shuffle؟ import
random random
don't shuffle names
الان السؤال المهم هل بنقدر نرجع ال list ل string؟
ل نص؟ كيف؟ ممكن نعملها بأكتر من طريقة تمام؟ اه في
join و في .. يعني الطريقة اللي انتوا ممكن تعملوها
الآن على اللي أخدناها ان انا أعمل string فاضية و
أعمل loop على ال list و كل answer بمر عليه بضيفه
على ال stringصح ولا لأ يعني انا عند list names بدي
احولها على نص بعمل text 2 ماله ال text 2؟ فاضي و
اعملي for i in names اش يعني for i in names؟
مرليلي على العناصر الموجودة في ال list واحد واحد و
اعملي text 2 زائد يساوي i وحط مسافة
هذه واضحة يا جماعة؟ ايش اللي عملته هنا؟ مرري اللي
.. ال .. ال .. ال .. ال .. ال .. ال .. ال .. ال ..
ال .. ال .. ال .. ال .. ال .. ال .. ال .. ال .. ال
.. ال .. ال .. ال .. ال .. ال .. ال .. ال .. ال ..
ال .. ال .. ال .. ال .. ال .. ال .. ال .. ال .. ال
.. ال .. ال .. ال .. ال .. ال .. ال .. ال .. ال ..
ال .. ال .. ال .. ال .. ال .. ال .. ال .. ال .. ال
.. ال .. ال .. ال .. ال .. ال .. ال .. ال .. ال ..
ال .. ال .. ال .. ال .. ال .. ال .. ال .. ال .. ال
.. ال .. ال .. ال .. ال .. ال ..
ال .. ال .. ال .. ال .. ال .. ال .. ال .. ال .. ال
.. ال .. ال .. ال .. ال .. ال .. ال .. ال .. ال ..
ال .. ال .. ال .. ال .. ال .. ال .. ال .. ال ..
ال
واضفت هذا كله على مين؟ على ال text هيك رجعت عندي
text لتأكد هيتعامل أطبع print
text 2
لأن هذه النتيجة حق لي أحمد عمر أمال علي حسن تمام
تعالى نعمل run تانى المفروض تطلع نتيجة مختلفة طب
هاي run تانى هاي مثلا هنا طلع لي أمل أحمد علي عمر
حسن كمان مرة run تمام أمل علي حسن أحمد عمر هاي
أحمد عمر حسن علي أمل تمام هاي و قاعد بالخبط
واضح يا جماعة السؤال هذا كيف حولنا النص ل list
وكيف حولنا ال list ل نص تاني طيب في طريقة سهلة
لتحويل ال list ل نص احنا كيف الطريقة اللي عملناها
لتحويل ال list ل نص عملنا loop وضفنا كل واحد
بالمرة عليها على نص فاضي الطريقة التانية بقولي انت
بتقدر تروح تعمل حاجة اسمها method اسمها joinماذا
يعني كلمة join؟ اربط، تمام؟ ال join هذا انتبه كيف
بتشتغل ال join بيقول لأول حاجة بدك تعمل string
اتحدد فيها ايش الحاجة اللي بدها تفصل انا مرت عشان
ما انتوا ايش، ايش الحاجات اللي بدنا نعملها join؟
الحاجات الموجودة في ال list بدنا نعملها join عشان
يطلع عنده text مرة تانية الحاجات الموجودة في ال
list بدنا نعملها join عشان يطلع عنده text طبعا
فأول حاجة بنحدد الحاجة اللي بدها تفصل اللي بنقل
عليها بدنا نعمل join ماشي انا عملت لهم join يعني
ربطهم مع بعضأيش بده يفصل بينهم لما تربطهم عن بعض؟
أنا هنا قلتله space بجعل space هذا .. بكتب space و
بقوله dot تمام و بحط ايش؟ join .. join لمن؟ لل
names بروح
على ال string على الفاصل اللي انا بديها بين
الكلمات و بقوله dot join و بحط هنا listهذه كلها
هترجعلي نص ماشي
نفس الحاجة تمام هاي print تكسي
اتنينهذه بتعمل نفس النتيجة اللي قبل شوية أنا برضه
بتربط الكلمات مع بعض مرة تانية يا جماعة هاي أنا
عندي نص بدي أعمله لخبطه و هو نص ماقدرش ألخبطه لازم
أحوله ل list و ألخبطه و بعدين أرجع لإيش لنص فروحت
في الأول عشان أحوله ل list اعملت split اتحول ل
list اسمها names اعملت shuffle لل names خلاص لخبطت
لان بدي أرجع text تانيكيف برجع ال text تاني؟ ممكن
أعمل .. أستخدم طريقة ال join بحيث أن أحط الحاجة
اللي بديها تفصل بين الكلمات و أقول له dot join و
هنا ببعد ال list وهذا كله سطر برجعلي نص
بحط في متغير اسمه text2 مثلا و بقول له print text2
مثل شوف مثلا list تساوي1,2,3,4,5,6 هذه مالها أرقام
list of numbers بدي أحول ال list هذه لنص واحد يفصل
بين كل رقم و رقم شحطة تمام؟ إيش بنعمل؟ بحط رمز
الشحطة زي هيك و بقول dot join تمام؟ و بين القوسين
بحط main ال list و هذا هيرجعلي text
صح يقول ايه يا جماعة شحطة join و ببعت ال list و هد
برجعلي نص و بقول print اه
هد ايش الغلط بس ان هدولة بقولي أرقام ال join هد
بدها string list of strings تمام فخلينا احنا نحطهم
أرقام
هي ال join بتشترط ان انا بتعمل join لنصوص ل
strings طبعا اذا
ان هي الناتج طلعلك كل الأرقام فاصل بينها ايش شحطة
و احب اقول طبعا عند ال list أصلا كلها من أرقام
تقدر تمر عليهم واحد واحد وتعدل كل واحد الرقم
تحولها للـ String طيب واضح المثال هذا يا جماعة؟
طيب الآن في homework على chapter لـ String اللي هي
الأسئلة هذه تمانية أربعة chapter تمانية الأسئلة
أربعة و ستة و تسعة و أحداشر و تلتاشر أربعة
ستة9, 11, 13 و مرة تانية بأكد يا جماعة أن البرمجة
بدها يا جماعة شغل في البيت تمام؟ بدها تمرين كل ما
اتدربت أكتر كل ما غلطت أكتر كل ما اتعلمت أكتر
تمام؟
هدولة؟
ما هو الكتاب موجود PDF يعني الكتاب فيه تفاصيل و
أحيانا الكتاب بيحط رسمة و بيحط example فأفضل ترجع
للكتاب طيب يا جماعة خلينا ندخل في موضوع جديد الآن
طيب يا جماعة انتبهوا معايا كل البرامج اللي أخدناها
لحد تلان لو اتعاملنا فيها مع ال data و فكرنا
البرنامج ال data كلها بتروح يعني مثلا عندي list
فيها أرقام أسماء
أتعاملنا كيف نتعامل مع ال list هذه أو ال string
بطرق مختلفة المهم أنه أنا لما أسكر البرنامج في
الآخر كل ال data اللي بتعامل معاها مالها بتروح لكن
احنا لما أجي أعمل برنامج فعلي بلزمني حاجة اسمها
data persistence إيش يعني؟ إنه لازم أنا أحافظ على
البيانات اللي بتعامل معاها البرنامجمثلا برنامج
قبول التسجيل في الجامعة أكيد أن بيانات الطالب
بتاعة التسجيل والحذف والإضافة كلها موجودة في
البرنامج صح ولا لأ برجع تاني بلاقي كل البيانات زي
ما هي الأصل احنا لما نعمل برامج معتمدة على data أن
التغييرات اللي بتصير أو كل ال data اللي بدخلها على
البرنامجلازم أبقى لها موجودة بحيث أني أقدر أرجعلها
في وقت لاحق، تمام؟ فكيف بنشوف .. كيف احنا نحفظ
البيانات اللي بتتعامل معها البرامج أو هاد
بيشيلولها دايما في البرمجة لحال يسمى data
persistence اللي هو المحافظة على ال data أو ثبات
ال data، تمام؟طيب كيف احنا نحافظ على ال data
persistence؟ في أكتر من طريقة لحفظ البيانات اللي
بتعامل معاها البرنامج أول طريقة أنه أنا مثلا أخل
البرنامج معتمد على files ملفات بمعنى أنه أنا أي
data بتعامل معاها أي بيانات بدخلها المستخدم باخدها
بحطها وين في ملف بيجي البرنامج بشغل من أول و جديد
بخليه يقرأ من نفس الملف هذا واضح يا جماعة؟وهذا
الموضوع اللي احنا هنتكلم عليه اليوم اللي هو
التعاول مع الملفات بطلب من مستخدم دخلي أسماء طلاب
على طول أول ما يدخلهم بيحطهم وين في ملفه بيرجع
تاني بيقرأ أسماء الطلاب اللي عنده بيقراهم الملف و
بيطبعله إياهم مافيش دا أي دخلهم من أول و جديد طبعا
احنا هنبدأ في موضوع ال files ان هو دي أسهل طريقة
للإدخال و الإخراج للبرنامجفي طريقة تانية كمان اللي
هو التعامل مع قواعد البيانات او ال databases تمام
ال databases مزدها انها بتقسم البيانات لجداول و
لاعمدةوبتمكنني ان اعمل حاجة اسمها query بمعنى
استعلام على قواعد البيانات تمام؟ والاستعلام هذا
بقدر اخصصه احدد اقول له مثلا هتل الأشخاص اللي
اسميهم بتده بحرف ال a بروح بدور في ال data
وبيجيبلي فقط ال data اللي بتنطبق عليها المعايير
الموجودة في الاستعلام اللي انا بعدتهقواعد البيانات
لها مميزات أكتر بكتير من ال files لأن زي ما قلنا
ال file مشكلته أن أنا بفتحه و بقرأه كله لكن قواعد
البيانات بستخرج منها فقط البيانات اللي أنا بدي
إياها لكن التعامل مع قواعد البيانات هذا هتاخده انت
في مادة كاملة اللي هي العامل القادم اللي هو ال
database وطبعا اللحظة أن كل المواد بتكمل بعض يعني
ال database بتخدم بالبرمجة أصلا ليش بدرسكوا
database؟لأن عشان أقدر أعمل برمجيات معتمدة على ال
database مواقع ال web كلها، موقع الأخبار مثلا، من
وين بيجيب ال data اللي موجودة فيه؟ من قواعد
البيانات، تمام؟ مخزنة في قاعد البيانات على ال
server فقواعد
البيانات مرتبطة في البرمجة، احنا طبعا مش هنقدر
نشرح قواعد البيانات في المادة هذهليش؟ لأنكم لسه لم
تحصلوا على قواعد البيانات تمام؟ فنشرح استخدام ال
files لأنه بسيط قواعد البيانات تاخدوها بالتفصيل
لأنه بده تفاصيل كتير ومعلومات ماقدرش نغطيها أو مش
اهتمامنا في المادة هذه طبعاً في طرق تانية أنه نخزن
على مثلا ال cloud خليني أقول هذا remote storage
يعني storage بعيدأخزن على الـ cloud أخزن على الـ
server بعيد طبعا أكيد هي بتروح على الـ server و
تتخزن فيها على ملف أو قاعدة بيانات طبعا اللي
بتتعامل مع البرامج ضروري أنه يقدر يتعامل مع طرق
التخزين المختلفة يعني الآن مثلا مثلا اللي بتتعامل
مع ال mobile applications كل معظم ال mobile
applications بتتلقى ال data بتاعتها أو بتخزنها على
ال servers أو على ال cloudليش؟ لأن الذاكرة أو ال
storage size الموجود في ال mobile محدود تمام؟
فدائما احنا بنجيب ال data بنقرأها من ال server و
بنخزنها برضه على ال server عادة هذا لا يمنع ان
احنا نقدر نخزن على ال mobile و برضه لازم تكون عندك
إمكانية ان تتعامل مع التخزين و القراءة من الملفات
لأن الملفات بتمثل طريقة بسيطة لتخزين البيانات و
قرايتها و أكتر حاجة مستخدمة طبعا بالذات مثلا في
مواقع ال web لأن انت تخصصكوامصه تقريبا ايش؟ web
بقدرش واحد يقول والله أنا بحبش البرمجة مش ميولي ..
مش ميولي برمجة مش ميولكوا برمجة أنا مش ميولكوا
multimedia ليش؟ لأنه التخصص نفسه تكنولوجيا الوسائط
المتعددة هو تطوير ال web إلا لو بدنا نحذف ما بعد
ال و هذا خلاص بتصيروا تشتغلوا multimedia
طيب المحاضرة عادي ان شاء الله هنتطرق للتعامل مع
الملفات كيف نقرأ و نكتب من الملفات باستخدام ال
python و لاحظوا ان المواضيع مش منفصلة المواضيع
كلها مترابطة مع بعض يعني في النهاية ايش اللي بتخزن
في الملف يا جماعة؟ text صح ولا؟ في النهاية أنا
بتعامل معه text يعني هناخده احنا المحاضرة عادي و
المحاضرة اللي جاي مكمل للتعامل مع النصوص لأن انا
بقرأ من الملف نص و بسيط اتعامل معاهطيب اول حاجة
خلينا نشوفها كيف احنا نوصل للملف نكتب عليه و نقرأ
منه الكتابة و القراءة بسيطة جدا يا جماعة تخيلوا
مثلا انا بدي اروح على مجلد عندي على drive تمام و
هاي بدي انشأ مثلا ملف و نكتب فيه hello world
learning file io in python
هذا ملف Text اسمه 1.txt موجود في مجلد عندي الآن
بدي أتعلم كيف أكتب على الملف و كيف أقرأ منه عشان
أقرأ من الملف في عندى method اسمها open افتح الملف
يعنيOpen هذي بتاخد حاجتين بتاخد مصار الملف و بتاخد
ال mode حاجة اسمها ال mode هنفصل فيه الآن مصار
الملف يعني انا بروح بكتب المصار بتاع الملف بقوله C
نقطين slash 123 slash 1 dot txt هذا الملف تبقى
موجود على ال C نقطة
مهمةإحنا لما نكتب المسار عادة نحط slash واحدة لكن
لما نتعامل بالبرمجة لازم نحط slash in ليش؟
إيش السبب؟ مين عارف؟ لأن ال slash عبارة عن
character محجوز في البرمجة يستخدم استخدامات كتير
يعني مثلا إنتوا لما تحطوا slash inجربتوها Slash T
كأنكوا بتقولوا انه اطبعلي new line اطبعلي Tab
اتمنى؟ ايوة فهو بترجم ال Slash انه لو بعيدها فيه
character هينفذ شيء معين انه هيعمل ال new line او
كده فعشان ما يتلخبطش حطته Slashين واضحة في هذه
النقطة يا جماعة؟ فدائما في ال path's ايش path
يعني؟ المسار بتاع الملفات بنحط Slashين بنحطش Slash
واحدة
أه يعني مثلا مثلا لو كان .. لو كنت انا حاط Slash
واحدة واسم الملف Slash n.txt هك انا لخبطه هلا انت
بدك تعمل new line ولا جصدك انت اسم
الملف لكن انا هيك .. هيك راح اطلع الخبطة بفهم two
slashes اه يعني انا مش بديش اعمل Slash n هذا معناه
للمثال طيب نرجع لملفنا واحد dot txtهك انا بفتح
الملف النقطة التانى اللى بنحددها ليش بده نفتح
الملف؟ اه يا اما نقرأ منه يا اما نكتب عليه يا اما
نعدل عليه في تلاتة conditions تلاتة modes ال mode
يعني الوضع الوضع القراه و الكتاب ليش انت بده تفتح
الملف؟ لأن اذا انا بده اكتب عشان .. اذا انا بده
افتح الملف عشان اكتب عليه بحط رمز
W W اختصارا ايش من write تمام احنا خليني ناخد حاجة
حاجة الكتابة لان انا هنا فتحت الملف بهدف الكتابة
بعمل open بحط مسار الملف و بحط ال mode اللي هو W
هم فيه تلاتة modes W و R و Aأحنا الأولى بناخد الـW
للكتابة الـR للـRead والـA للـAppend تعديل طبعا
خليني أقل واحد واحد كتبنا الـW للكتابة هذا ال
method open بترجح عندى متغير خليني أسمي المتغير
file مش الملف هذا متغير ممكن أسميه A,B,X,Y,Z هذا
متغير برجع من مين؟من الـ method open تمام؟ هذا
المتغير بيقولني من نوع حاجة اسمها text IO wrapper
هلقيت مش المتغيرات أنواع؟ في متغير integer في
متغير string في متغير float الرقم اللي فيه كسور
float تمام؟ هذا متغير من نوع خاص اسمه text IO
wrapper نوع ثابت في ال .. في ال pythonماذا يعني
Text IO wrapper؟ هذا عبارة عن متغير يوصلنا إلى
الملف يعني
زي كأنه حاجة مشبوكة في الملف تبعي يعني بمجرد ما
أكتب على المتغير هذا هو لحاله بروح .. اللي أنا
كتبته على المتغير بوديه وين؟ على ال file تبعي كلمة
wrapper إيش يعني بالإنجليزي؟ كلمة wrapper معناها
غلافكلمة wrapper الترجمة الحرفية لها معناها غلاف
تمام فكأنه هذا ال variable اللي نرجع عندي من
method open مش قولنا ال open بترجع متغير و كأنه
هذا ال variable عبارة عن حاجة هاي الملف تبعي تمام
و ال variable هو كأنه حاجة ايش حوالين الملف اسم ال
variable ايش سمناها احنا file عن طريق ال file انا
بعمل access لمين للملف
طيب نرجع هنا هاي جيبنا المتغير انا فتحته للكتابة
ابقى انا بدي اكتب عليه بقوله الان file dot dot
الان طلالي مجموعة من ال methods في عندى method
اسمها ممتعة البساطة اسمها write اشي write اكتب
this
is the first example
هو إحنا مادام نتعامل مع نص، نتعامل مع text، ممكن
نتعامل مع أي نوع من الملفات، لكن لو أتعاملت مع ملف
مثلا binary data، يعني إما هقرأ data مش هفهمها،
تمام؟ بتكون يعني encoded فيه، لكن إذا .. طبعا في
أنواع مثلا ملفات Excel، فيها مكتبات خاصة بالتعامل
معاها، مثلا، تمام؟الصور برضه لها تعامل خاص يعني
هناخد احنا graphical user interface كيف نقرأ الصور
و نعرضها تمام؟ هذي لها تعامل خاص الآن احنا مانعم
نتعامل مع data ال data عبارة عن إيش؟ يعني النصوص و
أرقام النصوص و أرقام بقدر أخزنها في text files
تمام؟ طب this is the first example هذه الجملة اللي
هيكتبها وين؟ في ال fileالان ممكن اجي في الآخر عشان
ينزل سطر جديد اعمل slash and تمام؟ و باجي الان
بقدر اقوله خلصت كتابة و انتهيت مانساش بروح لل file
و بقوله ايش close انه انهي عملية الكتابة هي عملية
الكتابة للملف جمالها بمنتهى البساطة تلت خطوات
الخطوة الأولى open right close
هل أجيت؟ هنشوف، هنجرب، تمام؟ تعالوا نعمل run، خلص،
كاميرا اتأكد هل جيت، هنروح على الملف تبعي، تمام،
فتحته، this is the first example،
باشي، صح، كان في كلام، وراح الكلام، تمام، بقوللي
هل جيت، هذه ال .. ال right بتشيل كل حاجة موجودة و
بتبدأ تكتب من أول و جديدصفحة بيضة يعني بتبدأ ..
بتبدأ تمام؟ بقول إذا أنت بدك تكمل على الموجود مش
هذا ال بدك وياه تمام؟ حط هنا A بس اه A اختصار ل
append append يعني خدناها append في ال list يعني
اضيف في الآخر تمام؟ هذه append معناها بيكمل على
محتوى الملف طب نجرب نشوف هيكمل ولا لأ كيف؟
هو فيه إمكانية نضيف في السطور الأولى بس الغالب أنه
نكمل في الأسفل حاليا احنا نشوف الأمثلة بسيطة بعدين
بنشوف كيف نضيف في الأول والآخر append معناها بتضيف
كمل على الملف هرجع بدل ما أقوله first exam اللي
بده أحط هنا أيش second المفروض هذا ينضف سطر جديد
الأولاني أيش اه يظله زي ما هو خلينا نسكر الملف لسه
ما طب ماعملناش run high runتمام خلص تعالى نفتح
الملف تمام هى ايش كتب ليه second example تمام سكر
هذا كمان هنا
third example هى كمان run تمام
هى و جاعد ايش بعمل بضيف على الملف
طيب، ممكن على فكرة نكتب أكتر من سطر جامع ما أسكر
الملف، يعني أنا هنا عملت write لجملة، صح؟ ممكن
أروح أعمل كمان write أنا
كأني كتبت كمان إيش؟ كمان جملة واحد بيقول، طب احنا
هنعمل write واحدة ولا أكتر من write؟هو انتبهوا
دلوقت كل عملية write بيرجع فيها للملف يعني مثلا
إذا أنا نفّذت ال write مئة مرة معناه بده يروح يفتح
يعني هو الملف مفتوح الملف مفتوح من هنا صح؟ بده
يروح يعمل عملية قراءة مئة مرة وهذا ممكن تكون بتاخد
وقت شوية لأن عملية القراءة معناه أروح حرك رأس ال
hard disk للملف و أكتب عليه صح؟ ممكن تكون بتبطئ
شويةفإذا أنا قدرت أفضل أن أعمل عملية write إيش مرة
واحدة أحيانا طبعا ماقدرش أعملها مرة واحدة مثلا
بتكون حجم ال data اللي بدك تكتبه massive، ضخمة جدا
عشرة جيجا بدك تكتب على الملف، تمام؟ لأ في الحالة
هذه بدنا نضطر نجزق و نعمل كل جزء في إيش؟ في عملية
writeفعلياً عملية ال write بيحطها في buffer و ال
buffer مكتوب على الملف يعني الأصل أنه كام صغير
يكون في عملية ال write يعني أنا ممكن أنفذ أكتر من
سطر تعالوا
نشوف الآن إيش هيعمل هي كمان runأكيد بيضل يضيف وين؟
يضيف تحت لحظة هنا لما قلت له احمد studies on IOG
وكتبتها مرة تانية حطها جنبها اه لأن انا ماحطيتش
slash ايش slash in عشان يعتبر ان هذا سطر سطر لحاله
طيب لما
اجي اكتب على الملف الأصل قبل ما اكتب كمان احنا لسه
الآن بنتناول عملية الكتابة ان افحص الملف موجود ولا
لأصح ولا يا جماعة يعني افرض انا حطيت الملف مثلا
TTTT بس مايكونش فيه ملف زيك عندنا اه وعملت run اه
لأ هذا هو بنشأه في الحالة هذه معقول
أنشأه؟ اه هي طيب
هذا على فكرة يا جماعة ال W و ال A بيحكيلي إنه
الملف لو ماكانش موجود أه بروح بنشه يعني هنا مثلا
لو جيت مثلا هذا أي ملف كتبته مافيش عندى ملف مثلا
بالاسم هذا مش هطلع إرار لحاله مالجاش الملف بروح
بنشه تمام؟ و بقعد يكتب عليه يعني حتى هنا مش
هيلزمني أن أفحص كمان إذا الملف موجود أه أو لأ
طيب هذا عملية الكتابة خرينا نشوف القراءة كيف نقرأ
من الملف هو بعمل open للملف و بحط هنا ايش بدل
write w بحط r و بعد بمنتهى البساطة بقول فايل dot
read ايش هي dot read اقرأ الملف بقرأ للملف كاملاو
برجعليها في متغير يعني
أنا النتيجة اللي رجعت من ال read حطيتها في متغير و
في الآخر بقوله file do to close و بطبع مين بطبع ال
text بس منتقل بساطة يعني لاحظوا القراه و الكتابة
سهل جداماذا يفرق القراءة على الكتابة الكتابة بحط W
هنا او A لو انا بدأ اضيفها الملف و بدل read بحط
إيش في الكتابة write و بعدين بعمل close في القراية
نفس الشيء تقريبا مع تغييرات بسيطة بدل W بحط R بدل
write بعمل read و النتيجة بترجع عندي وين في متغير
و بعدين بعمل close و بقبع النتيجة اللي قرأتها
قراية بقرأ الملفهنشوف ناخد أمثلة عملية، يعني مثلا
المدرس دخل علامات طلاب و سكر البرنامج، خلاص يعني
تعب يظلوا ساعة يدخل علامات خمسين طالب و أسماءهم و
راحوا بعدين؟ لأ، المفروض أنه إيش نعمل؟ كل البيانات
اللي دخلت عندي أحطها في ملف، إيجي بعدين المدرس بده
يرجع يقرأ علامات الطلاب تاني، بده يرجع يقرأهم من
وين؟ من الملفأحنا ناخد أمثلة عملية زي فى، بس احنا
في الأول ايش .. قلنا بنبين أهمية البرنامج، بعدين
بنبين الأساسيات كيف ببساطة شديدة نكتب جملة و نقرأ
جملة، بعدين بناخد أمثلة عملية هد
لأ، هد open معناه أفتح الملف، معناه أجاب لي
reference ع الملف، معناه أعمل لي wrapper حوالين
الملف، بس هي عملية ال open، open مابتقراش ولا
بتكتبطبعا كأنه فقط بس open عملنا reference بأشر
على الملف عن طريق ال file اللي .. اللي .. اللي رجع
عندي من method open بقدر أقرأ و أكتب القرأ قريت و
الكتاب قريت تعالوا نجرب هذا ال code طبعا إيش هذا
اللي طبع ليها هنا؟ شفتوا الخربيش اللي كتبناها قبل
شوي في الملف؟ أه هاي طبع ليها كله قرأ محتوى الملف
كاملا و طبع ليه
ماشي يا جماعة؟ طيب خلينا ننهي او نوقف عند الجزئية
هذه أنا عارف ازاي كتوا انتوا تمام؟ و المرة الجاية
بنكمل ان شاء الله