Googlefoolw.me سيو horror fiction Irish The idea Stories ahmedalaa Ahmedalaacanvip

as

الجمعة، 25 سبتمبر 2015

طرق التواصل مع الآخرين بنجاح..

كثيراً ما نسمع عن عبارات من قبيل: غزو الآخر... التأثير في الآخرين.... الذكاء الاجتماعي.... وهى كلها مرادفات لإمكانية التواصل بفعالية ونجاح مع الآخرين من أجل إقامة جسور الحوار والتفاهم معهم أو إقناعهم بفكرة جديدة، أو حتى تقديم أنفسنا لهم لو كنا نقابلهم للمرة الأولى.
ومن أجل هذا فهذا المقال يوضح أهم النقاط التي تساعد من اجل أن تتواصل بنجاح وتأثير مع الآخرين أو أن تغزوهم... ولكن بحب وذكاء.
ما هو الاتصال?
الاتصال هو التواصل مع الآخر أو بلغة أخرى هو البحث عن أرضية مشتركة بين طرفين أو شخصين، وإيجاد هذه الأرضية المشتركة هو هدف أي اتصال فعال وناجح يسير في الاتجاهين معاً من مرسل الرسالة أو المتحدث إلى مستقبل الرسالةوالعكس بأسلوب متفاعل ومتبادل وهو ما يعنى الأخذ والعطاء في نفس الوقت، وعدم الحديث طوال الوقت، والاعتقاد أن هذا اتصال ناجح وفعال مع الآخرين، في حين أن هذا غير صحيح لأنه اتصال من اتجاه واحد يفتقد التفاعل والمشاركة من الطرف الآخر.
وكي يتحقق هدف الاتصال الفعال والناجح وهو الإقناع وإيجاد أرضية مشتركة بين من تتواصل معه فهناك أربعة مراحل يمر بها الاتصال هي:  - الانتباه -  التحضير - الفهم - استيعاب الرسالة   - الرد - تأكيد الفهم   -التصرف- مرحلة التحدث أو رد الفعل .
وسوف يأتي تفصيل المراحل الأربع في السطور القادمة.

عناصر أساسية
وقبل تفصيل هذه الخطوات السابق الإشارة إليها يجب أن تعلم- عزيزي القارئ- أنك بحاجة إلى بعض العناصر الأساسية التي تمكنك من القيام بالاتصال الفعال والمؤثر من أجل الإقناع وهذه العناصر هي المعرفة النظرية ونعنى بها المعلومات والمعارف التي تساعدك على إتمام الاتصال الشخصي بنجاح وتأثير إيجابي كما تريد كأن تكون ملماً مثلاً بمراحل الاتصال الأربعة السابقة والتي سيلي تفصيلها فيما بعد، والعنصر الثاني الواجب توافره هو الخبرة العملية من خلال الممارسة الفعلية للاتصال ومراحله وطريقته الناجحة كما عرفت من خلال المعلوماتالنظرية، والعنصر الثالث هو الاستعداد المسبق بمعنى أن يكون لديك الرغبة المسبقة من أجل القيام باتصال فعال وناجح وأن يكون لديك الرغبة والإصرار على تعلم كيفية القيام بالخطوات المؤهلة لهذا بنجاح.
وعندما تتوافر لك هذه العناصر الثلاث يمكنك وقتها أن تتحول في كل علاقاتك الاجتماعية لشخص مؤثر في الآخرين ولديك قدرة كبيرة على ما يسمىغزو الآخر أو اقتحام الآخر لأن الاتصال الفعال والممتاز أصبح عادة لديك مما يسهل عليك الوصول للآخر بسلاسة.
أساطير خاطئة

قبل أن تبدأ الاتصال بالآخرين عليك أن تنتبه لوجود بعض المقولات الخاطئة الشائعة التي تقال حول علاقاتنا بالآخرين والاتصال الشخصي المباشر بهم، فما هي إلا أوهام في عقولنا وعلينا التخلص منها هي:

كلنا نعام كيف نتحدث وكيف نتكلم فطريا ً: فهذا غير صحيح فالحديث الناضج المؤثر في الآخرين له قواعد وأساسيات لابد من معرفتها وممارستها والتدرب عليها من أجل التواصل الناجح والمؤثر.

الاستماع هو ببساطة عبارة عن الجلوس في صمت وإنصات: لان الاستماع يعنى أن تنتبه بكل حواسك وليس بأذنيك فقط وان تلحظ ما يقوله الشخص بغير لسانه فهناك اتصال غير منطوق يقوم به الشخص من خلال طريقة الوقوف أو تعبيرات الوجه وكلها أنواع من الاتصال.

الأصم لا يسمع: وهذا خطأ كبير نقع فيه، فالشخص الأصم يكون لديه قدرة كبيرة على الاستماع من خلال حواسه الأخرى التي يقويها الله لديه من اجل أن يعوضه عن الاستماع بالأذن.

التحدث أهم من الاستماع: فكلنا أثناء أي حوار مع الآخرين غالباً ما نسعى إلى الحديث باستمرار متخيلين أن أهم شيء في الاتصال هو التحدث في حين أن هذا غير صحيح، فالإنصات الصحيح الواعي أهم من التحدث.
المرحلة الأولى: الانتباه

وهى شديدة الارتباط بالاستماع للآخر والانتباه لكل ما يقول بشكل مباشر ومن خلال لغة الحركة والجسد بشكل غير مباشر، ولهذا يجب الالتفات إلى العوائق المبدئية التي تتسبب في تشتيت الانتباه:

  - 
نحن أساساً لا نريد الاستماع: وهذا خطأ لأن أي شخص يسعى لمحادثة من يستمع له، فحين أترك لمن أمامي فرصة الحديث فهذا يعنى خطوة أولى ممتازة من أجل التأثير فيه.

  - 
التشويش الداخلي أو المداخلات الداخلية: بمعنى أن تفكر في مشكلاتك الشخصية وظروف حياتك أثناء الحديث مع الآخرين، وكي تنجح في تحقيق الانتباه الكامل في كل شئون حياتك ضع القاعدة التالية أمامك: أنت، وأنا، هنا والآن، أي لا تفكر سوى فيمن أمامك الآن وفى هذا المكان فقط كي لا يحدث أي تشويش على الحديث أو الرسالة التي تسير بينكما.

  - 
التشويش الخارجي أو المداخلات الخارجيةمثل ضوضاء مزعجة أو إضاءة غير مناسبة أو جو غير ملائم مما يؤثر سليباً على الاستماع أولا ًثم الفهم ثانياً، فحاول ترتيب ظروف اتصال مواتية تساعد على إتمام العملية الاتصالية بنجاح.

  - 
