Programming Flashcards
(36 cards)
Programming
Languages:
1- Low-level:
✓ They are harder to read.
✓ They are closer to machine
code
✓ Difficult for beginners to
learn
2- High-level:
✓ use natural language in their
syntax
✓ making them easier to read
and write.
عندي نوعين من لغات البرمجة:
اول نوع هو الlow level
بيبقى صعب اننا نقراه لأنه اقرب ف كتابته ل لغة الكمبيوتر اللي هي لغة الصفر والواحد وبالتالي بيبقى صعب على المبتدئين انهم يتعلموه
تاني نوع هو الhigh level
دا اقرب ل لغة الانسان وسهل للمبتدئين وسهل في القراية، زي بايثون كدا
Python Variables:
✓ Variables are used to store information to be referenced and manipulated in a computer program.
✓ Their sole purpose is to label and store data in memory.
يعني ايه فاريابل؟ قاللي ببساطة دي حاجة بخزن جواها معلومات اقدر استخدمها بعد كدا او أعدل عليها
Naming Convention:
✓ Choose a name that represents what it holds
✓ A variable name must start with a letter or the underscore character
✓ A variable name cannot start with a number
✓ A variable name can only contain alpha-numeric characters and underscores (A-z, 0-9,
and _ )
✓ Variable names are case-sensitive (age, Age and AGE are three different variables)
وانا بسمي الفاريابل بتاعي لازم اخد بالي من كام نقطة
✓ لازم اسمي الفاريابل ب اسم يدل على الداتا اللي جواه يعني مثلا مسميهوش X لأني بعدين هنسى X دي معناها ايه
✓ بداية اسم الفاريابل لازم يبقى حرف او اندرسكور (_)
✓ اسم الفاريابل مينفعش يبدأ برقم
✓ الاسم مينفعش يبقى فيه حاجة غير الحروف والارقام والاندرسكور (اي حاجة تانية هتضرب ايرور)
✓ اسامي الفاريابلز بتختلف ب اختلاف الحرف كابيتال ولا سمول، يعني age و Age و AGE دول تلاتة فاريابلز مختلفين
Python data types:
✓ Numerals:
1-integer
2- float
3- complex numbers
✓ Dictionary
✓ Boolean
✓ Set
✓ Sequence
1- string
2- list
3- tuple
Numeric:
1- integers
2- complex numbers
3- float
عندي نوع من الداتا بيبقى ارقام، له 3 اشكال
اول شكل انه يبقى int يعني رقم صحيح عادي اذا كان نيجاتيف او بوستيف
تاني شكل انه رقم مركب يعني فيه حاجة مش مُعرفة
تالت شكل ال float هو اي رقم فيه علامة عشرية (ديسيمال) حتى لو بعد العلامة العشرية اصفار زي 3.0
Sequence:
1- string
2- list
3- tuple
تاني نوع من الداتا انه يكون داتا ليها تسلسل
اول شكل ليها انها تبقى str يعني تسلسل من الحروف ورا بعض زي حرف، كلمة، جملة او حتى مقال، بنكتبها بين علامة تنصيص مفردة او مزدوجة “ or ‘
تاني شكل هو ال list دا بيتكتب بين اقواس مربعة [] وبفصل بين كل عنصر والتاني ب فصلة ,
فايدة الليست اني اقدر اعدل عليها والترتيب فيها مهم
تالت شكل هو ال tuple نفس استخدام ال list تقريبا ولكن الفرق انه بيتكتب بين اقواس مدورة () و مقدرش اعدل فيه
Dictionary:
✓ Dictionaries are used to store data values in key:value pairs.
✓ A dictionary is a collection which is ordered*, changeable and do not allow
duplicates
Boolean:
نوع كمان من الداتا هو ال dict ودا بيبقى في curled brackets {}
جواه حاجتين وهما ال key (اسم الكاتيجوري) بعدها بنحط نقطتين فوق بعض ونكتب ال value اللي هو المعلومة اللي شايلها الkey
شبه
{‘name’:’ahmed’}
مزايا الdict انه مُرَتَّب وقابل للتغير (بقدر ازود keys او اعمل ابديت للفاليو اللي جوا key كان موجود اوريدي عندي) واهم نقطة انه مفهوش تكرار للkeys يعني مينفعش اكتب نفس ال key مرتين
بعدها نوع اسمه boolean دا نوع من البيانات عبارة عن true or false بس بنستخدمه ف الشروط عشان نشوف لو الشرط متحقق (true) او مش متحقق (false)
Operators:
✓ Arithmetic operator
✓ Relational operators
✓ Assignment operators
✓ Logical operators
✓ Membership operators
✓ Identity operators
✓ Bitwise operators
دي العمليات كلها اللي عندي بقدر فيها استخدم 2 variable واعمل مابينهم عملية معينة
Arithmetic Operator: operators that perform addition,
subtraction, multiplication, and division.
+ (Addition)
- (Subtraction)
* (Multiplication)
/ (Division)
// Floor division)
℅ (Modulus)
** (Exponentiation)
دي اول نوع من العمليات وهي العمليات الحسابية
+ الجمع
- الطرح
* الضرب
/ القسمة
// دي عملية بتطلعلي الرقم الصحيح من القسمة (يعني بتشيل الديسيمال وكل اللي بعده)
℅ دي عكس اللي فوقها، هي بتطلعلي الديسيمال بس للرقم بعد القسمة (بتشوف الكسور بس وبتفكس للرقم الصحيح، بنستخدمها كتير ف الفرق بين الارقام الفردية والزوجية عشان لو رقم زوجي اتقسم على اتنين المفروض ميكونش له ديسيمال والعكس صحيح)
** الباور
Weight of each operator:
Highest
()
**
/, //, %, *
+, -
Lowest
نخلي بالنا او لو في عملية حسابية هنعاملها معاملة الماث بتاعنا عادي بنحسب اللي بين الاقواس الاول وبعدين الباور وبعدين الضرب والقسمة وف الاخر خالص الطرح والجمع
Relational operators:
✓ Relational operators are also called comparison operators. It performs a comparison between two values.
✓ It returns a Boolean True or False depending upon the result of the comparison
Equal to (==)
Not equal to (!=)
Greater Than (>)
Less Than (<)
Greater Than or equal to (>=)
Less Than or equal to (<=)
تاني نوع من العمليات هي عمليات المقارنة او العلاقات، وهي وظيفتها تقارن بين حاجتين من نفس النوع (مينفعش اقارن بين str و int مثلا لازم احول الint ل str الاول)
دايما بترجع داتا نوعها boolean يعني ي اما true ي اما false حسب المقارنة بقى صحيحة ولا لا
Concatenating Strings
You can concatenate or combine strings using the “+” operator observing the spaces
لو عايزة اجمع بين كذا str بعمل كدا عن طريق اني احط بينهم + بس لازم اراعي ان لو حطيتهم زي ما هما مش هيبقى في مابينهم مسافة ف لو عايز مسافة ممكن ازودها ب ٣ طرق
✓ “hello” + “ “ + “world”
✓ “hello “ + “world”
✓ “hello” + “ world”
String length:
✓ To determine the length of a string, you can use the len()
function.
✓ It returns the number of characters in the string
اول فانكشن هناخدها ف بايثون هي string function بتساعدني اعرف طول الstr بتاعي
✓ بتعد من واحد عادي
✓ بتعد اي حاجة حرفيا على انها كاركتر يعني المسافة او رمز او اي حاجة بتتحسب
✓ بترجع داتا نوعها int لاني بسال على عدد الكاركترز ف هي بترجعلي عددهم
Print(Len(“hello world”))
11
String indexing:
✓ Indexing allows you to
access individual characters
in a string directly by using a
numeric value.
✓ String indexing is zerobased: the first character in
the string has index 0, the
next is 1, and so on
الاندكسنج مش هو الlen، عشان منتلغبطش الlen بتعد الطول كله، لكن الاندكس بتدور على حتة (الحتة دي ممكن تبقى كاركتر واحد او slice يعني اكتر من كاركتر)
✓ بدور على الكاركتر او الslice ب اني استخدم الاندكس بتاعهم (مكانهم ف السترينج متعلم ب رقم)
✓ بنبدأ نعد الأماكن من أول الزيرو، يعني اول كاركتر عندي دايما بيبقى الاندكس بتاعه زيرو
✓ بكتب الاندكس بين اقواس مربعة[] لازقة ف السترينج بتاعي
My_string=”hello”
Print(My_string[2])
l
(مش e عشان احنا بنعد من الزيرو)
String negative indexing:
✓ You can also use negative
indexing to access characters
from the end of the string.
✓ For example, -1
represents the last character, -2
represents the second
last character, and so on.
ببساطة زي ما بنعد من زيرو من بداية الstr، نقدر نعد من -1 من نهاية السترينج (مش هنقول من شمال ل يمين ولا يمين لشمال عشان بتفرق من لغة للتانية)
My_string=”hello”
Print(My_string[-1])
o
My_string=”أهلا”
Print(My_string[-2])
ل
String slicing:
✓ You can return a range of
characters by using the slice
syntax.
✓ It is done by specifying the
start and end indices of the
substring you want to extract.
✓ The start index is inclusive,
while the end index is exclusive.
من الاخر زي ما كنا بندور على كاركتر ف الاندكسنج، ممكن ندور على حتة كاملة اكتر من كاركتر (slice) برضو جوا نفس الاقواس المربعة [] بس بنحط نقطة بداية وبعدين نقطة نهاية
Mystring[start:stop]
✓ الاندكس اللي بيتكتب ف نقطة النهاية بيبقى exclusive يعني احنا بنقف اول ما نوصلله لكن مبناخدهوش معانا من ضمن ال slice
لو عايز ابدأ من الأول خالص بسيب الstart فاضي، ولو عايز اخد لحد النهاية (اخد اخر حرف معايا كمان) بسيب الstop فاضي
Slicing & Step:
✓ Start & end are index based on position in the sequence
✓ Step is optional, but it starts from 1 by default
✓ Step can be negative number
Sequence[start: end: step]
في parameter تالت بيتحط جوا البراكتس بتاعت الslice indexing وهو الstep، هو ف الطبيعي اصلا بيبقى موجود بس by default بيبقى 1
يعني
Sequence[start: end: 1] = Sequence[start: end]
يبقى الdefault للstep انه يبقى 1 (مش بنضطر نكتبه) طب يعني ايه؟ يعني الslice اللي هاخدها هبص عليها من البداية للنهاية
طب لو عايز ابدأ من النهاية؟ بكتب ف الstep انه يبقى -1
ازاي اقدر اقراه صح؟
اول حاجة بنعلم على الstart وبعدين نعلم على ال stop وبعدييين ف الاخر نبص على الstep، لو لقينا ال step ماشية صح في اتجاه from start to stop بحسب الاندكس للفاريابل واكتبه
طب لو لقيت ال step عكس الاتجاه اللي مكتوب بيه ال start to stop؟ يبقى الاجابة no value
print(my_text[2:5:-1])
هنا هبص ع الstart الاقيه رقم بوستيف وبعدها ال stop رقم بوستيف برضو بس بعده، يعني كدا الطبيعي ابقى ماشي من البداية للنهاية، بس مكتوبلي امشي العكس! يبقى no value
Slicing & step:
✓ steps can skip points
كدا احنا عرفنا ان ال default بيبقى 1 يعني من البداية للنهاية
وممكن نكتب -1 يعني من النهاية للبداية
في حاجة كمان اني اقدر اقولله يكتب حاجة ويسيب حاجة، ازاي؟
لو كتبت مثلا في الstep انه يبقى -2، طلاما نيجاتيف يبقى من النهاية للبداية، وكمان بقولله يبدأ يعد خطوة اتنين، وميكتبش غير الخطوة التانية بس
لو 3 يبقى طلاما بوستيف هتبقى من البداية للنهاية ويعد خطوة اتنين تلاتة ويكتب التالتة بس وهكذا
Functions:
✓ are named blocks of code that are designed to do specific job.
✓ A function is something you can call
✓ It can take input parameters optionally (the things you put in the parentheses), process those inputs in its body.
✓ Then performs an action and optionally returns a value
Importance of functions:
1- Maximizing code reuse
2- Minimizing code redundancy
3- Functions provide a tool for splitting systems into pieces that have welldefined roles.
4- Healthy maintenance
✓ يعني ايه فانكشن؟ دا اسم بيدل على block if code بيعمل وظيفة معينة
✓ الفانكشن دي حاجة انا بستدعيها (ليها اسلوبين هنعرفهم)
✓ ممكن تاخد parameter (الداتا اللي بتبقى بين الاقواسب بتاعت الفانكشن)
✓ بتعمل اكشن معين وممكن ترجع value (مش شرط، في فانكشنز بترجع value وفانكشن لا) يعني ليها return او ملهاش
طب ايه اهمية الفانكشنز؟
١- بتخليني اقدر اعيد استخدام الكود اكتر من مرة
٢- بتوفر عليا اني اكتب نفس الكود بالظبط كذا مرة (بتقلل ال redundancy)
٣- الفانكشن عبارة عن اداة بتقسم السيستم بتاعنا لقطع اصغر ليها قوانين معينة ودا بيسهل علينا الوصول لاي حاجة اسرع
٤- بقدر اصلح اي مشكلة بسهولة
Types of functions:
1. Built-in Functions: Python has several built-in functions like print(), len(), and type()
2. User-defined Functions: These are the functions created by users using the def keyword. They contain custom logic.
3. Methods: is a function that is associated with an object or class in object-oriented programming (OOP). Methods operate on data contained within the object and are used to define the behavior of the object.
عندي 3 انواع من الفانكشن
اول نوع هو الفانكشن المعتمدة على نفسها زي
print()
len()
type()
تاني نوع هو فانكشن المستخدم هو اللي بيخترعها ب انه يستخدم كلمة اسمها def (define) بتبقى معمولة على مزاجه عشان يعمل بيها وظيفة معينة
تالت نوع هو الmethod ودي بتبقى مرتبطة بالفاريابل ونوعه وبتقوم بوظيفة معينة
Function vs Method:
Association:
✓ A function is an independent block of code. It is not bound to any object and can be called directly.
✓ A method is a dependent, associated with an object (or
class). It is a function that is par of a class definition and operat
Calling:
✓ You call a function using its name
directly and passing the required arguments.
✓ You call a method using the instance (or class) to which it belongs, followed by a dot
(.), and then the method name with arguments.
اول حاجة الارتباط:
✓ الفانكشن مش مرتبطة بنوع داتا معين ( str, int, ..etc) هي مستقلة عادي وشغالة مع اي نوع
✓ الmethot معتمدة على نوع الداتا (هناخد الmethods لكل نوع داتا)
ازاي بنكتبها:
✓ الفانكشن بتتكتب ب اسمها عادي وبعدين بحط الفاريابل جوا الاقواس بتاعتها
print(variable)
✓ الmethod بتتنده باسم الفاريابل يعني بكتب اسم الفاريابل الاول وبعدين نقطة وبعدين الmethod اللي هستخدمها (حسب نوع الداتا اللي شايلها الفاريابل بتاعي)
variable.capitalize()
Parameters of functions:
✓ A parameter is the variable listed inside the parentheses () in the function.
✓ It is also termed as an argument.
✓ They represent the data that the function expects when it executes.
Example: x=’good morning’
len (x)
x is the parameter
✓Any kind of a function can have one or more parameters or no parameters at all.
✓ This depends on the code behind the function & the way it executes.
يعني ايه parameter؟
✓ دي الحاجة اللي موجودة جوا الاقواس بتاعت الفانكشن او الميثود
✓ بنسميها argument برضو
argument = parameter
✓ بتعبر عن الداتا اللي هنشتغل عليها ف الفانكشن بتاعتنا
✓ اي نوع من الفانكشن ممكن يبقى عنده parameter واحد او اكتر او ممكن يبقى معندهوش اصلا
✓ دا بيعتمد على هنستخدم الفانكشن ازاي ونوع الفانكشن برضو
parameters/ arguments can be:
A. Obligatory/ non-default parameter
✓ These are parameters that must be passed to a function when it is called.
✓ Otherwise, if the caller doesn’t provide these parameters, Python will raise a “TypeError”.
B. No parameter (parameterless functions)
✓ Means that the function does not accept any parameters.
✓ In other words, when calling those functions, they execute their block of code without needing any additional input.
C. Default parameter
✓ It resembles the obligatory parameter, meaning that a function is waiting for a parameter to perform.
✓ It only differs that this parameter has a default values that is given to a function when designing it.
✓ Such parameters are optional during a function call. If no argument is provided, the default value is used, and if an argument is provided, it will overwrite the default value.
D. Keyword parameter
✓ These are parameters that are passed explicitly using the name of the parameter first then the value.
Function_name(parameter_name=value)
✓ This allows you to pass arguments out of order or skip some default parameters.
اول نوع هو الاجباري
✓ دا معناه ان الداتا دي لااازم تتكتب بين الاقواس
✓ لو الاقواس اتسابت من غيرها هتعمل ايرور
تاني نوع لو مفيش باراميتر
✓ دا معناه ان الفانكشن مش بتقبل اصلا نكتب حاجة بين الاقواس بتاعتها
✓ من الاخر بتبقى فانكشن بسيطة مش عايزة معلومات كتير عشان تقوم بوظيفتها
تالت نوع لما الباراميتر يبقى default يعني متسستم على داتا معينة حتى لو مش مكتوبة
✓ بيبقوللي هو شبه الاجباري ف ان الفانكشن مش هتشتغل من غير المعلومة اللي هتتحط بين الاقواس
✓ بس الفرق ان لو احنا مكتبناش حاجة بين الاقواس ف الفانكشن فيها معلومة تلقائية متسستم عليها الكود
✓ هنا اني اكتب حاجة جوا الاقواس دي حاجة اختيارية اقدر اكتب (اغير الشيء الdefault) او اقدر اسيبها فاضية عادي وهو هيتعامل على اساس الdefault parameter اللي عنده ومش هيطلعلي ايرور ولا حاجة
اخر نوع هو الkeyword
✓ دا بيتكتب اسم الباراميتر الاول وبعدين = وبعدين الvalue
✓ بتبقى حاجات بتساعدنا اننا نسكيب الباراميتر نوعه default او نرتب ال output باسلوب معين
A. Obligatory Parameter
Example:
✓ len is a function designed to expect a parameter to perform. Hence len expects an obligatory parameter to start executing its built-in code & gets the length
دا مثال على الارجيومنت الاجباري
الفانكشن len كل لازمتها اني اعد طول str
لو انا مكتبتش بين اقواسها انا عايزة اعد ايه، هتعد الهوا؟ مش هتعد حاجة ف لازم اكتب
Len()
TypeError: len() takes exactly one argument (0 given)
len(‘hello’(
5