Regular Expressions
التعابير النمطية (Regular Expressions - RegEx) عبارة عن مجموعة من الرموز والأحرف مكتوبة بنمط معين وبترتيب معين (Pattern)، تُستخدم في التعامل مع النصوص. يمكن استخدامها في عمليات البحث عن نماذج محددة في النص، التحقق من شروط معينة في النص، واستخراج المعلومات من النص بسهولة دون الاعتماد على خوارزميات معقدة.
يعد التعبير العادي، أو #regex أو #regexp باختصار، قويًا للغاية ومدهشًا في البحث عن السلاسل النصية ومعالجتها، خاصة في معالجة الملفات النصية. يمكن لسطر واحد من التعبير العادي أن يحل محل عشرات الأسطر من أكواد البرمجة بسهولة.
يتم دعم Regex بجميع لغات البرمجة النصية (مثل #Perl و #Python و #PHP و #JavaScript)؛ بالإضافة إلى لغات البرمجة للأغراض العامة(غرضية التوجه) مثل #Java؛ وحتى معالجات النصوص مثل برنامج ال Word للبحث في النصوص. قد لا يكون البدء في استخدام regex أمرًا سهلاً نظرًا لتركيبه العبقري غريب الأطوار، ولكنه بالتأكيد يستحق استثمار وقتك.
التعابير النمطية (Regular Expressions - RegEx) عبارة عن مجموعة من الرموز والأحرف مكتوبة بنمط معين وبترتيب معين (Pattern)، تُستخدم في التعامل مع النصوص. يمكن استخدامها في عمليات البحث عن نماذج محددة في النص، التحقق من شروط معينة في النص، واستخراج المعلومات من النص بسهولة دون الاعتماد على خوارزميات معقدة.
يعد التعبير العادي، أو #regex أو #regexp باختصار، قويًا للغاية ومدهشًا في البحث عن السلاسل النصية ومعالجتها، خاصة في معالجة الملفات النصية. يمكن لسطر واحد من التعبير العادي أن يحل محل عشرات الأسطر من أكواد البرمجة بسهولة.
يتم دعم Regex بجميع لغات البرمجة النصية (مثل #Perl و #Python و #PHP و #JavaScript)؛ بالإضافة إلى لغات البرمجة للأغراض العامة(غرضية التوجه) مثل #Java؛ وحتى معالجات النصوص مثل برنامج ال Word للبحث في النصوص. قد لا يكون البدء في استخدام regex أمرًا سهلاً نظرًا لتركيبه العبقري غريب الأطوار، ولكنه بالتأكيد يستحق استثمار وقتك.
🔰Examples :
python example in terminal🔴🐍 :
js example✅ :
🔰 Articles:
- Regular expressions - MDN
https://developer.mozilla.org/.../Guide/Regular_expressions
- A Step-by-Step Guide for Learning Regular Expressions: A Guide with Real-Life Usage
https://blogs.princegupta.me/a-step-by-step-guide-for...
- Regular Expressions Info
https://www.regular-expressions.info
- RegExOne
https://regexone.com
- RegEx Tutorial - java T point
https://www.javatpoint.com/regex
- RegExr learn ,build & test regEX
https://regexr.com/
- AI-Powered Regular Expression Solver
https://regex.ai/
-----
🔰 Videos:
- Regular Expressions (RegEx) Tutorial
https://youtube.com/playlist...
- Learn Regular Expressions (Regex) - Crash Course for Beginners
https://youtu.be/ZfQFUJhPqMM
- Regular Expression Tutorial - Arabic
https://youtube.com/playlist...
- Regular Expressions (Regex) Tutorial: How to Match Any Pattern of Text
https://youtu.be/sa-TUpSx1JA
- Complete Regular Expressions Tutorial! (with exercises for practice)
https://youtu.be/vsa9GGzMFXQ
- CS50P - Lecture 7 - Regular Expressions
https://youtu.be/hy3sd9MOAcc
--------
#regEx #regExp #RegulerExpression #pattern #regEx_tutorial #python_regEx #js_regEX
python example in terminal🔴🐍 :
# Test under the Python Command-Line Interpreter
$ python3
......
>>> import re # Need module 're' for regular expression
# Try find: re.findall(regexStr, inStr) -> matchedSubstringsList
# r'...' denotes raw strings which ignore escape code, i.e., r'\n' is '\'+'n'
>>> re.findall(r'[0-9]+', 'abc123xyz')
['123'] # Return a list of matched substrings
>>> re.findall(r'[0-9]+', 'abcxyz')
[]
>>> re.findall(r'[0-9]+', 'abc00123xyz456_0')
['00123', '456', '0']
>>> re.findall(r'\d+', 'abc00123xyz456_0')
['00123', '456', '0']
# Try substitute: re.sub(regexStr, replacementStr, inStr) -> outStr
>>> re.sub(r'[0-9]+', r'*', 'abc00123xyz456_0')
'abc*xyz*_*'
# Try substitute with count: re.subn(regexStr, replacementStr, inStr) -> (outStr, count)
>>> re.subn(r'[0-9]+', r'*', 'abc00123xyz456_0')
('abc*xyz*_*', 3) # Return a tuple of output string and count
js example✅ :
<!DOCTYPE html>
<!-- JSRegexNumbers.html -->
<html lang="en">
<head>
<meta charset="utf-8">
<title>JavaScript Example: Regex</title>
<script>
var inStr = "abc123xyz456_7_00";
// Use RegExp.test(inStr) to check if inStr contains the pattern
console.log(/[0-9]+/.test(inStr)); // true
// Use String.search(regex) to check if the string contains the pattern
// Returns the start position of the matched substring or -1 if there is no match
console.log(inStr.search(/[0-9]+/)); // 3
// Use String.match() or RegExp.exec() to find the matched substring,
// back references, and string index
console.log(inStr.match(/[0-9]+/)); // ["123", input:"abc123xyz456_7_00", index:3, length:"1"]
console.log(/[0-9]+/.exec(inStr)); // ["123", input:"abc123xyz456_7_00", index:3, length:"1"]
// With g (global) option
console.log(inStr.match(/[0-9]+/g)); // ["123", "456", "7", "00", length:4]
// RegExp.exec() with g flag can be issued repeatedly.
// Search resumes after the last-found position (maintained in property RegExp.lastIndex).
var pattern = /[0-9]+/g;
var result;
while (result = pattern.exec(inStr)) {
console.log(result);
console.log(pattern.lastIndex);
// ["123"], 6
// ["456"], 12
// ["7"], 14
// ["00"], 17
}
// String.replace(regex, replacement):
console.log(inStr.replace(/\d+/, "**")); // abc**xyz456_7_00
console.log(inStr.replace(/\d+/g, "**")); // abc**xyz**_**_**
</script>
</head>
<body>
<h1>Hello,</h1>
</body>
</html>
🔰 Articles:
- Regular expressions - MDN
https://developer.mozilla.org/.../Guide/Regular_expressions
- A Step-by-Step Guide for Learning Regular Expressions: A Guide with Real-Life Usage
https://blogs.princegupta.me/a-step-by-step-guide-for...
- Regular Expressions Info
https://www.regular-expressions.info
- RegExOne
https://regexone.com
- RegEx Tutorial - java T point
https://www.javatpoint.com/regex
- RegExr learn ,build & test regEX
https://regexr.com/
- AI-Powered Regular Expression Solver
https://regex.ai/
-----
🔰 Videos:
- Regular Expressions (RegEx) Tutorial
https://youtube.com/playlist...
- Learn Regular Expressions (Regex) - Crash Course for Beginners
https://youtu.be/ZfQFUJhPqMM
- Regular Expression Tutorial - Arabic
https://youtube.com/playlist...
- Regular Expressions (Regex) Tutorial: How to Match Any Pattern of Text
https://youtu.be/sa-TUpSx1JA
- Complete Regular Expressions Tutorial! (with exercises for practice)
https://youtu.be/vsa9GGzMFXQ
- CS50P - Lecture 7 - Regular Expressions
https://youtu.be/hy3sd9MOAcc
--------
#regEx #regExp #RegulerExpression #pattern #regEx_tutorial #python_regEx #js_regEX
www.regular-expressions.info
Regular-Expressions.info - Regex Tutorial, Examples and Reference - Regexp Patterns
At Regular-Expressions.info you will find a wide range of in-depth information about a powerful search pattern language called regular expressions.
IT Engineer
Photo
🔰 مـعـلـومـة
💬 ما هو الفرق بين المترجم "Compiler" والمفسر "Interpreter" ؟
المترجم Compiler والمفسر Interpreter في واقع الأمر عبارة عن برنامجين يقومان بنفس الغرض، والمتمثل في تحويل الأوامر المكتوبة بإحدى لغات البرمجة العالية المستوى (high level language) من قبيل Java و#C و++C، إلى لغة الآلة Machine Language (أوامر مكتوبة بالبيانات الثنائية Binary Data أي سلاسل من الأصفار والوحدات).
▫️إذاً وإن كان لهما نفس الدور، فلماذا يوجد مترجم "Compiler" ومفسر "Interpreter" ولماذا لا يوجد أحدهما فقط ؟
لنتعرف على أهم الفروق بين البرنامجين، وعلى السبيل الذي يسلكه كلاهما من أجل تحويل التعليمات والأوامر العالية المستوى (والتي تسمى أيضاً البرنامج المصدري Source Program) إلى أوامر مكتوبة بلغة الآلة.
🔸 المترجم Compiler :
من خلال اسمه يتضح جلياً أنه يقوم بعملية الترجمة، فهو يقوم بفحص البرنامج المكتوب بلغة البرمجة كاملاً، ثم يقوم بترجمته إلى برنامج مكتوب بلغة الآلة لكي تتمكن وحدة معالجة البيانات "CPU" من تنفيذه و لا يظهر الأخطاء الموجودة في البرنامج المصدري إلاّ بعد الانتهاء من عملية تحويله إلى لغة الآلة.
🔸 المفسر Interpreter :
يقوم تقريباً بنفس الدور الذي يقوم به المترجم مع اختلاف بسيط، يتجلى في أن المفسر لا يقوم بتحويل الكود المصدري إلى كود الآلة مباشرة وإنما يقوم بتحويله إلى لغة وسيطة (intermediate code)، بعد ذلك يتم تحويل كل جزء من أجزاء الكود الناتج إلى لغة الآلة، ثم يتم تنفيذ هذه الأجزاء أمراً بأمر (Statement by statement)، وأي أمر يضم خطأً يؤدي إلى توقيف عملية تحويل الأجزاء المتبقية.
#compiler #Interpreter #information
💬 ما هو الفرق بين المترجم "Compiler" والمفسر "Interpreter" ؟
المترجم Compiler والمفسر Interpreter في واقع الأمر عبارة عن برنامجين يقومان بنفس الغرض، والمتمثل في تحويل الأوامر المكتوبة بإحدى لغات البرمجة العالية المستوى (high level language) من قبيل Java و#C و++C، إلى لغة الآلة Machine Language (أوامر مكتوبة بالبيانات الثنائية Binary Data أي سلاسل من الأصفار والوحدات).
▫️إذاً وإن كان لهما نفس الدور، فلماذا يوجد مترجم "Compiler" ومفسر "Interpreter" ولماذا لا يوجد أحدهما فقط ؟
لنتعرف على أهم الفروق بين البرنامجين، وعلى السبيل الذي يسلكه كلاهما من أجل تحويل التعليمات والأوامر العالية المستوى (والتي تسمى أيضاً البرنامج المصدري Source Program) إلى أوامر مكتوبة بلغة الآلة.
🔸 المترجم Compiler :
من خلال اسمه يتضح جلياً أنه يقوم بعملية الترجمة، فهو يقوم بفحص البرنامج المكتوب بلغة البرمجة كاملاً، ثم يقوم بترجمته إلى برنامج مكتوب بلغة الآلة لكي تتمكن وحدة معالجة البيانات "CPU" من تنفيذه و لا يظهر الأخطاء الموجودة في البرنامج المصدري إلاّ بعد الانتهاء من عملية تحويله إلى لغة الآلة.
🔸 المفسر Interpreter :
يقوم تقريباً بنفس الدور الذي يقوم به المترجم مع اختلاف بسيط، يتجلى في أن المفسر لا يقوم بتحويل الكود المصدري إلى كود الآلة مباشرة وإنما يقوم بتحويله إلى لغة وسيطة (intermediate code)، بعد ذلك يتم تحويل كل جزء من أجزاء الكود الناتج إلى لغة الآلة، ثم يتم تنفيذ هذه الأجزاء أمراً بأمر (Statement by statement)، وأي أمر يضم خطأً يؤدي إلى توقيف عملية تحويل الأجزاء المتبقية.
#compiler #Interpreter #information
مـعـلـومـة 🔰:
🔘 الفرق بين تطبيقات Web1 و Web2 و Web3:
♦️ الـ Web1 قراءة فقط (المستخدمين لا يمكنهم الكتابة).
♦️ الـ Web2 قراءة وكتابة (المستخدمين يستطيعون القراءة والكتابة على الويب ولكنهم لا يملكون البيانات).
♦️ الـ Web3 قراءة وكتابة (المستخدمين هم مالكو للبيانات).
#web #web3 #information
🔘 الفرق بين تطبيقات Web1 و Web2 و Web3:
♦️ الـ Web1 قراءة فقط (المستخدمين لا يمكنهم الكتابة).
♦️ الـ Web2 قراءة وكتابة (المستخدمين يستطيعون القراءة والكتابة على الويب ولكنهم لا يملكون البيانات).
♦️ الـ Web3 قراءة وكتابة (المستخدمين هم مالكو للبيانات).
#web #web3 #information
أحسن Repositories في GitHub لازم تكون عارفهم 👩💻🔝🚀
1- Public APIs: مجموعة كبيرة أكثر من 1400 APIs مجانية مفيدة جدًا جدًا.
🔗:https://lnkd.in/djTZw7rz
2- App Ideas: قائمة فيها أفكار تطبيقات تطور بيها من مهاراتك مقسمة على حسب مستواك.
🔗:https://lnkd.in/dbnauBX2
3- Coding Interview University: منهج ورود ماب لتحضير نفسك للإنترفيو في الشركات الكبرى وتطوير مهاراتك وتميزك كطالب علوم حاسب .
🔗:https://lnkd.in/dR8Hn76J
4- The Algorithms: مجتمع كبير فيه أكواد لأنواع مختلفة من الألجوريزمز والداتا ستراكتشرز بأكثر من لغة برمجة.
🔗:https://lnkd.in/d9rbsPH7
5- Free Programming Books: مكتبة كبيرة فيها كتب برمجة مجانية ومصادر وترشيحات كورسات للي حابب يتعلم بكل اللغات.
🔗:https://lnkd.in/dNR9W2Pt
6- 30 Seconds of Code: مكتبة لأكواد وطرق مختصرة ومفيدة لحل مشاكل برمجية بتواجهنا كثير بطريقة أسرع.
🔗:https://lnkd.in/dkK3Wk9s
تابعني على linkedIn و Twitter
#Github #repository #code #api #programming
1- Public APIs: مجموعة كبيرة أكثر من 1400 APIs مجانية مفيدة جدًا جدًا.
🔗:https://lnkd.in/djTZw7rz
2- App Ideas: قائمة فيها أفكار تطبيقات تطور بيها من مهاراتك مقسمة على حسب مستواك.
🔗:https://lnkd.in/dbnauBX2
3- Coding Interview University: منهج ورود ماب لتحضير نفسك للإنترفيو في الشركات الكبرى وتطوير مهاراتك وتميزك كطالب علوم حاسب .
🔗:https://lnkd.in/dR8Hn76J
4- The Algorithms: مجتمع كبير فيه أكواد لأنواع مختلفة من الألجوريزمز والداتا ستراكتشرز بأكثر من لغة برمجة.
🔗:https://lnkd.in/d9rbsPH7
5- Free Programming Books: مكتبة كبيرة فيها كتب برمجة مجانية ومصادر وترشيحات كورسات للي حابب يتعلم بكل اللغات.
🔗:https://lnkd.in/dNR9W2Pt
6- 30 Seconds of Code: مكتبة لأكواد وطرق مختصرة ومفيدة لحل مشاكل برمجية بتواجهنا كثير بطريقة أسرع.
🔗:https://lnkd.in/dkK3Wk9s
تابعني على linkedIn و Twitter
#Github #repository #code #api #programming
lnkd.in
LinkedIn
This link will take you to a page that’s not on LinkedIn
ماذا يعني SSH 🔐وماذا يقدم
SSH هي اختصار لـ "Secure Shell"، وهي بروتوكول يستخدم للاتصال الآمن بين جهازين عبر شبكة غير آمنة، مثل الإنترنت. يعتبر SSH أساسياً في عالم تكنولوجيا المعلومات والأمن السيبراني، حيث يوفر وسيلة آمنة ومشفرة للتحكم عن بعد في أجهزة الحواسيب وإدارتها.
تاريخ الـ SSH
تم تطوير بروتوكول SSH في التسعينيات كبديل آمن لبروتوكولات التوصيل البسيطة المستخدمة في ذلك الوقت، مثل Telnet و Rlogin، التي كانت ترسل كلمات المرور والبيانات عبر الشبكة بوضوح دون تشفير. توفر SSH طريقة للتوصيل تشفير كل البيانات المرسلة بين الجهازين المتصلين.
كيف يعمل SSH؟
SSH يستخدم تشفير المفتاح العام والخاص لتأمين الاتصالات. عندما يقوم جهاز بالاتصال بآخر باستخدام SSH، يتم تبادل مفاتيح تشفير لإقامة اتصال آمن بينهما. يستخدم SSH أيضًا تقنية التجزئة لحماية الاتصالات من التجسس والتلاعب أثناء النقل.
استخدامات SSH
1. الوصول إلى الخوادم عن بعد: يتيح SSH للمسؤولين الوصول إلى خوادمهم وإدارتها من أي مكان بشكل آمن ومشفر.
2. نقل الملفات بأمان: يمكن استخدام بروتوكول SSH لنقل الملفات بين أجهزة الكمبيوتر بطريقة آمنة باستخدام برامج مثل scp و sftp.
3. إجراءات النسخ الاحتياطي الآمنة: يمكن استخدام SSH لإنشاء نسخ احتياطية من البيانات عبر الشبكة بطريقة آمنة.
4. الاتصال بخوادم الويب: يمكن استخدام SSH لإدارة خوادم الويب وتكوينها بشكل آمن.
أمان SSH
على الرغم من أن SSH تعتبر آمنة، إلا أنه لا يزال هناك بعض المخاطر التي يجب مراعاتها، مثل استخدام كلمات مرور ضعيفة أو تعرض الخوادم للهجمات السيبرانية.
الختام
باختصار، يعتبر SSH أداة أساسية في عالم تكنولوجيا المعلومات لتأمين الاتصالات وإدارة الأنظمة عن بعد. يجب على المستخدمين فهم كيفية استخدامها بشكل صحيح وتطبيق الممارسات الأمنية الجيدة لضمان سلامة الاتصالات والبيانات.
تابعني على linkedIn و Twitter
#SSH #information #Network #protocol
SSH هي اختصار لـ "Secure Shell"، وهي بروتوكول يستخدم للاتصال الآمن بين جهازين عبر شبكة غير آمنة، مثل الإنترنت. يعتبر SSH أساسياً في عالم تكنولوجيا المعلومات والأمن السيبراني، حيث يوفر وسيلة آمنة ومشفرة للتحكم عن بعد في أجهزة الحواسيب وإدارتها.
تاريخ الـ SSH
تم تطوير بروتوكول SSH في التسعينيات كبديل آمن لبروتوكولات التوصيل البسيطة المستخدمة في ذلك الوقت، مثل Telnet و Rlogin، التي كانت ترسل كلمات المرور والبيانات عبر الشبكة بوضوح دون تشفير. توفر SSH طريقة للتوصيل تشفير كل البيانات المرسلة بين الجهازين المتصلين.
كيف يعمل SSH؟
SSH يستخدم تشفير المفتاح العام والخاص لتأمين الاتصالات. عندما يقوم جهاز بالاتصال بآخر باستخدام SSH، يتم تبادل مفاتيح تشفير لإقامة اتصال آمن بينهما. يستخدم SSH أيضًا تقنية التجزئة لحماية الاتصالات من التجسس والتلاعب أثناء النقل.
استخدامات SSH
1. الوصول إلى الخوادم عن بعد: يتيح SSH للمسؤولين الوصول إلى خوادمهم وإدارتها من أي مكان بشكل آمن ومشفر.
2. نقل الملفات بأمان: يمكن استخدام بروتوكول SSH لنقل الملفات بين أجهزة الكمبيوتر بطريقة آمنة باستخدام برامج مثل scp و sftp.
3. إجراءات النسخ الاحتياطي الآمنة: يمكن استخدام SSH لإنشاء نسخ احتياطية من البيانات عبر الشبكة بطريقة آمنة.
4. الاتصال بخوادم الويب: يمكن استخدام SSH لإدارة خوادم الويب وتكوينها بشكل آمن.
أمان SSH
على الرغم من أن SSH تعتبر آمنة، إلا أنه لا يزال هناك بعض المخاطر التي يجب مراعاتها، مثل استخدام كلمات مرور ضعيفة أو تعرض الخوادم للهجمات السيبرانية.
الختام
باختصار، يعتبر SSH أداة أساسية في عالم تكنولوجيا المعلومات لتأمين الاتصالات وإدارة الأنظمة عن بعد. يجب على المستخدمين فهم كيفية استخدامها بشكل صحيح وتطبيق الممارسات الأمنية الجيدة لضمان سلامة الاتصالات والبيانات.
تابعني على linkedIn و Twitter
#SSH #information #Network #protocol
سأعود للنشر قريبا سيكون التركيز على هذه المواضيع اختر ماذا تفضل
Anonymous Poll
63%
python🐍
19%
Ai recources📑
29%
useful github repositories💎
31%
useful courses📚
13%
machine learning🤖
IT Engineer
#Python #Trick كتير منلاحظ هالسينتاكس ببايثون والغالب بكون صعب عليه فهمو و ليش هو افضل بغالب الاحيان من حلقة for و شو اسمو وكيف بيشتغل؟ غدا انشالله منشور عن الفكرة بالتفصيل
المصطلح يلي شفناه بالصورة اسمو List comprehensions و هو انشاء list بطريقة مختصرة واسرع
List comprehensions
هي إحدى ميزات Python المثيرة للاهتمام والمفيدة للغاية والتي تتيح لنا إنشاء القوائم ومعالجتها باستخدام بناء جملة أقصر بكثير.
Syntax
يتكون بناء الجملة الأساسي من قوسين مربعين [] يتضمنان تعبيرًا متبوعًا بجملة for. ويمكن تضمين شرط باستخدام if لفلترة البيانات
Expression
يحدد التعبير ما يجب تضمينه في القائمة الجديدة لكل عنصر في العنصر القابل للتكرار. يمكن أن يكون تحويلاً بسيطًا أو حتى عملية حسابية
على سبيل المثال، لنفترض أن لدينا قائمة بخمسة أرقام مخزنة في numbers
نريد إنشاء قائمة أخرى منها وتخزين مربعات هذه الأرقام فيها.
يمكننا القيام بذالك عن طريق تعريف List comprehensions تسمى squares الذي تقوم بعمل مربعات الاعداد لكل عدد عن طريق التعبير الآتي:
هي تعبير نفس هي التعبير :
output
نلاحظ نفس الجواب للجهتين طيب شو الفرق ؟
اولا: مصطلح قابل للقراءة اكثر ومختصر ونحن منحاول دائما نكتب كمية اقل من الكود و تعتبر هذه الكتابة بايثونية (شخص بيشرب بايثون بالعامية🌚)
ثانيا: اسرع نوعا بشكل بسيط من استخدام ال for loop التقليدية حسب تجربة الخبراء
هاد شرح فكرة بشكل مختصر و انشالله قريبا رح نزل notebook كامل وفيه امثلة وشرح شامل و مصادر ممتازة بعتذر عن التأخير لضيق الوقت
وكل الأسئلة يلي عم تجي ما عم يتم تجاهلها ولكن رح يتم الإجابة عنها اما بشرح عالقناة او رد قريبا💯
📛تذكر انا ما زلت بتعلم متلي متلك وماني متأكد من معلومتي وما عندي الخبرة الكافية والمؤهلات لأشرح فكرة بشكل عميق انو كيف هاد الامر من ناحية الذاكرة والاستخدام لهيك اغلب شروحاتي من مواقع موثوقة وناس خبراء مجرد مشاركة معلومة حسب الأسئلة يلي عم تجيني📛
#python #list
#A_person_who_learns_and_shares_what_he_learns_I_am_not_a_very_experienced_person_but_I_use_the_sources_I_learn_from_and_share_them.
#Anyone_can_make_mistakes
List comprehensions
هي إحدى ميزات Python المثيرة للاهتمام والمفيدة للغاية والتي تتيح لنا إنشاء القوائم ومعالجتها باستخدام بناء جملة أقصر بكثير.
Syntax
يتكون بناء الجملة الأساسي من قوسين مربعين [] يتضمنان تعبيرًا متبوعًا بجملة for. ويمكن تضمين شرط باستخدام if لفلترة البيانات
list_comp = [expression for item in iterable if condition]
Expression
يحدد التعبير ما يجب تضمينه في القائمة الجديدة لكل عنصر في العنصر القابل للتكرار. يمكن أن يكون تحويلاً بسيطًا أو حتى عملية حسابية
على سبيل المثال، لنفترض أن لدينا قائمة بخمسة أرقام مخزنة في numbers
نريد إنشاء قائمة أخرى منها وتخزين مربعات هذه الأرقام فيها.
يمكننا القيام بذالك عن طريق تعريف List comprehensions تسمى squares الذي تقوم بعمل مربعات الاعداد لكل عدد عن طريق التعبير الآتي:
numbers = [1, 2, 3, 4, 5]
squares = [num ** 2 for num in numbers]
print(squares)
هي تعبير نفس هي التعبير :
numbers=[1,2,3,4,5]
squares =[]
for num in numbers:
squares.append(num**2)
print(squares)
output
[1, 4, 9, 16, 25]
نلاحظ نفس الجواب للجهتين طيب شو الفرق ؟
اولا: مصطلح قابل للقراءة اكثر ومختصر ونحن منحاول دائما نكتب كمية اقل من الكود و تعتبر هذه الكتابة بايثونية (شخص بيشرب بايثون بالعامية🌚)
ثانيا: اسرع نوعا بشكل بسيط من استخدام ال for loop التقليدية حسب تجربة الخبراء
هاد شرح فكرة بشكل مختصر و انشالله قريبا رح نزل notebook كامل وفيه امثلة وشرح شامل و مصادر ممتازة بعتذر عن التأخير لضيق الوقت
وكل الأسئلة يلي عم تجي ما عم يتم تجاهلها ولكن رح يتم الإجابة عنها اما بشرح عالقناة او رد قريبا💯
📛تذكر انا ما زلت بتعلم متلي متلك وماني متأكد من معلومتي وما عندي الخبرة الكافية والمؤهلات لأشرح فكرة بشكل عميق انو كيف هاد الامر من ناحية الذاكرة والاستخدام لهيك اغلب شروحاتي من مواقع موثوقة وناس خبراء مجرد مشاركة معلومة حسب الأسئلة يلي عم تجيني📛
#python #list
#A_person_who_learns_and_shares_what_he_learns_I_am_not_a_very_experienced_person_but_I_use_the_sources_I_learn_from_and_share_them.
#Anyone_can_make_mistakes
بالمناسبة الناس يلي ما بتعرف شو هو ال notebook الخاص ببيئة jupyter
شرح بسيط من ابداع الذكاء الأصطناعي ما من ابداعي😁
ما هو Jupyter Notebook؟
Jupyter Notebook هو بيئة تفاعلية مفتوحة المصدر تُستخدم بشكل واسع في علوم البيانات، التعلم الآلي، والبرمجة. يتيح للمستخدمين كتابة وتنفيذ الشيفرات البرمجية، وعرض النتائج، وكتابة الملاحظات، كل ذلك في واجهة واحدة سهلة الاستخدام.
المميزات الرئيسية:
تفاعلية: يمكنك كتابة الشيفرة البرمجية وتنفيذها في خلايا (cells) منفصلة، مما يتيح لك رؤية النتائج بشكل فوري.
دعم لغات متعددة: يدعم Jupyter العديد من لغات البرمجة مثل Python، R، Julia، وغيرها.
التوثيق: يمكنك إضافة نصوص، معادلات رياضية، صور، وروابط، مما يجعل من السهل توثيق الأفكار والمشاريع.
مشاركة سهلة: يمكنك تصدير الـ Notebooks إلى صيغ متعددة مثل HTML، PDF، أو حتى مشاركة الروابط مباشرة.
مكتبات قوية: يدعم Jupyter العديد من المكتبات الشهيرة مثل NumPy، Pandas، Matplotlib، مما يجعله مناسبًا لتحليل البيانات والتصور.
رح نزل شرح عنو بالتفصيل من واقع تجربتي وكيف منشغلو وشوية اوامر سحرية فيه
#jupyter #notebook #python #NumPy #Pandas
شرح بسيط من ابداع الذكاء الأصطناعي ما من ابداعي😁
ما هو Jupyter Notebook؟
Jupyter Notebook هو بيئة تفاعلية مفتوحة المصدر تُستخدم بشكل واسع في علوم البيانات، التعلم الآلي، والبرمجة. يتيح للمستخدمين كتابة وتنفيذ الشيفرات البرمجية، وعرض النتائج، وكتابة الملاحظات، كل ذلك في واجهة واحدة سهلة الاستخدام.
المميزات الرئيسية:
تفاعلية: يمكنك كتابة الشيفرة البرمجية وتنفيذها في خلايا (cells) منفصلة، مما يتيح لك رؤية النتائج بشكل فوري.
دعم لغات متعددة: يدعم Jupyter العديد من لغات البرمجة مثل Python، R، Julia، وغيرها.
التوثيق: يمكنك إضافة نصوص، معادلات رياضية، صور، وروابط، مما يجعل من السهل توثيق الأفكار والمشاريع.
مشاركة سهلة: يمكنك تصدير الـ Notebooks إلى صيغ متعددة مثل HTML، PDF، أو حتى مشاركة الروابط مباشرة.
مكتبات قوية: يدعم Jupyter العديد من المكتبات الشهيرة مثل NumPy، Pandas، Matplotlib، مما يجعله مناسبًا لتحليل البيانات والتصور.
رح نزل شرح عنو بالتفصيل من واقع تجربتي وكيف منشغلو وشوية اوامر سحرية فيه
#jupyter #notebook #python #NumPy #Pandas
https://github.com/fadel-hasan/linear_regression_multi_varible
مثال بسيط عن الانحدار الخطي لمتغيرين
يمكنك فتح المشروع على موقع GoogleColab وتنفيذ كل خلية على حدة
يمكنك متابعة الدورة التعليمية على قناة الدكتور هشام_عاصم
#github #ml #ai #machine_learning
مثال بسيط عن الانحدار الخطي لمتغيرين
يمكنك فتح المشروع على موقع GoogleColab وتنفيذ كل خلية على حدة
يمكنك متابعة الدورة التعليمية على قناة الدكتور هشام_عاصم
#github #ml #ai #machine_learning
GitHub
GitHub - fadel-hasan/linear_regression_multi_varible: simple linear regression multi variable by using python with 3D graph
simple linear regression multi variable by using python with 3D graph - fadel-hasan/linear_regression_multi_varible
🛠 نصيحة للمطورين: استكشفوا موقع QuickRef.me 🌐
موقع اكتشفتوا مؤخرا وصراحة رهيب جدا اذا حابب توصل لمرجع سريع للغة معينة او framework او مكتبة او اداة برمجية او حتى امر بال linux او اختصارات لوحة المفاتيح لعدد من البرامج و مراجع اخرى غير كل هالأصناف اتصفحوا ما رح تندم ابدا
AI Assistant says🤖:😊(Enjoy)
إذا كنت تعمل في مجال البرمجة أو تطوير الويب، فإنني أوصي بشدة بزيارة QuickRef.me. هذا الموقع يعد مرجعًا سريعًا ممتازًا للعديد من اللغات البرمجية والأدوات.
لماذا هو مهم؟
المحتوى المنظم: يوفر الموقع معلومات مرتبة بطريقة سهلة الفهم، مما يجعل من السهل العثور على ما تحتاجه بسرعة.
تنوع اللغات: سواء كنت تستخدم Python، JavaScript، أو أي لغة أخرى، ستجد مراجع شاملة تغطي معظم الجوانب.
أقسام المراجع:
لغات البرمجة: مثل Python، Java، JavaScript، Ruby، وغيرها.
تطوير الويب: HTML، CSS، وأطر العمل المختلفة.
قواعد البيانات: MySQL، PostgreSQL، MongoDB.
أدوات التطوير: Git، Docker، وغيرها.
مكتبات وأطر العمل: React، Angular، Vue.js.
موارد إضافية: يربطك بمصادر تعليمية أخرى، مما يساعدك على تطوير مهاراتك بشكل مستمر.
تحديثات منتظمة: المعلومات تُحدث باستمرار، مما يضمن لك الوصول إلى أحدث الممارسات.
استخدام هذا الموقع سيساعدك على تحسين إنتاجيتك وتوفير الوقت في البحث عن المعلومات. أنصح الجميع بإضافته إلى قائمة المراجع الخاصة بهم.
للمزيد تابعني على linkedIn و Twitter
#QuikRef
#Programming #Toolkit #Linux_Command #Python #Database #Keyboard_Shortcuts
موقع اكتشفتوا مؤخرا وصراحة رهيب جدا اذا حابب توصل لمرجع سريع للغة معينة او framework او مكتبة او اداة برمجية او حتى امر بال linux او اختصارات لوحة المفاتيح لعدد من البرامج و مراجع اخرى غير كل هالأصناف اتصفحوا ما رح تندم ابدا
AI Assistant says🤖:😊(Enjoy)
إذا كنت تعمل في مجال البرمجة أو تطوير الويب، فإنني أوصي بشدة بزيارة QuickRef.me. هذا الموقع يعد مرجعًا سريعًا ممتازًا للعديد من اللغات البرمجية والأدوات.
لماذا هو مهم؟
المحتوى المنظم: يوفر الموقع معلومات مرتبة بطريقة سهلة الفهم، مما يجعل من السهل العثور على ما تحتاجه بسرعة.
تنوع اللغات: سواء كنت تستخدم Python، JavaScript، أو أي لغة أخرى، ستجد مراجع شاملة تغطي معظم الجوانب.
أقسام المراجع:
لغات البرمجة: مثل Python، Java، JavaScript، Ruby، وغيرها.
تطوير الويب: HTML، CSS، وأطر العمل المختلفة.
قواعد البيانات: MySQL، PostgreSQL، MongoDB.
أدوات التطوير: Git، Docker، وغيرها.
مكتبات وأطر العمل: React، Angular، Vue.js.
موارد إضافية: يربطك بمصادر تعليمية أخرى، مما يساعدك على تطوير مهاراتك بشكل مستمر.
تحديثات منتظمة: المعلومات تُحدث باستمرار، مما يضمن لك الوصول إلى أحدث الممارسات.
استخدام هذا الموقع سيساعدك على تحسين إنتاجيتك وتوفير الوقت في البحث عن المعلومات. أنصح الجميع بإضافته إلى قائمة المراجع الخاصة بهم.
للمزيد تابعني على linkedIn و Twitter
#QuikRef
#Programming #Toolkit #Linux_Command #Python #Database #Keyboard_Shortcuts
QuickRef.ME
QuickRef.ME - Quick Reference Cheat Sheet
Share quick reference and cheat sheet for developers
إزاي ادخل مجال الـ AI واتخصص فيه؟ 👉
كثير بيسألوني إزاي ممكن يدخلو مجال الـ AI وايه تخصصاته، وازاي ابدأ فيه، ومتطلباته ايه وهكذا من الأسئلة المهمة، خلينا نبسط الموضوع واحدة واحدة، واحاول اجاوب على السؤال بطريقة مبسطة للجميع.
أول حاجة لازم أوضحها إن مجال الـ AI مليان فرص، لكن كمان بيحتاج أساسيات تكنولوجية قوية، يعني لازم يكون عند حضرتك خلفية تكنلوجية، واي حد يقول غير الكلام دة فـ على طول اعتبر كلامه بطيخ.
ليه؟ لأن الذكاء الاصطناعي مش مجرد شوية أدوات جاهزة تقدر تشغلها بضغطة زرار وخلاص او هتتعلمه من خلال النظام التقليدي، لا دة علم هندسي قائم على مفاهيم رياضية، إحصاء، برمجة، وطرق تحليل البيانات بشكل متقدم، وعشان كدة لازم تكون مجهز نفسك انك تكون عارف الأساسيات دي عشان تقدر تفهم الـ Machine Learning والـ Deep Learning وتعرف تبني وتطور النماذج بنفسك، الموضوع مش مجرد استخدام مكتبات أو أدوات جاهزة، لازم تبقى فاهم إيه اللي بيحصل ورا الكواليس والـ Lib دي بتعمل ايه وبتشتغل ازاي مع غيرها، وهكذا من الأمور المهمة، فـ لو هتبدأ صح، يبقى لازم تتعلم برمجة، زي Python مثلًا لأنها اللغة الأشهر في الـ AI، وتفهم ازاي تكتب Algorithms مظبوطة، وتتعلم تسأل نفسك "Why" قبل ما تسأل "How" لإن في فرق شاسع ما بين السؤالين دول، لو اتعلمت تسأل نفسك "ليه؟" قبل ما تسأل نفسك "اعمله ازاي؟" يبقى انت عالطريق الصح من ناحية التفكير المنطقي، اما لو انت ضد الكلام دة، يبقى وفر وقتك ومتكملش قراية احسن!
وقبل ما تفكر تدخل مجال الـ AI بشكل عام وأنا بنصح جدآ انك تدخله، اتأكد إنك مستعد تستثمر وقتك في تعلم الأساسيات دي، لو فضلت تقول لنفسك فاتني العمر، هو انا لسة هتعلم؟ هو انا لسة هصبر؟ يبقى صدقني الكار دة مش كارك! مش هتقدر تبني حاجة قوية أو تساهم بشكل فعال إلا لما تكون عندك القاعدة اللي هتشتغل عليها.
إزاي تبدأ في مجال الذكاء الاصطناعي؟
يبقى احنا كدة متفقين ان اول حاجة تعملها هو ان يكون عندك خلفية مش بطالة بلغة زي بايثون، تفكير منطقي، وازاي تكتب خوارزمياتك، ضيف على الكلام دة انك تتعلم ايه هو الـ Modeling من الأساس، وايه هي مودلات الـ AI بأنواع استخداماتها، وتربط دة بالسؤال الي سألته لنفسك "Why" فاكر؟ لان لو قدرت تسأل نفسك السؤال دة قبل بداية اي مشروع، هتعرف توجدله المودل المناسب!
لما تسأل نفسك "ليه أنا بعمل المشروع ده؟"
بذلك بتحدد الهدف الرئيسي: هل هدفك تصنيف صور؟ تحليل بيانات؟ توليد نصوص؟ بمجرد ما تحدد الهدف، هتقدر تختار النوع المناسب من المودل الي يقدر يوفي احتياجاتك!
يعني مثلا: لو شغلك مثلا على النصوص زي الترجمة أو تلخيص النصوص، يبقى الموديلات المبنية على التعلم العميق للتسلسل زي RNNs أو Transformer models زي GPT هي الأنسب.
ولو بتتعامل مع بيانات رقمية وتحليلية،
فيبقى الأنسب ليك هو الموديلات التقليدية زي Random Forest أو XGBoost.
بعد كدة، ركز على تعميق معرفتك في مجال الـ DeepLearning باستخدام مكتبات مشهورة زي TensorFlow وPyTorch او CoreML لو بيئة عمل Apple، وعلى فكرة بيئة عمل أبل من ابسط بيئات العمل الي ممكن تسهل عليك الموضوع دة لو في اوله بناء على ادوات زي CreateML، طبعا مهم إنك تبدأ تشتغل على مشاريع أكبر وأكثر تعقيدًا زي تحليل الصور أو النصوص، لأن التطبيق العملي هو اللي هيزود خبرتك ويقوي مهاراتك. بجانب كده، تابع آخر الأبحاث والتطورات في المجال لأن الذكاء الاصطناعي بيتطور بسرعة.
ما تنساش كمان أهمية التعامل مع البيانات وتنظيفها وتحليلها بشكل فعال، لأن ده جزء أساسي في أي مشروع AI ناجح، فلازم تكون فاهم اصلا ازاي تتعامل مع الداتا بشكل رئيسي.
يبقى كدة نقدر نلخص الموضوع في انه عشان تبدأ في الـ AI، لازم أول، وبكرر لازم ثم لازم تتعلم Python لأنها اللغة اللي كل الناس بتستخدمها في المجال، وكمان لازم يكون عندك تفكير رياضي هندسي عشان تفهم ازاي تتعامل مع الموديلز، تدربها وما الى ذلك.
بعد كده، اتعلم الأساسيات الـ ML زي التصنيف، طرق اتخاذ القرار، الفروقات ما بين الـ Supervised والـ Unsupervised، بعدين ابدأ اتعمق في التعلم العميق واتعلم عن الشبكات العصبية والـ CNN للصور والـ RNN للنصوص. لازم كمان تعرف تتعامل مع البيانات وتنضفها قبل ما تستخدمها في التدريب، حاول دايمًا تطبق اللي اتعلمته في مشاريع عملية زي تصنيف الصور، وتابع أحدث الأبحاث والتطورات عشان المجال بيتغير بسرعة ومش هتتعلم طول ما انت معتمد على التعلم النظري، لذلك لازم تطبق عملي على كل حاجة بتتعلمها.
الفرص في مجال الـ AI دلوقتي كبيرة جدًا، وداخلة في مختلف الصناعات، فلازم يكون عندك رؤية على المدى البعيد، وتبدأ تنفذها بنفسك حتى لو عن طريق Prototype بسيط لفكرتك، أكيد مش هتنجح من اول مرة، لكن دايما اعرف ان كل محاولة فاشلة تساوي تعلم من الخطأ، والي عليه بيترتب انك تعمل شئ ناجح في النهاية، وهكذا..
كثير بيسألوني إزاي ممكن يدخلو مجال الـ AI وايه تخصصاته، وازاي ابدأ فيه، ومتطلباته ايه وهكذا من الأسئلة المهمة، خلينا نبسط الموضوع واحدة واحدة، واحاول اجاوب على السؤال بطريقة مبسطة للجميع.
أول حاجة لازم أوضحها إن مجال الـ AI مليان فرص، لكن كمان بيحتاج أساسيات تكنولوجية قوية، يعني لازم يكون عند حضرتك خلفية تكنلوجية، واي حد يقول غير الكلام دة فـ على طول اعتبر كلامه بطيخ.
ليه؟ لأن الذكاء الاصطناعي مش مجرد شوية أدوات جاهزة تقدر تشغلها بضغطة زرار وخلاص او هتتعلمه من خلال النظام التقليدي، لا دة علم هندسي قائم على مفاهيم رياضية، إحصاء، برمجة، وطرق تحليل البيانات بشكل متقدم، وعشان كدة لازم تكون مجهز نفسك انك تكون عارف الأساسيات دي عشان تقدر تفهم الـ Machine Learning والـ Deep Learning وتعرف تبني وتطور النماذج بنفسك، الموضوع مش مجرد استخدام مكتبات أو أدوات جاهزة، لازم تبقى فاهم إيه اللي بيحصل ورا الكواليس والـ Lib دي بتعمل ايه وبتشتغل ازاي مع غيرها، وهكذا من الأمور المهمة، فـ لو هتبدأ صح، يبقى لازم تتعلم برمجة، زي Python مثلًا لأنها اللغة الأشهر في الـ AI، وتفهم ازاي تكتب Algorithms مظبوطة، وتتعلم تسأل نفسك "Why" قبل ما تسأل "How" لإن في فرق شاسع ما بين السؤالين دول، لو اتعلمت تسأل نفسك "ليه؟" قبل ما تسأل نفسك "اعمله ازاي؟" يبقى انت عالطريق الصح من ناحية التفكير المنطقي، اما لو انت ضد الكلام دة، يبقى وفر وقتك ومتكملش قراية احسن!
وقبل ما تفكر تدخل مجال الـ AI بشكل عام وأنا بنصح جدآ انك تدخله، اتأكد إنك مستعد تستثمر وقتك في تعلم الأساسيات دي، لو فضلت تقول لنفسك فاتني العمر، هو انا لسة هتعلم؟ هو انا لسة هصبر؟ يبقى صدقني الكار دة مش كارك! مش هتقدر تبني حاجة قوية أو تساهم بشكل فعال إلا لما تكون عندك القاعدة اللي هتشتغل عليها.
إزاي تبدأ في مجال الذكاء الاصطناعي؟
يبقى احنا كدة متفقين ان اول حاجة تعملها هو ان يكون عندك خلفية مش بطالة بلغة زي بايثون، تفكير منطقي، وازاي تكتب خوارزمياتك، ضيف على الكلام دة انك تتعلم ايه هو الـ Modeling من الأساس، وايه هي مودلات الـ AI بأنواع استخداماتها، وتربط دة بالسؤال الي سألته لنفسك "Why" فاكر؟ لان لو قدرت تسأل نفسك السؤال دة قبل بداية اي مشروع، هتعرف توجدله المودل المناسب!
لما تسأل نفسك "ليه أنا بعمل المشروع ده؟"
بذلك بتحدد الهدف الرئيسي: هل هدفك تصنيف صور؟ تحليل بيانات؟ توليد نصوص؟ بمجرد ما تحدد الهدف، هتقدر تختار النوع المناسب من المودل الي يقدر يوفي احتياجاتك!
يعني مثلا: لو شغلك مثلا على النصوص زي الترجمة أو تلخيص النصوص، يبقى الموديلات المبنية على التعلم العميق للتسلسل زي RNNs أو Transformer models زي GPT هي الأنسب.
ولو بتتعامل مع بيانات رقمية وتحليلية،
فيبقى الأنسب ليك هو الموديلات التقليدية زي Random Forest أو XGBoost.
بعد كدة، ركز على تعميق معرفتك في مجال الـ DeepLearning باستخدام مكتبات مشهورة زي TensorFlow وPyTorch او CoreML لو بيئة عمل Apple، وعلى فكرة بيئة عمل أبل من ابسط بيئات العمل الي ممكن تسهل عليك الموضوع دة لو في اوله بناء على ادوات زي CreateML، طبعا مهم إنك تبدأ تشتغل على مشاريع أكبر وأكثر تعقيدًا زي تحليل الصور أو النصوص، لأن التطبيق العملي هو اللي هيزود خبرتك ويقوي مهاراتك. بجانب كده، تابع آخر الأبحاث والتطورات في المجال لأن الذكاء الاصطناعي بيتطور بسرعة.
ما تنساش كمان أهمية التعامل مع البيانات وتنظيفها وتحليلها بشكل فعال، لأن ده جزء أساسي في أي مشروع AI ناجح، فلازم تكون فاهم اصلا ازاي تتعامل مع الداتا بشكل رئيسي.
يبقى كدة نقدر نلخص الموضوع في انه عشان تبدأ في الـ AI، لازم أول، وبكرر لازم ثم لازم تتعلم Python لأنها اللغة اللي كل الناس بتستخدمها في المجال، وكمان لازم يكون عندك تفكير رياضي هندسي عشان تفهم ازاي تتعامل مع الموديلز، تدربها وما الى ذلك.
بعد كده، اتعلم الأساسيات الـ ML زي التصنيف، طرق اتخاذ القرار، الفروقات ما بين الـ Supervised والـ Unsupervised، بعدين ابدأ اتعمق في التعلم العميق واتعلم عن الشبكات العصبية والـ CNN للصور والـ RNN للنصوص. لازم كمان تعرف تتعامل مع البيانات وتنضفها قبل ما تستخدمها في التدريب، حاول دايمًا تطبق اللي اتعلمته في مشاريع عملية زي تصنيف الصور، وتابع أحدث الأبحاث والتطورات عشان المجال بيتغير بسرعة ومش هتتعلم طول ما انت معتمد على التعلم النظري، لذلك لازم تطبق عملي على كل حاجة بتتعلمها.
الفرص في مجال الـ AI دلوقتي كبيرة جدًا، وداخلة في مختلف الصناعات، فلازم يكون عندك رؤية على المدى البعيد، وتبدأ تنفذها بنفسك حتى لو عن طريق Prototype بسيط لفكرتك، أكيد مش هتنجح من اول مرة، لكن دايما اعرف ان كل محاولة فاشلة تساوي تعلم من الخطأ، والي عليه بيترتب انك تعمل شئ ناجح في النهاية، وهكذا..