عدم وجود هدف من الاتصال من البداية : كأن تبدأ الحوار مع شخص وأنت لم تحدد الهدف من الحوار مما يثير حيرة لدى من تحادثه ويظل يسأل نفسه عن سبب الحديث من البداية، فلا تبدأ أي حديث بدون هدف واضح كي لا تكون مملاً فيحديثك أو تدعو لحيرة من تحادثه.
ما بين السطور
وهناك أمور لابد من الانتباه إليها أثناء الاستماع أو الانتباه للآخر وهى لغة الجسد فهي تعبر عنا وتوصل للآخرين معاني كثيرة عنا دون قصد وكلما سيطرت على حركات الجسد وتعبيراته أمكنك القيام باتصال فعال ف93% مما نقوله يصل الآخرين من خلال أسلوب الحديث وليس المضمون الذي يحتل 7% من تأثيرك على الآخرين، لذا اهتم كثيراً بالطريقة التي تقول بها الكلام وشكلك وتعبيرات وجهك أثناء الحديث، كأن تبدو مرفوع الرأس، مفرود الظهر، واثق من نفسك من خلال مشيتك، وطريقة وقوفك، واجعل حركة جسدك واتجاهه مواجهة لمن تحادثهلتعطى المعنى بالتفاعل والاهتمام لمن تحادثه، كما يجب عليك أن تتخلى عن حركاتالملامسة الذاتية للجسم مثل عقد الذراعين أن ملامسة الوجه، كما عليك أيضاً أنتستخدم عينيك جيداً من أجل التركيز مع من تحادثه مع عدم التركيز طوال الوقت في عين محادثك ولكن اترك20% من الوقت تنظر فيها على الجانبين، كما أن حركات الإيماء بالرأس لها تأثير مهم جداً لإعطاء من يحادثك الإحساس انك منتبه له تماماً وتحثه وتشجعه على مواصلة حديثه مما يجعل الحديث يسير بفعالية وايجابية.
المرحلة الثانية: الفهم
وهى تحتاج منك إلى تركيز شديد، وأول ما يعوق هذه المرحلة هو أن تكون انطباعات أو معارف مسبقة عما سيقوله الشخص الذي تحادثه، فلا تضع أي خلفيات مسبقة كي لا تشوش على ما تستقبله وقت الاتصال وأعط صفحة بيضاء تماماً لتفهم بتروٍ ما يريد الشخص أن يقوله ولا تطلق أحكاماً مسبقة، ولا تفهم ما تريد أنت فهمه، فهذا لا يفيدك بل يقلب الصورة التي تريد أن تفهمها من الآخر،وهنا نشير لأهمية أن تستمع لما لا تقوله الكلمات، بمعنى أن تنصت للأسلوب الذي يقول به الشخص كلامه فنعود بك لأهمية لغة الحركات فهي تدل على شعور الشخص أثناء حديثه، مما يساعدك على قراءة ما بين السطور وحقيقة إحساس الشخص وما يخفيه وكلها أشياء تساعدك علىقراءة الآخرين بمهارة، كما تساعدك على تكوين فكرة جيدة عمن تحادثه بدلاً من مجرد الاستماع للحقائق الصماء المجردة التي يقولها في حواره معك.
وأثناء قيامك بفهم ما يقوله الشخص لك لا تفكر أبداً في رد عليه فأنت فقط تستمع في هذه اللحظة فقد تجهز رداً في حين قد يؤدى بك الحديث إلى مسار آخر تماماً لم تحضر أنت له بسبب تعجلك في تجهيز رد أثناء مرحلة فهمك للحديث بل عليك أن تترو لأن الرد والتفاعل سيأتي دوره في اللحظة المناسبة بعد استيعابك الكامل لكلام محادثك.
المرحلة الثالثة: الرد
واجعل شعار هذه المرحلة اسمح بفترة من الصمت وفى هذه الثواني القليلة تقوم بعملية استرجاع لأهم ما قيل لك وتراجع أهم الملاحظات التي لقطها عقلك، وخلال هذه الثواني تعطى نفسك ومحدثك فترة راحة وجيزة جداً لمدة ثواني معدودة، ويمكنك القيام في هذه المرحلة قبل الرد مباشرة بعملية التأكيد النهائي على الفهم بمعنى أن تؤكد على محدثك أهم ما قاله كأن تقول:افهم من كلامك أن كذا وكذا.. ... يمكننا القول كذا وكذا......وعبارات على نفس هذا النهج، وهذا يعتبر ممهداً للحديث ورد الفعل من جانبك ولها أهمية كبيرة من حيث إفهام محادثك أنك كنت مستمعاً جيداً لكل ما قاله وبانتباه شديد كما أنها تساعدك على إعادة فهم ما قد التبس عليك فهمه أثناء الحديث.
ولكن عليك في هذه المرحلة أن تتفادى التشكيك بكل أشكاله فلا تنقل إحساسك بأنك تشك في كلام محادثك أبداً، ولا تستخدم كلمات توحي بعدم مصداقية ما قاله الآخر، لان هذا يضر بمصلحة التفاعل والتواصل بينكما ويشعر الآخر بالضيق وقد يعوق استقباله أي رسالة أو أي حوار موجه منك له.
المرحلة الرابعة: التصرف رد الفعل أو التحدث
وهى مرحلة التفاعل مع كل ما قيل لك وما سمعته وهناك صفات مميزة للمتحدث الرائع المؤثر في الآخرين نوضحها كالتالي:
  - 
الإشعاع بالحماس والطاقةبأن تكون على درجة عالية من الحماس والصدق أثناء حديثك وكأنك تستمتع بكل كلمة تقولها وهذا كأنك تقول أن الحياة مهتمة بك وانك تبادلها نفس الاهتمام، وأن تتحدث بصدق واهتمام.
الذكاء العاطفي

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

وبخصوص مضمون حديثك فهناك مفتاح سحري لشد انتباه الآخرين وإقناعهم بوجهة نظرك ويمكنك أن تتبع التالي:

تحدث عن الأهداف المشتركة: فمع تلخيصك للحوار الذي قاله محدثك يفضل أن تبدأ حديثك بتحديد الهدف المشترك بينكما أو نقطة الاتفاق الأساسية فى الحديث فحين تختلف بعدها معه في وجهة النظر أو تريد طرح وجهة نظرك أو إقناعه بشيء جديد يكون مستعداً في هذه الحالة لأنه يعرف أنكما متفقان على بعض النقاط التي بدأت بها حديثك معه.

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

الاستماع والنقد الذاتي: كأن تعتبر نفسك ممثلاً في مسرح ضخم وتريد أن يكون أداؤك أقرب إلى الكمال، وبالتالي ستسمع نفسك وتأثيرك على من أمامك كل ثانية وتطور من أسلوبك أو تعدله في التو واللحظة.
وبصفة عامة التأثير في الآخرين والاتصال الفعال معهم هو قدرة قابلة للتعلم وقابلة للنمو والتطور فحاول دائماً أن تتعلم شيئاً جديدً مؤثراُ وفعالاً من أجل غزو الآخر....واجعل دائماً رفيقتك الدائمة الابتسامة الودود لكل من تقابل وتحدث لان لها مفعولالسحر في التأثير على قلوب وعقول كل ما تحادثه.



منقول من الرابط التالى لتم الافاده :http://www.etawasol.org/articles.php?show_article=210

الخطوات الأولى للنّجاح

الخطوات الأولى للنّجاح

بعد على الاطلاع على محتويات المساق 

محاور النجاح الستة
توصلت الى 



التكرار افهم نفسك واجعل تحكمك الدخلي اكبر وان بامكانك ان تتغير وعليك ان تحاول اكثر وتعرف على الاسباب التى ادت بك الى الفشل وحدد اهداف صغير واجعلها اجابيه انتبه الى ما يقوله اليك الاخرين والسعى على اخذ المعلومات الاجابيه منهم انتبه الى قناعتك الشخصيه وكن واسق فى نفسك وتعلم من غيرك وتفائل وكن على ايمان بالله ولاتحزن على ما مضا وفات


Edraak​أسلوب osloop​#أدراك #أسلوب


الأربعاء، 23 سبتمبر 2015


  • اسلوب حياة - إيجابيات بسيطة تغير حياتك كلها - وشاركنا رأيك


  • الصفحة الرسمية لأسلوب Osloop

    الموقع الرسمي: http://www.osloop.com
    الصفحة الرسمية لصفحة الفايسبوك: https://www.facebook.com/osloop.life

  • #أسلوب

     

      مهارات التطور الشخصيه والمهنية مع Osloop

    هناك حا تبدا تتعلم من اشخاص استطاعوا فى وقت صغير ان يصنعو علامه تجاريه جيده  

    وحتبدا تعرف مهرات زى  القدره على التكيف مع احتيجاتك واحتيجات المواساسات  وازاى تبنى الهويه بتعتك وتحسين العلاقات مع الاخرين

    حلقات يوتيوب

     إزاي تكون إنسان إستثنائي وتساعد الناس  |   غير حياتك ب ٦ عادات للنجاح  | ٣ خطوات لإصلاح "يوم باين من أوله"

     

    وكلها استرتجيات للتحفيز بسيطه و  قيمتها كبيرا   




السبت، 15 أغسطس 2015

PC-Analyzer|ahmedalaacanvip

تحميل




توضيح pc analyzer


توضيح analyzer
اية اخباركم يا اخوتى فى الله
انا الصراحة معى جهاز 

 واسمة
pc analyzer
وبعد مجبتة انا كنت عارف ان معاة كتاب فية ارقام وكل رقم بمشكلة
بس عاوز اعرفكم هل الجهاز دة ينفع مع كل المزرات ولا لا
acer
ami
compaq
phenix
dell
phoenix
هنا مكتوب تحت كود الخطا وكل واحدة جنبها توضيح وكل دة بالانجلش 

require 'sinatra' | Ahmedalaacanvip


require 'sinatra'
get '/hi' do
end
"Hello World!"
cmd.exe  gem install sinatra

run cmd.exe C:\ruby hi.rb
== Sinatra has taken the stage ...
>> Listening on 127.0.0.1:4567

puts("helo word") | by AhmedAlaa canvip

puts("helo word")

puts "helo word"

print("helo word")

p ("turbo")
x=1

y = 9 ** 999

puts y

puts 3/2

puts 1.5 /2.6

puts 500.even?

puts 501.even?

puts 501.odd?



Python


page = """ <html>
<head>
<title>Fun Python Projects</title>
</head>

<body>
<style type="text/css">
BODY {font-family: Verdana, Arial, Helvetica, Geneva, SunSans-Regular, sans-serif ; background: white; color: black; }
</style>
<table width="100%" bgcolor="#ccf6f6">
<tr>
# -------------------------------------------------------#
# page contains the content of the source page of
#https://www.python.org/~jeremy/weblog/031029c.html

<td><small>
<a href="http://www.python.org/~jeremy/">
<strong>Jeremy Hylton</strong></a> :
<a href="http://www.python.org/~jeremy/weblog/index.html">
weblog</a> :
2003-10-29
</table>
<h1>Fun Python Projects</h1>python™
<p><strong>Wednesday, October 29, 2003,  3:39 p.m.</strong>
<p>"""
start_link = page.find('<a href=')

s = page.find('http://') 
n =page.find('">' , s) 
url = page [s:n] 
#print (start_link)
# ---------------------------------------------------------#
# نتيجة البرنامج لابد ان تكون http://www.python.org/~jeremy/
# The output of your running code must be "http://www.python.org/~jeremy/"
#لن يعمل الكود 
=============================
https://arabia.io/programming/92-دروس-بايثون-خفيفةمنقول من
مقدمة و تعريف بلغة البايثون.

البايثون لغة برمجة من لغات المستوى العالي تتميز ببساطة كتابتها وقرآءتها و سهلة التعلم، تستخدم أسلوب البرمجة الكائنية (OOP)، مفتوحة المصدر، و قابلة للتطوير. تعتبر لغة البايثون لغة تفسيرية متعددة الأغراض وتستخدم بشكل واسع في العديد من المجالات كبناء البرامج المستقلة بإستخدام الواجهات الرسومية المعروفة وفي عمل برامج الويب و بالإضافة إلى إستخدامها كلغة برمجة نصية للتحكم في أداء بعض من أشهر البرامج المعروفة أو في بناء برامج ملحقة لها. وبشكل عام يمكن إستخدام البايثون لبرمجة البرامج البسيطة للمبتدئين و لإنجاز المشاريع الضخمة كأي لغة برمجية أخرى في نفس الوقت. غالباً ما ينصح المبتدئين في ميدان البرمجة بتعلم هذه اللغة لأنها من بين أسرع اللغات البرمجية تعلما.

نشأت البايثون في مركز CWI (مركز العلوم والحاسب الآلي) بأمستردام على يد جويدو فان رزوم “Guido van Rossum” في أواخر الثمانينات من القرن المنصرم، و كان أول إعلان عنها في عام 1991. تم كتابة نواة اللغة بلغة C. أطلق فان رزوم إسم “بايثون” على لغته تعبيرا عن إعجابه بفرقة مسرحية هزلية شهيرة من بريطانيا كانت تطلق على نفسها إسم مونتي بايثون “Monty Python‏”.

تتميز البايثون بمجتمعها النشط، كما أن لها الكثير من المكتبات البرمجية ذات الأغراض الخاصة والتي برمجها أشخاص من مجتمع هذه اللغة، مثلاً مكتبة PyGame التي توفر مجموعه من الوظائف من أجل برمجة الألعاب. و يمكن لبايثون التعامل مع العديد من أنواع قواعد البيانات مثل MySQL و غيرها.
من يستخدم البايثون ؟

إذا قمنا بالبحث قليلا عن المواقع و البرامج و الألعاب التي تم برمجتها و تطويرها بهذه اللغة فسوف نجد كم هائل و منها محرك البحث الشهير قوقل “Google” فلقد تم إنشائه بهذه اللغة و لا يزال يتم تطويره بهذه اللغة حتى يومنا هذا, و هناك أيضا موقع الفيديوهات الشهير اليوتوب “YouTube” فهو أيضا يستخدم هذه اللغة و لا ننسى موقع الياهو “Yahoo” أيضا, و الكثير من المواقع الأخرى.. أما بالنسبة للبرامج فهناك البرنامج العملاق في تصميم الألعاب و الأفلام 3D و هو “Blender” فهو أيضا تم برمجته بهذه اللغة, و لرؤية المزيد من المواقع و البرامج و الألعاب على موسوعة ويكيبيديا الرابط:

http://en.wikipedia.org/wiki/List_of_Python_software
كيف يمكنني البدء

طبعا لغة البايثون ليست مختلفة عن جميع اللغات الأخرى في طريقة العمل بها فهي كأي لغة برمجة أخرى فإذا كنت تستخدم نظام الويندوز أو نظام الماك فسوف تحتاج إلى مفسر لكي تستطيع إستخدام هذه اللغة و متابعة هذه الدورة و يمكنك معرفة المزيد و تحميله من الموقع الرسمي لبايثون الرابط:

http://www.python.org/download

أما إذا كنت تستخدم نظام اللينكس فلا داعي إلى تحميل أي شيء فهي أساسا موجودة في النظام فالينكس نصفه مطور بهذه اللغة و سوف أشرح طريقة إستخدام المفسر الخاص به عن طريق الطرفية “Terminal” لاحقا, و لا تنسى أن هناك أيضا مفسرات بمميزات رائعة لنظام اللينكس.
كتابة أول برنامج خاص بك

لمستخدمين الويندوز و الماك بعد تنصيب و تهيئة كل شيء على النظام إفتح المفسر و من ثم أكتب فيه :
print "Hello world!"

و عند كتابة الشيفرة السابقة إضغط على زر الإدخال “Enter” و سوف يقوم المفسر بقرأة الشيفرة و تفسيرها و من ثم يعرض النتائج على نفس النافذة.

لمستخدمين اللينكس أولا قم بفتح أي محرر نصوص و أظن أفضلها محرر GEdit و إذا تستخدم توزيعة أبونتو “Ubuntu” فهو المحرر الإفتراضي لهذه التوزيعة و لا يحتاج إلى تنصيب و بالمناسبة هناك نسخة خاصة بالويندوز و الماك و سوف تجدها بالصفحة الخاصة به, و من ثم أكتب الشيفرة الماضية و إحفظ الملف بنوع .py و هذا مهم جدا أما بالنسبة للإسم فيمكنك تسميته كما تريد و لكن في الوقت الحالي من الأفضل أن تسميه “hello” يعني يصبح الإسم كاملا “hello.py” و أيضا من المستحسن أن تحفظه في المجلد الرئيسي “Home”, و بعد الحفظ قم بفتح الطرفية “Terminal” و أكتب :
python hello.py

الآن إضغط على زر الإدخال “Enter” و سوف يقوم بنفس عمل المفسر الخاص بالويندوز و الماك حيث أنه يفسر الشيفرة و من ثم يعرض النتائج في نفس النافذة.

و تهانيا لقد كتبت أول برنامج لك بواسطة لغة البايثون !
لغة البايثون: الدرس الثاني

سأقوم الأن بشرح أهم شيء في جميع لغات البرمجة و ليس البايثون فقط لأن كما نعرف فإن أغلب لغات البرمجة تعمل بنفس الطريقة و لكن هناك بعض الإختلافات فقط و لكن الذي يهمنا الآن هي المتغيرات و الثوابت, و أظن أن من الإسم تعتقد أنها صعبة و معقدة و لكن في الحقيقة لا يوجد أسهل منها من حيث التعامل و كتابتها و سوف تعرف كل هذا في ما بعد.
أولا ماهي المتغيرات ؟

ببساطة المتغيرات هي عبارة عن أسماء و حروف و أرقام تختارها أنت و تكون تحتوي على قيمة و لا يهم نوعها سوى كانت قيمة نصية (تحتوي على كلمة أو جملة) أو رقمية (تحتوي على أرقام).. و تسمح المتغيرات للمبرمجين بحجز مكان في ذاكرة الحاسوب و هذا لكي يتم تخزين القيم التي ذكرتها منذ قليل حيث أنها لا تأخد الكثير من الذاكرة بل بعض البيتات فقط, و المميز في لغة البايثون هو أنها لا تحتاج إلى تحديد نوع المتغيرات بل كل ما عليك فعله هو كتابة إسم للمتغير و من ثم إدخال قيمة فيه و سوف يتم كشفه تلقائيا! إذا كان متغير نصي أو رقمي أو إذا كان يحتوي على مصفوفة و إلخ…
و ما هي الثوابت ؟

عمل الثوابت هي نفس عمل المتغيرات و لكن هناك فرق بسيط جدا و هو لا يمكن تغيير قيمة الثابت يعني لكي أوضح أكثر, عندما تقوم بإنشاء متغير جديد و تضع فيه قيمة معينة و لنفرض أنها قيمة رقمية و هي الرقم 5 و عندما تقوم بتغيير القيمة في وقت لاحق إذا كنت تريد ذلك فكل ما عليك فعله هو كتابة إسم المتغير مجددا و من ثم القيمة الجديدة و بهذا تم تغيير القيمة و لهذا إسمها المتغيرات لأنك تستطيع تغيير قيمها و لكن الثوابت عكس تماما المتغيرات لأنك لو حاولت أن تكتب إسم المتغير مجددا و تغيير قيمته فلن تستطيع أن تقوم بذلك لأنه ثابت يعني إذا وضعت فيه أول قيمة فلن يتم تغييرها إلى الأبد, و لكن يجب أن تعرف بأن لغة البايثون لا تحتوي على الثوابت! نعم لأن الثوابت ليست بالشيء المهم أو الشيء الكبير بل هي مجرد متغيرات لا تقبل التغيير فقط.. و إذا إحترفت هذا المجال فسوف تفهم جيدا ماذا أعني و على العموم فإن لغة البايثون هي لغة سهلة التطوير كما ذكرت من قبل في الدرس الماضي فهي لغة مرنة و مفتوحة المصدر و لهذا هناك أكثر من طريقة لعمل الثوابت فيها :) فمثلا هناك آلاف الكلاسات التي تضيف لهذه اللغة خاصية الثوابت و إن شاء الله سوف نشرح كل هذا في دروس متقدمة في المستقبل.
أمثلة عن المتغيرات

كما ذكرت منذ قليل فإن المتغيرات في لغة البايثون لا يوجد أسهل منها فهي تكشف المتغيرات تلقائيا و لا تحتاج إلى تعريف لكي تعمل فإذا أردت أن تقوم بإنشاء متغير جديد أولا قم بإختيار إسم له و من الأفضل أن يكون إسم يتعلق بعمله لكي تستطيع أن تتعرف عليه في المستقبل, و من ثم ضع القيمة التي تريدها و لكن تذكر دائما أن لغة البايثون هي لغة ذكية و ليست عبقرية لأنك مثلا لو تريد جعل المتغير رقمي فأكتب أرقام فقط بدون علامات التنصيص مثال :
var = 100

و لو تقوم بكتابة الأرقام على الشكل التالي فسوف يكون المتغير نصي لأنه بين علامات التنصيص :
var = "100"

و طبعا هناك الكثير من الأنواع مثل النصوص و الأرقام العادية و الحقيقية و المصفوفات.. إلخ و إن شاء الله كل هذه سوف أشرحها خطوة خطوة حتى يفهم الجميع و إذا كان هناك أي أسئلة فأنا في الخدمة دائما.

و أترككم مع هذه الأمثلة
hello = "Hello world!" #إدخال قيمة نصية
 print hello #hello طباعة المتغير

النتيجة: Hello world!
a = 120 #a إدخال قيمة رقمية في المتغير
 print a #a طباعة المتغير

النتيجة: 120
x = 5 #x إدخال قيمة رقمية في المتغير
 y = 5 #y إدخال قيمة رقمية في المتغير
 print x+y #y و x طباعة نتيجة جمع المتغير

النتيجة: 10
a = 10 #a إدخال قيمة رقمية في المتغير
 x = 5 #x إدخال قيمة رقمية في المتغير
 y = 5 #y إدخال قيمة رقمية في المتغير
 print a+x*y #y و من ثم ضربه في المتغير x بالمتغير a طباعة نتيجة جمع المتغير

النتيجة: 35
لغة البايثون: الدرس الثالث

سنتكلم الآن عن كيفية التعامل مع النصوص في لغة البايثون و أشرح أيضا بعض الكلمات المهمة و التي سوف تحتاجها في المستقبل لكي تستطيع التحكم في النصوص كما تريد أنت لذلك إذا كنت لم تقرأ الدروس الماضية فالرجاء قم بقرأتها أولا و من ثم تابع هذا الدرس.

طبعا كلنا نعلم أن أي لغة برمجة تحتوي على خاصية عرض و التحكم في النصوص و أنا أتكلم عن تطبيقات Console و التي لا تحتوي على واجهة رسومية يعني لا تحتوي على أزرار و ألوان و أيقونات و إلخ.. حيث أن الطريقة الوحيدة لجعل هذه التطبيقات يعمل بها المستخدم هي إظهار و إدخال النصوص مثل Dos الخاصة بنظام الويندوز أو Terminal الخاصة باللينكس و غيرها من أنظمة أخرى, و طبعا بالنسبة للتطبيقات الأخرى (ذات الواجهة الرسومية) سوف نتكلم عنها في دروس قادمة بإذن الله لأنها صعبة نوعا ما و أحتاج إلى وضع دروس أخرى لكي يتم فهم الدروس المتقدمة لذلك كل شيء في وقته.

و كالعادة.. فلغة البايثون لا يوجد أسهل منها في التعامل و التحكم في النصوص حيث أنها تحتوي على الكثير من الدوال و الخاصيات التي تساعد المبرمج بفعل أي شيء يريده للنص فبمجرد كتابة كلمة واحدة يتم عمل كل شيء يعني لن يضطر المبرمج أو المطور إلى كتابة دالة أو كلاس جديد لعمل جميع هذه الأشياء بل كل ما عليه فعله هو كتابة كلمة أو حرف واحد و يدع البقية للغة البايثون :) و لنبدأ أولا مع كيفية إظهار النصوص :

بالنسبة لإظهار النصوص أظن أني وضعت من قبل كيف يتم ذلك و هو بكتابة كلمة بسيطة جدا و هي كلمة print و أظن من إسمها واضح عملها حيث عند كتابة هذه الكلمة تقوم بكتابة الشيء الذي تريد إظهاره مثل نص أو رقم أو متغير أو إلخ.. أنظر إلى المثال التالي
print "Hello world" #طباعة نص
 var = 'Hello' #إدخال قيمة في المتغير
 print var #طباعة متغير
 print 12511 #طباعة رقم

النتيجة:

Hello world

Hello

12511

لقد قمت بكتابة الكلمة و من ثم مساحة لأنها مهمة جدا و تذكر دائما عندما تكتب هذه الكلمة يجب عمل مساحة بينها و بين النص أو الرقم أو المتغير.. و بعدها النص الذي أريد إظهاره بين علامات التنصيص و لاحظ أنه يمكنك إستعمال أكثر من علامة تنصيص فهناك هذه “ و هناك هذه ‘ و كلاهما يقوم بنفس العمل.

الآن بعد ما عرفت كيف تقوم بإظهار النصوص و الأرقام و المتغيرات.. ألا تريد أن تعرف كيف تنسقها و تتحكم بها ؟ إذا كان الجواب نعم فتابع المثال التالي
print "Hello\nworld"

النتيجة:

Hello

world

أممم, أظن أنك لاحظت شيء جديد صح ؟ و هو رمز “\n” يا ترى ماذا يفعل هذا الرمز ؟ ببساطة عمله هو إنشاء سطر جديد في نافذة التطبيق يعني إذا كنت تريد كتابة نص كبير بعض الشيء أو تريد أن تنزل إلى سطر آخر إستخدم هذا الرمز مثل لغة ++C/C أو PHP تماما, و لكن يا ترى إذا كنا نريد أن نعرف كم هناك حرف أو كلمة أو رقم في نص معين بدل ما نقوم بعملها يدويا يعني مثلا كلمة “Hello” فيها خمسة حروف و لكن إذا نريد أن نعمل هذا بلغة البايثون كيف نفعل ذلك ؟ بسيطة جدا أنظر المثال التالي
print len("Hello")

النتيجة: 5

أظن واضحة و هي كلمة len حيث تقوم هذه الكلمة بحساب عدد الحروف في النص بالإضافة إلى المساحات أيضا و لكي تستخدمها أكتب إسمها أولا و من ثم إفتح قوس و أكتب النص أو المتغير الذي تريده و من ثم إغلق القوس.. و لكن إذا كنا نريد حساب حروف معينة فقط كيف نفعل ذلك ؟ يعني مثلا كلمة “Hello” هناك فيها إثنين “L” كيف نفعل ذلك برمجيا في لغة البايثون ؟ أيضا بسيطة جدا أنظر المثال التالي
 var = "Hello"
 print var.count("l")

النتيجة: 2

و كما هو واضح في المثال الماضي و هي الكلمة count حيث تقوم بحساب عدد الحروف التي يحددها المبرمج و لإستخدامها يجب عليك أولا إنشاء متغير جديد و يحتوي على النص المراد حساب حروفه و من ثم نكتب إسم المتغير و بعدها نقطة و من ثم إسم الكلمة و هو count و بعد ذلك نفتح قوس جديد و نكتب الحرف المراد حسابه في النص بين علامات التنصيص طبعا و أخيرا و ليس آخرا نغلق القوس, طيب الآن ماذا لو نريد أن نبحث أو نستبدل كلمة في النص يعني مثلا مثل في المفكرة الخاصة بالويندوز أو محررات النصوص بشكل عام كيف نفعل ذلك في البايثون ؟ كل ما عليك فعله هو إستبدال كلمة count الماضية بكلمة find أو replace ! أظن لا يوجد أسهل من هذه الكلمات ؟ أنظر المثال التالي
var = "saif blog is the best!"
print var.find("is")

النتيجة: 10
var = "saif blog is the best!"
print var.replace('blog', 'website')

النتيجة: saif website is the best!

في المثال السابق يوجد الكلمة find و الكلمة replace بالنسبة للأولى فهي لا تحتاج إلى تفسير يعني مثل الكلمة count تماما و لكن فقط هي تقوم بالبحث عن الكلمات و الحروف و الأرقام أو أي شيء آخر في النص و من ثم تعطي النتيجة و النتيجة سوف تكون إما سلبية أو إجابية فمثلا لو بحثت عن كلمة و تم إيجادها فسوف تعطيك رقم إيجابي يعني من 0 إلى إلخ.. و هذا الرقم سوف يكون مكانها في النص أما إذا لم يتم إيجاد الكلمة فسوف يكون الرقم سلبي مثل -1 و لاحظ جيدا علامة - و هذا يعني عدد سلبي, و بالنسبة لكلمة replace فهي تحتوي على قيمتين و القيمة الأولى هي الكلمة أو الحرف أو الرقم.. المراد البحث عنه و إستبدالها أما القيمة الثانية فهي الكلمة التي سوف توضع مكان الكلمة الأولى.

الآن نأتي إلى التقسيم أو التفرقة و أظن أن الجميع يعرف ما هي و لا تحتاج إلى مبرمج لكي تعرف ما هي فمثلا لو كنت تستخدم الأنترنت كثيرا فأكيد في بعض الأحياء تضطر إلى كتابة كلمات مفتاحية أو كما تدعى “Tags” و يجب أن تفرق بينها بعلامة الفاصلة أو مساحة أو شيء آخر.. و لكن الذي يهمنا الآن هو كيف نستعمل هذه الميزة في النصوص في لغة البايثون ؟ أنظر المثال التالي
var = "saif, blog, python"
print var.split(', ')

النتيجة: ['saif', 'blog', 'python']

نعم, يتم ذلك بإستعمال كلمة split و بنفس طريقة كلمة count أو find السابقة حيث تكتب إسم الكلمة بعد إسم المتغير و من ثم العلامة أو الرمز أو الحرف المراد إستعماله للتقسيم بين قوسين, و سوف تعطيك النتيجة على شكل مصفوفة و إن شاء الله سوف نشرح ما هي المصفوفات و كل شيء في دروس قادمة لذلك لا داعي للقلق :wink: و طبعا إذا أردنا أن نستخرج الكلمات من النص فسوف تكون الشيفرة على الشكل التالي
var = "saif, blog, python"
var = var.split(', ')
 for i in range(0, len(var)):
     print var[i]

النتيجة:

saif

blog

python

و أنا لن أفسد بعض الأشياء في الشيفرة الماضية لأني أحضر لها دروس في الأيام القادمة بإذن الله و لكن أظن الذي تريد معرفته اليوم واضح جيدا :) , و الآن نأتي إلى التحكم بالحروف و الكلمات فمثلا لو نريد أن نجعلها كبيرة يعني مثلا هكذا “HELLO” و هي في الحقيقة عكس ذلك كيف نفعل هذا بلغة البايثون ؟ أنظر المثال التالي
var = "olá mundo"
print var.upper()

النتيجة: OLA MUNDO

و هي الكلمة upper و هي لا تحتاج إلى قيمة بل فقط أكتب إسمها و جنبه القوسين و إنتهى 8) و بالمناسبة لقد إستعملت اللغة البرتغالية في الشيفرة الماضية لكي أغير قليلا :P .. و لكن لو نريد فعل العكس يعني من كلمات و حروف كبيرة إلى كلمات و حروف صغيرة كيف نفعل ذلك ؟ أنظر المثال التالي
var = "SAIF BLOG"
print var.lower()

النتيجة: saif blog

نعم.. الكلمة lower و هي تستعمل مثل الكلمة الماضية تماما و لكن فقط عملها مختلف, و أخيرا و ليس آخرا و لكي نجعل النص منسق و أفضل بكثير تلقائيا و بدون تدخل المبرمج يعني مثلا لو لدينا جملة مثل “hello world” و نريد أن نجعلها هكذا “Hello World” و لاحظ أن أول الحرف من كل كلمة كبير.. كيف نفعل ذلك ؟ أنظر المثال التالي
var = "hello world"
print var.title()

النتيجة: Hello World

و بهذا أكون قد ذكرت أغلب الكلمات و الدوال التي سوف تحتاجها في المستقبل و التي سوف تختصر عليك الكثير من الجهد و العمل فمثلا لو نريد عمل كل هذا في لغة أخرى مثل ++C/C فسوف نضطر إلى عمل كلاس أو دالة تحتوي على مئات الأسطر و هذا يظهر سهولة لغة البايثون و قوتها و سهولة التعامل معها.
لغة البايثون: الدرس الرابع

الدرس الرابع سوف يكون بسيط و سهل الفهم و لكن لا ننسى أنه مهم جدا و إذا ركزت جيدا إن شاء الله سوف يتضح لك كل شيء و هو عن كيفية قرأة إدخالات المستخدم ! و للتوضيح أكثر تابع معي.

إذا كنت مثلا تنوي برمجة تطبيق بسيط يقوم بإظهار كلمة أو رسالة يتم كتابتها من طرف المستخدم يعني ليس أنت بل المستخدم يقوم بكتابة شيء و عند الضغط على زر الإدخال (Enter) يقوم التطبيق بإظهار هذه الرسالة كيف تفعل ذلك ؟ أظن لو أنك تابعت الدروس الماضية سوف تقول أنه يمكنني أن أظهر الرسائل و هو أمر بسيط جدا و يتم ذلك عن طريق كلمة “print” و لكن لا أعرف كيف أظهر ما يكتبه المستخدم ؟ و هنا تأتي أهمية درس اليوم حيث سوف أشرح كيف يتم عمل ذلك بكل سهولة, أولا سنجرب عمل متغير جديد و ندخل فيه قيمة معينة و لنفرض أن هذه القيمة هي نصية و تحديدا هي “Hello world”.. حتى الآن كل شيء واضح و من ثم نقوم بإظهار قيمة هذا المتغير بكلمة “print” و لنرى ماذا يحدث ؟!
var = "Hello world"
print var

النتيجة: Hello world

أممم.. لا شيء جديد صح ؟ فعلا, لأن المفسر أولا يقوم بإنشاء متغير جديد و يدخل فيه القيمة النصية التي كتبناها و من ثم يكشف نوعه عن طريق هذه القيمة و بعدها يقوم بعرضه و لكن لحظة فقط ! لنجرب الشيفرة التالية و لنرى ماذا يحدث
var = raw_input("Enter something: ")
print var

النتيجة:

Enter something: Hello

Hello

هل لاحظت شيء جديد ؟ أكيد و هي كلمة raw_input و هي عبارة عن كلمة تقوم بعرض نص يحدده المبرمج و من ثم ترجع له قيمة معينة فمثلا لو تريد أن تطلب من المستخدم أن يكتب شيء ما مثل ما نريد نحن الآن فعله فقم بإستعمال هذه الكلمة و لكن هناك شيء مهم جدا يجب أن تعرفه و هو هناك نوعان من هذه الكلمة فهناك الأولى و التي شرحتها الآن و هناك كلمة “input” يعني بدون كلمة “raw”, و الفرق بينهما هو أن الأولى نصية و الثانية رقمية فمثلا لو تريد جمع أعداد يختارها المستخدم كيف تفعل ذلك ؟ لاحظ هذه الشيفرة
a = input("Number one: ")
b = input("Number two: ")
print "Result: ", a+b

النتيجة:

Number one: 1

Number two: 1

Result: 2

و لكن لو نستبدل كلمة input بكلمة raw_input ماذا يحصل ؟ لو تجرب ذلك سوف يقوم المفسر بكتابة الأرقام جنب بعضها يعني مثلا لو جمعت رقم 5 برقم 8 فسوف تكون النتيجة 58 أما إذا غيرت رمز الجمع + إلى رمز آخر مثل الطرح - فسوف يكون هناك أخطاء برمجية, و بهذه الكلمات يمكنك معرفة كل ما يريده المستخدم من التطبيق :) يعني بإختصار مثل Dos الخاصة بالويندوز أو مثل Terminal الخاصة بنظام اللينكس و الماك.. فعند كتابة أمر يتم قرأة و تنفيذ ذلك الأمر.
لغة البايثون: الدرس الخامس

الدرس الخامس هو مهم جدا و يعنبر درس أساسي يعني يجب أن تقرأه جيدا و تفهمه و إذا لم تفعل ذلك فلا تتوقع أن تتعلم البرمجة بشكل عام لأن درس اليوم يتكلم عن جملة الشرط “if” و هي توجد في جميع اللغات الأخرى حتى في لغات الويب و لا توجد أي لغة برمجة إلا و هي تحتوي على هذه الجملة لأنها ببساطة لها دور أساسي في البرمجة و من دونها سوف يكون هناك مشاكل كثيرة و إن شاء الله سنعرف مميزات و أهمية هذه الجملة.

أولا و قبل كل شيء لنفرض أنك تقوم ببرمجة تطبيق بسيط يقوم بقرأة الأوامر يعني بإختصار مثل عمل Dos و Terminal و غيرها من تطبيقات أخرى.. و هذا الشيء لقد سبق و شرحته في الدرس الماضي (الرابع) و لقد شرحت فيه كيفية قرأة إدخالات المستخدم و لكن الذي لم أشرحه هو كيفية التفرقة بين الإدخلات أو التعرف عليها فمثلا لو تريد أن تعرف إذا كان عدد معين أكبر من عدد آخر أو تريد أن تعرف إذا كانت كلمة معينة مشابهة لكلمة أخرى أو العكس يعني بالعربي تقوم بالشرط على البايثون و إذا تحقق هذا الشرط تخبر البايثون بفعل شيء و إذا لم يتحقق أيضا تخبر البايثون بفعل شيء آخر, أنظر إلى المثال التالي
cmd = raw_input('Enter your command: ')
print "Hello world!"

أظن المثال السابق واضح جيدا بالنسبة لك إذا كنت قد تابعت الدروس الماضية صح ؟ و هو يقوم بإخبار المستخدم بكتابة أمر ما و عند كتابة هذا الأمر يتم الضغط على زر الإدخال “Enter” و من ثم تقوم البايثون بعرض جملة “Hello world!” و لكن ألم تلاحظ أن البايثون لا تهتم بالأمر الذي كتبه المستخدم ؟ يعني في كل الحالات تقوم بإظهار الجملة الماضية و لا تفرق بين الأوامر التي يكتبها المستخدم !, و الآن لنجرب إضافة جملة شرط و نلاحظ النتيجة
cmd = raw_input('Enter your command: ')
if cmd == "print":
    print "Hello world!"
else:
    print "Unknown command ?"

أممم.. أظن الآن أصبحت البايثون تفرق بين الأوامر فلو تجرب كتابة كلمة “print” فسوف تقوم بإظهار لك الجملة الماضية أما إذا كتبت كلمة أخرى فسوف تخبرك بأن الأمر الذي قمت بإدخاله غير معروف و هذا الذي أحاول أن أوضحه حيث جملة الشرط “if” تقوم بالشرط على البايثون و لو تلاحظ في الشيفرة الماضية ستجد أننا قمنا بعمل متغير جديد بإسم cmd و جعلنا قيمته عبارة عن إدخالات و من ثم في السطر الثاني عملنا جملة شرط بكتابة كلمة if و الشرط هو إذا كان المتغير السابق و الذي إسمه cmd يحتوي على القيمة “print” فإذا أنزل إلى السطر التالي و قم بإظهار جملة “Hello world!” أو إذا كان يحتوي على شيء آخر فإذهب إلى السطر الخامس و الأخير و قم بتنفيذه, أظن الشيفرة بدءت تتضح الآن ؟ و يجب أن تعرف بأن جملة الشرط تحتوي على أكثر من كلمة و هي :
if : و هي التي دائما تبدأ بها إذا كنت تريد عمل جملة شرط جديدة.
else : و هي تستعمل في حالة إذا لم يتحقق الشرط و يمكنك التخلي عنها إذا كنت لا تريد عمل شيء عند عدم تحقق الشرط فهي كلمة إختيارية.
elif : و هي لعمل أكثر من شرط و لكن تذكر أنك لا تستطيع أن تبدأ بها فهي تتبع دائما الكلمة if و بالإضافة إلى أنها أيضا كلمة إختيارية مثل السابقة.
or : و هي كلمة إختيارية أيضا و يمكنك إستعمالها إذا كنت تريد أن تضع أكثر من خيار أو إحتمال واحد.
and : و أظن من الإسم واضح عملها فهي تسمح للمبرمج بوضع أكثر من إحتمال و يجب أن يكون مطابق تماما للشرط و هي كلمة إختيارية أيضا.

كما يمكنك إستعمال الرموز مثل أصغر من < أو أكبر من > و غيرها.. و لكن تذكر أنه عندما تستعمل علامة المساواة يجب أن تكررها مثل في المثال السابق لأن في جمل الشرط يجب أن يكون هناك إثنان من = جنب بعضهما البعض.

أمثلة :
cmd = raw_input('Enter your command: ')
if cmd == "print":
    print "Hello world!"



cmd = raw_input('Enter your command: ')
if cmd == "print" or cmd == "show":
    print "Hello world!"
else:
    print "Unknown command ?"



cmd_1 = raw_input('Enter your command 1: ')
cmd_2 = raw_input('Enter your command 2: ')
if cmd_1 == "print" and cmd_2 == "show":
    print "Hello world!"
else:
    print "Unknown command ?"



cmd = raw_input('Enter your command: ')
if cmd == "print":
    print "command: Print"
elif cmd == "show":
    print "command: Show"
else:
    print "Unknown command ?"



num = input("Please enter a number: ")
if num > 10:
    print "Your number is bigger than 10!"
elif num < 10:
    print "Your number is smaller than 10!"
else:
    print "Please enter a number first!"
لغة البايثون: الدرس السادس

سنتكلم عن الحلقات التكرارية أو كما تدعى باللغة الإنجليزية “Loop” و أنا وصفتها بالمهمة لأن هذه الميزة توجد في جميع اللغات الأخرى بدون إستثناء حتى في لغات الويب و من دونها سوف يكون هناك مشاكل حقيقية في لغات البرمجة لأنها تلعب دور أساسي في البرمجة فمثلا لو نريد تنفيذ عمل واحد أكثر من مرة أو نريد التحقق من شيء ما بدون توقف حتى يتحقق ذلك الشيء أو نريد نشرط على لغة البرمجة شيء و عند عدم تحقق هذا الشرط نفعل شيء بدون توقف و إذا تحقق هذا الشرط نوقف العمل و غيرها من أشياء أخرى.. كيف نفعل ذلك ؟

أولا دعونا نبدأ بمثال بسيط و واضح كالعادة و هذا هو :
print "Hello world"
print "Hello world"
print "Hello world"
print "Hello world"
print "Hello world"

أممم.. أظن أنك لو متابع لهذه الدورة جيدا سوف تفهم الشيفرة الماضية ماذا تفعل و هي تقوم بطباعة جملة “Hello world” خمس مرات و لكن إذا كنت تريد مثلا طباعة هذه الجملة مئة مرة ! كيف تفعل ذلك ؟ أظن أنك سوف تحاول كتابة الشيفرة الماضية سطر سطر مئة مرة صح ؟ إذا كنت تفكر في ذلك فإعلم أنها سوف تأخذ منك وقت طويل جدا و يمكن لهذا الوقت تستغله في برمجة أشياء أخرى في تطبيقك و بالإضافة إلى أنها سوف تجعل التطبيق ثقيل العمل و كبير الحجم ! إذا ما هو الحل ؟ لاحظ الشيفرة التالية و تعجب :wink:
for i in range(1, 101):
    print "Hello world"

نعم صدق أو لا.. يمكنك طباعة مئة جملة بواسطة سطرين :) و إذا أردت المزيد يمكنك ذلك حتى إذا كان العدد مليون أو أكثر ! و هنا تتضح أهمية حلقات التكرار فلقد سهلت علينا الكثير من الأمور و منها المشكلة السابقة, و الآن لنشرح الشيفرة الماضية :

أولا بدأنا بكلمة for و هي أحد كلمات حلقات التكرار و هناك أكثر من كلمة و هما for و while و سوف أشرح الكلمة الثانية في ما بعد و تذكر أن هذه الكلمات موجودة في جميع لغات البرمجة حتى لغات الويب لأنها كما قلت منذ قليل مهمة جدا في البرمجة, و بعدها هناك حرف i و هو المتغير الذي سوف تقوم عملية التكرار تخزين فيه عدد عمليات التكرار التي قامت بها الحلقة لأن في كل مرة تنتهي من فعل شيء تقوم بإضافة رقم واحد إلى الرقم القديم فمثلا إذا المتغير يحتوي على الرقم 5 فسوف تضيف له رقم واحد و يصبح 6 و هكذا حتى تصل إلى الرقم النهائي و الذي أنت تحدده في كلمة range حيث تكتب هذه الكلمة و من ثم تفتح قوسين و تكتب بينهما من أين تبدأ الحلقة و أين تنتهي مثل ما في الشيفرة الماضية و من ثم تكتب النقاط : لكي تقوم البايثون بكشف شيفرة الحلقة و التي هي عبارة عن كلمة print و القيمة التي سوف تطبعها على الشاشة, و بالنسبة لكلمة in فهي تساعد البايثون على كشف العدد الذي سوف يكون الحد الأقصى للحلقة.

و للتوضيح أكثر جرب إضافة المتغير i إلى جنب القيمة النصية مثل ما في الشيفرة التالية :
for i in range(1, 101):
    print "Hello world", i

الآن إذا قمت بتشغيلها فسوف تطبع لك الجملة مع رقم عملية التكرار, و تذكر أنك تستطيع تغيير إسم المتغير i إلى إسم آخر تريده أنت و أيضا تستطيع إستعمال الحلقة for في أشياء أخرى فمثلا إذا كانت لديك مصفوفة يمكنك طباعة جميع قيمها, أنظر المثال التالي :
li = ["Hello", 1, 52, "Hi"]
for i in li:
    print i

و هكذا.. و إن شاء الله في المستقبل سوف تفهم أكثر ماذا أعني و كيفية التعامل مع حلقات التكرار.

نرجع لحلقة التكرار while و أظن أنها سوف تكون أسهل من الأولى و لكنها تحتاج تركيز فقط :idea: و تعتمد هذه الكلمة على الشرط فمثلا أنت تريد أن تشرط على البايثون شيء ما و إذا لم يتحقق هذا الشرط تفعل شيء مرارا و تكرارا حتى يتحقق هذا الشرط و من ثم تتوقف و هذا هو عمل كلمة while حيث أنها تعتمد على الشرط يعني مثل جملة الشرط if و لكنها تحتوي على حلقة تكرار ! أنظر إلى المثال التالي :
i = 0
while i < 10:
    print "Hello world"

الآن لو تجرب الشيفرة الماضية سوف تقوم البايثون بإعادة طباعة الجملة في كل مرة بدون توقف و لكن يا ترى لماذا ؟ ببساطة لأن حلقة التكرار تقارن قيمة المتغير i بالرقم 10 و إذا كان أصغر منه تقوم بطباعة الجملة و هكذا.. و لكن كيف نجعلها تتوقف يعني نعطيها عدد تتوقف عنده ؟ أولا لنرجع قليلا لحلقة التكرار for و نرى كيفية عملها و أنا ذكرت منذ قليل أن هذه الحلقة تقوم بتخزين عدد عمليات التكرار و تضيف عدد في كل مرة تقوم فيها بعملية تكرار و هذا صحيح و لكن بشكل خفي أما حلقة while فهي عبارة عن جملة شرط عادية و لكن تحتوي على حلقة تكرار مثل ما ذكرت منذ قليل و لجعلها تحتوي على الميزة التي تحتوي عليها حلقة for يجب أن نخزن عدد مرات التكرار و نقارنها بالعدد الذي سوف تتوقف عنده, و الشيفرة سوف تكون على الشكل التالي :
i = 0
while i < 10:
    print "Hello world"
    i += 1

نعم, كما هو واضح لقد أضفت علامة زائد (+) قبل علامة المساواة (=) و هذا لكي يتم إضافة رقم واحد في كل عملية تكرار و بالمناسبة يجب أن تعرف أن في أغلب لغات البرمجة و منها البايثون أيضا هناك إختصار فمثلا بدل ما تكتب هذه الشيفرة :
i = i + 1

يمكنك كتابة هذه الشيفرة :
i += 1

و مع تغيير علامة الزائد (+) يعني لو مثلا تريد إنقاص عدد أكتب (-), و بهذا أكون قد شرحت كل ما أتذكره الآن عن حلقات التكرار الخاصة بالبايثون.
لغة البايثون: الدرس السابع

الآن سوف أشرح ما هي المصفوفات أو كما تدعى باللغة الإنجليزية في البرمجة “Array” أو “Matrix” و أظن أنك تعرف جيدا الكلمة الثانية لأنها عنوان فلم مشهور جدا 8) .. و المصفوفة هي عبارة عن متغير يحتوي على أكثر من قيمة واحدة و لو تلاحظ جيدا في الدروس الماضية و خصوصا في الدرس السادس و الماضي سوف تجد بعض الشيفرات التي تحتوي على مصفوفة و لكني لم أشرحها لأنها تحتاج درس كامل و اليوم سوف أفعل ذلك إن شاء الله.

و المصفوفات هي أيضا موجودة في جميع لغات البرمجة حتى في لغات الويب لأنها مهمة جدا و تساعد المبرمج على فعل أشياء كثيرة و تختصر عليه الكثير من الوقت و الجهد, و هي كما ذكرت منذ قليل عبارة عن متغير يحتوي على أكثر من قيمة ماذا يعني ذلك ؟ بإختصار يعني عبارة عن قائمة تحتوي على نصوص و أرقام.. و للتوضيح أكثر أنظر إلى الصورة التالية :

http://www.mediafire.com/view/w3es9fa6kfrkrf3/array.png

و يجب أن تعرف بأن المصفوفات في لغة البايثون سهلة جدا سواء عند إنشائها أو التعامل معها و كما ذكرت في دروس ماضية بأن لغة البايثون تتعرف على المتغيرات تلقائيا بواسطة قيمها و نفس الشيء مع المصفوفات حيث أنك تستطيع وضع أي قيمة تريدها مثل نصوص, أرقام, رموز.. إلخ و سوف تقوم البايثون بكشف جميع هذه القيم تلقائيا, أنظر إلى المثال التالي :
array = ["Hello", 122, "Saif", 552]

نعم.. سهلة جدا :) حيث أنك تختر إسم للمصفوفة و من ثم تضع جنبها علامة المساواة (=) كما في المتغيرات تماما و لكن في المصفوفات يجب عليك وضع جميع القيم بين [] و تفصل كل قيمة بفاصلة.

طيب الآن نعرف كيف نقوم بإنشاء المصفوفات و لكن يا ترى كيف نتعامل معها و نستدعي القيم التي تحتوي عليها ؟ ببساطة عندما تقوم أنت بإنشاء مصفوفة جديدة تقوم البايثون بإعطاء كل قيمة من القيم التي تحتوي عليها هذه المصفوفة رقم و يكون هذا الرقم هو رقم ترتيبها في المصفوفة و دائما الترتيب يكون من الصفر لذلك مثلا لو المصوفة تحتوي على ثلاثة قيم فالقيمة الأولى هي 0 و القيمة الثانية هي 1 و الثالثة هي 2 و بهذا تستطيع تعرف كل أرقام القيم و مكانها و عندما تريد معرفة أحد محتوى القيم كل ما عليك فعله هو كتابة إسم المصفوفة و وضع رقم القيمة بين [] جنب إسم المصفوفة, أنظر المثال التالي :
array = ["Hello", 122, "Saif", 552]
print array[2]

النتيجة :

Saif

فقط ! الآن تستطيع أن تقول أنك تعرف كيف تتعامل مع المصفوفات في البايثون :D , طيب الآن لدي تطبيق لمتابعين هذه الدورة :idea: و هذا لكي تعرف إذا كنت حقا قد إستفدت من الدروس الماضية أو لا

أريد منك أن تصنع برنامج بسيط يحتوي على مصفوفة و يقوم بطباعة جميع قيمها تلقائيا يعني أولا يقوم بكشف كم قيمة تحتوي عليها هذه المصفوفة و من ثم يطبع محتوى جميع القيم :dizzy:

شارك النقاش مع الآخرين

Twitter Delicious Facebook Digg Stumbleupon Favorites More