https://wiki.hsoub.com/index.php?title=Python/interpreter&feed=atom&action=historyPython/interpreter - تاريخ المراجعة2024-03-29T13:48:06Zتاريخ التعديل لهذه الصفحة في الويكيMediaWiki 1.35.0https://wiki.hsoub.com/index.php?title=Python/interpreter&diff=8384&oldid=prevMohammed Taher في 20:39، 16 مايو 20182018-05-16T20:39:20Z<p></p>
<table class="diff diff-contentalign-right diff-editfont-monospace" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="ar">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">→ مراجعة أقدم</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">مراجعة 20:39، 16 مايو 2018</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l11" >سطر 11:</td>
<td colspan="2" class="diff-lineno">سطر 11:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>عادة ما يجري تنصيب بايثون في أنظمة ويندوز في المسار <code>C:\Python36</code> ولكن يمكن تغييره أثناء عملية التنصيب. ولإضافة هذا المجلد إلى مسار النظام، يمكن كتابة الأمر التالي في سطر الأوامر:<syntaxhighlight lang="powershell"></div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>عادة ما يجري تنصيب بايثون في أنظمة ويندوز في المسار <code>C:\Python36</code> ولكن يمكن تغييره أثناء عملية التنصيب. ولإضافة هذا المجلد إلى مسار النظام، يمكن كتابة الأمر التالي في سطر الأوامر:<syntaxhighlight lang="powershell"></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>set path=%path%;C:\python36</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>set path=%path%;C:\python36</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight>للخروج من المفسّر يمكن كتابة محرف نهاية الملف (end-of-file character) وذلك عن طريق الضغط على المفاتيح <del class="diffchange diffchange-inline">Control</del>-D في أنظمة يونكس أو <del class="diffchange diffchange-inline">Control</del>-Z في نظام ويندوز. وإن لم تنجح هذه الطريقة فيمكن الخروج من المفسّر بكتابة الأمر <code>quit()</code>.</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight>للخروج من المفسّر يمكن كتابة محرف نهاية الملف (end-of-file character) وذلك عن طريق الضغط على المفاتيح <ins class="diffchange diffchange-inline"><code>Ctrl</ins>-D<ins class="diffchange diffchange-inline"></code> </ins>في أنظمة يونكس أو <ins class="diffchange diffchange-inline"><code>Ctrl</ins>-Z<ins class="diffchange diffchange-inline"></code> </ins>في نظام ويندوز. وإن لم تنجح هذه الطريقة فيمكن الخروج من المفسّر بكتابة الأمر <code>quit()</code>.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>يمتلك مفسّر بايثون بعض الخصائص التحريرية مثل التحرير التفاعلي، والبحث في التاريخ واستخدامه (history substitution) واستكمال الشيفرة في الأنظمة التي تدعم مكتبة readline. أسرع طريقة للتحقّق من توفّر خاصية التحرير في سطر الأوامر هي بالضغط على المفتاحين Ctrl+P في أول سطر من المفسر، فإن أصدر جهازك صوتًا فهذا يعني أنّ خاصية التحرير في سطر الأوامر مفعّلة (في بعض الأنظمة قد لا يصدر صوتًا، وهذا يعتمد على الضبط الافتراضي لنظام التشغيل)<del class="diffchange diffchange-inline">، (راجع ملحق التحرير التفاعلي للمدخلات، وتاريخ الأوامر للاطلاع على قائمة بالمفاتيح المتاحة) </del>أما إن لم يحدث شيء عند الضغط على Ctrl+P أو ظهر الرمز <code>^P</code> فهذا يعني أنّ خاصية التحرير في سطر الأوامر ليست متاحة، ولن يكون بوسعك حينئذٍ إلا أن تستخدم مفتاح backspace لحذف الحروف من السطر الحالي.</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>يمتلك مفسّر بايثون بعض الخصائص التحريرية مثل التحرير التفاعلي، والبحث في التاريخ واستخدامه (history substitution) واستكمال الشيفرة في الأنظمة التي تدعم مكتبة readline. أسرع طريقة للتحقّق من توفّر خاصية التحرير في سطر الأوامر هي بالضغط على المفتاحين Ctrl+P في أول سطر من المفسر، فإن أصدر جهازك صوتًا فهذا يعني أنّ خاصية التحرير في سطر الأوامر مفعّلة (في بعض الأنظمة قد لا يصدر صوتًا، وهذا يعتمد على الضبط الافتراضي لنظام التشغيل)<ins class="diffchange diffchange-inline">.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>أما إن لم يحدث شيء عند الضغط على <ins class="diffchange diffchange-inline"><code></ins>Ctrl+P<ins class="diffchange diffchange-inline"></code> </ins>أو ظهر الرمز <code>^P</code> فهذا يعني أنّ خاصية التحرير في سطر الأوامر ليست متاحة، ولن يكون بوسعك حينئذٍ إلا أن تستخدم مفتاح backspace لحذف الحروف من السطر الحالي.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>يشبه المفسِّر في عمله صدفة يونكس (Unix shell)، فعند استدعائه مع مدخلات اعتيادية فإنّه يقرأ الأوامر وينفّذها بصورة تفاعلية، وعند استدعائه مع اسم ملف كمعامل أو مع ملف كمدخل اعتيادي، فإنّه يقرأ الشيفرة الموجودة في ذلك الملف وينفّذها من فوره.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>يشبه المفسِّر في عمله صدفة يونكس (Unix shell)، فعند استدعائه مع مدخلات اعتيادية فإنّه يقرأ الأوامر وينفّذها بصورة تفاعلية، وعند استدعائه مع اسم ملف كمعامل أو مع ملف كمدخل اعتيادي، فإنّه يقرأ الشيفرة الموجودة في ذلك الملف وينفّذها من فوره.</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l42" >سطر 42:</td>
<td colspan="2" class="diff-lineno">سطر 44:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[GCC 4.8.2] on linux</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[GCC 4.8.2] on linux</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Type "help", "copyright", "credits" or "license" for more information.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Type "help", "copyright", "credits" or "license" for more information.</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">>>></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></syntaxhighlight>يمكن استخدام الخيار للولوج إلى الوضع التفاعلي في مفسّر بايثون دون عرض الرسالة الترحيبية:<syntaxhighlight lang="shell"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">$ python3.6 -q</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>>>></div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>>>></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight>تستخدم الأسطر المتمّمة عند إدخال بنى تتكوّن من أسطر متعددة، مثل عبارة <code>[[Python/if|if]]</code> التالية:<syntaxhighlight lang="python3"></div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight>تستخدم الأسطر المتمّمة عند إدخال بنى تتكوّن من أسطر متعددة، مثل عبارة <code>[[Python/if|if]]</code> التالية:<syntaxhighlight lang="python3"></div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l54" >سطر 54:</td>
<td colspan="2" class="diff-lineno">سطر 59:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== ترميز الشيفرة المصدرية ===</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== ترميز الشيفرة المصدرية ===</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>تُعامل الملفات المصدرية في بايثون على أنّها مرمّزة بالترميز <code>UTF-8</code>، وبهذا يمكن استخدام الحروف التابعة لمعظم اللغات العالمية في الوقت نفسه ضمن السلاسل النصية والمعرّفات <del class="diffchange diffchange-inline">والتعليقات، </del>ولكن المكتبة القياسية تستخدم الترميز ASCII للمعرفات، وهو أمر متّفق عليه في الشيفرات المحمولة (portable). ولعرض جميع المحارف بصورة صحيحة يجب أن يتعرّف محرر النصوص على ترميز الملف ويجب استخدام خطّ يدعم جميع المحارف الموجودة في الملف.</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>تُعامل الملفات المصدرية في بايثون على أنّها مرمّزة بالترميز <code>UTF-8</code>، وبهذا يمكن استخدام الحروف التابعة لمعظم اللغات العالمية في الوقت نفسه ضمن <ins class="diffchange diffchange-inline">[[Python/str|</ins>السلاسل النصية<ins class="diffchange diffchange-inline">]] [[Python/Basic Syntax#.D8.A7.D9.84.D9.85.D8.B9.D8.B1.D9.91.D9.81.D8.A7.D8.AA .D9.88.D8.A7.D9.84.D9.83.D9.84.D9.85.D8.A7.D8.AA .D8.A7.D9.84.D9.85.D9.81.D8.AA.D8.A7.D8.AD.D9.8A.D8.A9|</ins>والمعرّفات<ins class="diffchange diffchange-inline">]] [[Python/Basic Syntax#.D8.A7.D9.84.D8.AA.D8.B9.D9.84.D9.8A.D9.82.D8.A7.D8.AA Comments|والتعليقات]]، </ins>ولكن المكتبة القياسية تستخدم الترميز ASCII للمعرفات، وهو أمر متّفق عليه في الشيفرات المحمولة (portable). ولعرض جميع المحارف بصورة صحيحة يجب أن يتعرّف محرر النصوص على ترميز الملف ويجب استخدام خطّ يدعم جميع المحارف الموجودة في الملف.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>يمكن تغيير الترميز الافتراضي للملف وذلك من خلال التصريح عن الترميز المطلوب على هيئة تعليق خاص يوضع في بداية الملف، ويكون بالصيغة التالية:<syntaxhighlight lang="python"></div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>يمكن تغيير الترميز الافتراضي للملف وذلك من خلال التصريح عن الترميز المطلوب على هيئة تعليق خاص يوضع في بداية الملف، ويكون بالصيغة التالية:<syntaxhighlight lang="python"></div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l62" >سطر 62:</td>
<td colspan="2" class="diff-lineno">سطر 67:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>على سبيل المثال، في حال الرغبة باستخدام الترميز <code>Windows-1252</code>، يجب أن يكون السطر الأول في الشيفرة المصدرية كالآتي:<syntaxhighlight lang="python3"></div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>على سبيل المثال، في حال الرغبة باستخدام الترميز <code>Windows-1252</code>، يجب أن يكون السطر الأول في الشيفرة المصدرية كالآتي:<syntaxhighlight lang="python3"></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div># -*- coding: cp-1252 -*-</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div># -*- coding: cp-1252 -*-</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight>يجب التصريح عن الترميز المطلوب في السطر الأول من الملف حصرًا، باستثناء الشيفرات المصدرية التي تبدأ بسطر <code>"shebang"</code> الخاص بأنظمة يونكس. في هذه الحالة يجب أن يكون التصريح عن الترميز المطلوب في السطر الثاني من الملف. فمثلًا:<syntaxhighlight lang="python3"></div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight>يجب التصريح عن الترميز المطلوب في السطر الأول من الملف حصرًا، باستثناء الشيفرات المصدرية التي تبدأ <ins class="diffchange diffchange-inline">[[Python/Basic Syntax#.D8.B3.D8.B7.D8.B1 .D8.B4.D9.8A.D8.A8.D8.A7.D9.86.D9.83 shebang line|</ins>بسطر <code>"shebang"</code><ins class="diffchange diffchange-inline">]] </ins>الخاص بأنظمة يونكس. في هذه الحالة يجب أن يكون التصريح عن الترميز المطلوب في السطر الثاني من الملف. فمثلًا:<syntaxhighlight lang="python3"></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#!/usr/bin/env python3</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#!/usr/bin/env python3</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div># -*- coding: cp-1252 -*-</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div># -*- coding: cp-1252 -*-</div></td></tr>
</table>Mohammed Taherhttps://wiki.hsoub.com/index.php?title=Python/interpreter&diff=3976&oldid=prevعبد اللطيف ايمش في 05:15، 25 مارس 20182018-03-25T05:15:18Z<p></p>
<table class="diff diff-contentalign-right diff-editfont-monospace" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="ar">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">→ مراجعة أقدم</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">مراجعة 05:15، 25 مارس 2018</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1" >سطر 1:</td>
<td colspan="2" class="diff-lineno">سطر 1:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><noinclude>{{DISPLAYTITLE:مفسر بايثون}}</noinclude></div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><noinclude>{{DISPLAYTITLE:مفسر بايثون}}</noinclude></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== تشغيل المفسر ==</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== تشغيل المفسر ==</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>عادة ما يُنصَّب مفسِّر بايثون في المسار <code>/usr/local/bin/python3.6</code><del class="diffchange diffchange-inline">، </del>ويؤدّي وضع هذا المسار ضمن مسار البحث الخاصّ بصدفة يونكس (Unix shell) إلى إمكانية استدعاء مفسّر بايثون عن طريق كتابة الأمر التالي في الصدفة:<syntaxhighlight lang="shell"></div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>عادة ما يُنصَّب مفسِّر بايثون في المسار <code>/usr/local/bin/python3.6</code> <ins class="diffchange diffchange-inline">في أنظمة يونكس، </ins>ويؤدّي وضع هذا المسار ضمن مسار البحث الخاصّ بصدفة يونكس (Unix shell) إلى إمكانية استدعاء مفسّر بايثون عن طريق كتابة الأمر التالي في الصدفة:<syntaxhighlight lang="shell"></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>python3.6</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>python3.6</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight>'''ملاحظة:'''</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight>'''ملاحظة:'''</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l11" >سطر 11:</td>
<td colspan="2" class="diff-lineno">سطر 11:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>عادة ما يجري تنصيب بايثون في أنظمة ويندوز في المسار <code>C:\Python36</code> ولكن يمكن تغييره أثناء عملية التنصيب. ولإضافة هذا المجلد إلى مسار النظام، يمكن كتابة الأمر التالي في سطر الأوامر:<syntaxhighlight lang="powershell"></div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>عادة ما يجري تنصيب بايثون في أنظمة ويندوز في المسار <code>C:\Python36</code> ولكن يمكن تغييره أثناء عملية التنصيب. ولإضافة هذا المجلد إلى مسار النظام، يمكن كتابة الأمر التالي في سطر الأوامر:<syntaxhighlight lang="powershell"></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>set path=%path%;C:\python36</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>set path=%path%;C:\python36</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight>للخروج من المفسّر يمكن كتابة محرف نهاية الملف (end-of-file character) وذلك عن طريق الضغط على المفاتيح Control-D في أنظمة <del class="diffchange diffchange-inline">Unix </del>أو Control-Z في نظام <del class="diffchange diffchange-inline">Windows</del>. وإن لم تنجح هذه الطريقة <del class="diffchange diffchange-inline">يمكن </del>الخروج من المفسّر <del class="diffchange diffchange-inline">عن طريقة كتابة </del>الأمر <code>quit()</code>.</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight>للخروج من المفسّر يمكن كتابة محرف نهاية الملف (end-of-file character) وذلك عن طريق الضغط على المفاتيح Control-D في أنظمة <ins class="diffchange diffchange-inline">يونكس </ins>أو Control-Z في نظام <ins class="diffchange diffchange-inline">ويندوز</ins>. وإن لم تنجح هذه الطريقة <ins class="diffchange diffchange-inline">فيمكن </ins>الخروج من المفسّر <ins class="diffchange diffchange-inline">بكتابة </ins>الأمر <code>quit()</code>.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>يمتلك مفسّر بايثون بعض الخصائص التحريرية مثل التحرير التفاعلي، <del class="diffchange diffchange-inline">والاستبدال باستخدام المعلومات السابقة </del>(history substitution) واستكمال الشيفرة في الأنظمة التي تدعم مكتبة readline. <del class="diffchange diffchange-inline">وأسرع </del>طريقة للتحقّق من توفّر خاصية التحرير في سطر الأوامر هي بالضغط على المفتاحين Ctrl+<del class="diffchange diffchange-inline">P في </del>أول سطر من المفسر، فإن أصدر جهازك صوتًا فهذا يعني أنّ خاصية التحرير في سطر الأوامر <del class="diffchange diffchange-inline">مفعّلة، </del>(راجع ملحق التحرير التفاعلي للمدخلات، <del class="diffchange diffchange-inline">واستبدال المعلومات السابقة </del>للاطلاع على قائمة بالمفاتيح المتاحة) أما إن لم يحدث شيء عند الضغط على Ctrl+P أو ظهر الرمز <code>^P</code> فهذا يعني أنّ خاصية التحرير في سطر الأوامر ليست متاحة، ولن يكون بوسعك حينئذٍ إلا أن تستخدم مفتاح backspace لحذف الحروف من السطر الحالي.</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>يمتلك مفسّر بايثون بعض الخصائص التحريرية مثل التحرير التفاعلي، <ins class="diffchange diffchange-inline">والبحث في التاريخ واستخدامه </ins>(history substitution) واستكمال الشيفرة في الأنظمة التي تدعم مكتبة readline. <ins class="diffchange diffchange-inline">أسرع </ins>طريقة للتحقّق من توفّر خاصية التحرير في سطر الأوامر هي بالضغط على المفتاحين Ctrl+<ins class="diffchange diffchange-inline">P في </ins>أول سطر من المفسر، فإن أصدر جهازك صوتًا فهذا يعني أنّ خاصية التحرير في سطر الأوامر <ins class="diffchange diffchange-inline">مفعّلة (في بعض الأنظمة قد لا يصدر صوتًا، وهذا يعتمد على الضبط الافتراضي لنظام التشغيل)، </ins>(راجع ملحق التحرير التفاعلي للمدخلات، <ins class="diffchange diffchange-inline">وتاريخ الأوامر </ins>للاطلاع على قائمة بالمفاتيح المتاحة) أما إن لم يحدث شيء عند الضغط على Ctrl+P أو ظهر الرمز <code>^P</code> فهذا يعني أنّ خاصية التحرير في سطر الأوامر ليست متاحة، ولن يكون بوسعك حينئذٍ إلا أن تستخدم مفتاح backspace لحذف الحروف من السطر الحالي.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>يشبه المفسِّر في عمله صدفة يونكس (Unix shell)، فعند استدعائه مع مدخلات اعتيادية فإنّه يقرأ الأوامر وينفّذها بصورة تفاعلية، وعند استدعائه مع اسم ملف كمعامل أو مع ملف كمدخل اعتيادي، فإنّه يقرأ الشيفرة الموجودة في ذلك الملف وينفّذها من فوره.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>يشبه المفسِّر في عمله صدفة يونكس (Unix shell)، فعند استدعائه مع مدخلات اعتيادية فإنّه يقرأ الأوامر وينفّذها بصورة تفاعلية، وعند استدعائه مع اسم ملف كمعامل أو مع ملف كمدخل اعتيادي، فإنّه يقرأ الشيفرة الموجودة في ذلك الملف وينفّذها من فوره.</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l19" >سطر 19:</td>
<td colspan="2" class="diff-lineno">سطر 19:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>هناك طريقة أخرى لتشغيل المفسِّر وهي بكتابة الأمر:<syntaxhighlight lang="shell"></div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>هناك طريقة أخرى لتشغيل المفسِّر وهي بكتابة الأمر:<syntaxhighlight lang="shell"></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>python -c command [arg] ...</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>python -c command [arg] ...</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight>والذي ينفّذ العبارة/العبارات في <code>command</code> بصورة مشابهة للخيار <code>-c</code> في صدفة يونكس. ولمّا كانت عبارات بايثون تتضمن في الغالب مسافات بيضاء وحروفًا <del class="diffchange diffchange-inline">تعتبرها </del>الصدفة <del class="diffchange diffchange-inline">حروفًا </del>خاصّة، <del class="diffchange diffchange-inline">ينصح </del>عادة بإحاطة العبارات بعلامات اقتباس مفردة.</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight>والذي ينفّذ العبارة/العبارات في <code>command</code> بصورة مشابهة للخيار <code>-c</code> في صدفة يونكس <ins class="diffchange diffchange-inline">مثل Bash</ins>. ولمّا كانت عبارات بايثون تتضمن في الغالب مسافات بيضاء وحروفًا <ins class="diffchange diffchange-inline">تعدّها </ins>الصدفة <ins class="diffchange diffchange-inline">محارف </ins>خاصّة، <ins class="diffchange diffchange-inline">فينصح </ins>عادة بإحاطة العبارات بعلامات اقتباس مفردة.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>تكون بعض وحدات بايثون مفيدة كما هو الحال مع الشيفرات، ويمكن تنفيذ هذه الوحدات باستخدام الأمر:<syntaxhighlight lang="shell"></div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>تكون بعض وحدات بايثون مفيدة كما هو الحال مع الشيفرات، ويمكن تنفيذ هذه الوحدات باستخدام الأمر:<syntaxhighlight lang="shell"></div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l30" >سطر 30:</td>
<td colspan="2" class="diff-lineno">سطر 30:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>يحوّل المفسِّر اسم الشيفرة والمعاملات الإضافية -بعد التعرف عليها- إلى قائمة من السلاسل النصية ويسندها إلى المتغير <code>argv</code> ضمن الوحدة <code>sys</code>. يمكن الوصول إلى هذه القائمة عن طريق تنفيذ الشيفرة:<syntaxhighlight lang="python3"></div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>يحوّل المفسِّر اسم الشيفرة والمعاملات الإضافية -بعد التعرف عليها- إلى قائمة من السلاسل النصية ويسندها إلى المتغير <code>argv</code> ضمن الوحدة <code>sys</code>. يمكن الوصول إلى هذه القائمة عن طريق تنفيذ الشيفرة:<syntaxhighlight lang="python3"></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>import sys</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>import sys</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight>تضمّ هذه القائمة عنصرًا واحدًا على الأقل، وذلك عند غياب الشيفرة والمعاملات، ويكون <code>sys.argv[0]</code> سلسلةً نصّية فارغة. عندما يكون اسم الشيفرة الممرّرة هو <code>'-'</code> (أي <del class="diffchange diffchange-inline">مدخلات سطر الأوامر</del>) <del class="diffchange diffchange-inline">فيأخذ </del>العنصر <code>sys.argv[0]</code> القيمة <code>'-'</code>. وعند استخدام <code>-c command</code> <del class="diffchange diffchange-inline">يأخذ </del>العنصر القيمة <code>'-c'</code> وعند استخدام <code>-m module</code> يأخذ العنصر <code>sys.argv[0]</code> الاسم الكامل للوحدة المستخدمة.</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight>تضمّ هذه القائمة عنصرًا واحدًا على الأقل، وذلك عند غياب الشيفرة والمعاملات، ويكون <code>sys.argv[0]</code> سلسلةً نصّية فارغة. عندما يكون اسم الشيفرة الممرّرة هو <code>'-'</code> (أي <ins class="diffchange diffchange-inline">أنَّ الشيفرة ستأتي من مجرى الدخل القياسي [standard input]</ins>) <ins class="diffchange diffchange-inline">فسيأخذ </ins>العنصر <code>sys.argv[0]</code> القيمة <code>'-'</code>. وعند استخدام <code>-c command</code> <ins class="diffchange diffchange-inline">فيأخذ </ins>العنصر القيمة <code>'-c'</code> وعند استخدام <code>-m module</code> يأخذ العنصر <code>sys.argv[0]</code> الاسم الكامل للوحدة المستخدمة.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>لا يتعامل مفسّر بايثون مع الوسائط الأخرى التي تأتي بعد <code>-c command</code> أو <code>-m module</code> ولكنّها تترك في المتغير <code>sys.argv</code> لتُعالج بواسطة <del class="diffchange diffchange-inline">الأمر أو الوحدة</del>.</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>لا يتعامل مفسّر بايثون مع الوسائط الأخرى التي تأتي بعد <code>-c command</code> أو <code>-m module</code> ولكنّها تترك في المتغير <code>sys.argv</code> لتُعالج بواسطة <ins class="diffchange diffchange-inline">شيفرة بايثون التي نكتبها</ins>.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== الوضع التفاعلي Interactive mode ==</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== الوضع التفاعلي Interactive mode ==</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>يكون مفسّر بايثون في الوضع التفاعلي عندما يقرأ الأوامر من الطرفية، وفي هذا الوضع يطلب المفسِّر الأمر التالي باستخدام المحث (prompt) الرئيسي والذي يكون عادة ثلاث علامات <del class="diffchange diffchange-inline">(أكبر من) </del>متتالية (<code><<<</code>)، ويستخدم المفسِّر المحث الثانوي للأسطر المتمّمة للشيفرة وهو عبارة عن ثلاث نقاط (<code>...</code>).</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>يكون مفسّر بايثون في الوضع التفاعلي عندما يقرأ الأوامر من الطرفية، وفي هذا الوضع يطلب المفسِّر الأمر التالي باستخدام المحث (prompt) الرئيسي والذي يكون عادة ثلاث علامات <ins class="diffchange diffchange-inline">«أكبر من» </ins>متتالية (<code><<<</code>)، ويستخدم المفسِّر المحث الثانوي للأسطر المتمّمة للشيفرة وهو عبارة عن ثلاث نقاط (<code>...</code>).</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>يطبع المفسّر عند الولوج إليه رسالة ترحيبية قبل طباعة المحثّ الأول، وتتضمن هذه الرسالة رقم الإصدار ومعلومات حقوق الملكية، وكما هو موضّح في المثال التالي:<syntaxhighlight lang="shell"></div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>يطبع المفسّر عند الولوج إليه رسالة ترحيبية قبل طباعة المحثّ الأول، وتتضمن هذه الرسالة رقم الإصدار ومعلومات حقوق الملكية، وكما هو موضّح في المثال التالي:<syntaxhighlight lang="shell"></div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l62" >سطر 62:</td>
<td colspan="2" class="diff-lineno">سطر 62:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>على سبيل المثال، في حال الرغبة باستخدام الترميز <code>Windows-1252</code>، يجب أن يكون السطر الأول في الشيفرة المصدرية كالآتي:<syntaxhighlight lang="python3"></div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>على سبيل المثال، في حال الرغبة باستخدام الترميز <code>Windows-1252</code>، يجب أن يكون السطر الأول في الشيفرة المصدرية كالآتي:<syntaxhighlight lang="python3"></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div># -*- coding: cp-1252 -*-</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div># -*- coding: cp-1252 -*-</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight>يجب التصريح عن الترميز المطلوب في السطر الأول من الملف حصرًا، باستثناء الشيفرات المصدرية التي تبدأ بسطر <code>"shebang"</code> الخاص بأنظمة <del class="diffchange diffchange-inline">UNIX</del>. في هذه الحالة يجب أن يكون التصريح عن الترميز المطلوب في السطر الثاني من الملف. فمثلًا:<syntaxhighlight lang="python3"></div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight>يجب التصريح عن الترميز المطلوب في السطر الأول من الملف حصرًا، باستثناء الشيفرات المصدرية التي تبدأ بسطر <code>"shebang"</code> الخاص بأنظمة <ins class="diffchange diffchange-inline">يونكس</ins>. في هذه الحالة يجب أن يكون التصريح عن الترميز المطلوب في السطر الثاني من الملف. فمثلًا:<syntaxhighlight lang="python3"></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#!/usr/bin/env python3</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#!/usr/bin/env python3</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div># -*- coding: cp-1252 -*-</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div># -*- coding: cp-1252 -*-</div></td></tr>
</table>عبد اللطيف ايمشhttps://wiki.hsoub.com/index.php?title=Python/interpreter&diff=3043&oldid=prevMohammed Taher في 22:08، 10 مارس 20182018-03-10T22:08:36Z<p></p>
<table class="diff diff-contentalign-right diff-editfont-monospace" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="ar">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">→ مراجعة أقدم</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">مراجعة 22:08، 10 مارس 2018</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1" >سطر 1:</td>
<td colspan="2" class="diff-lineno">سطر 1:</td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"><noinclude>{{DISPLAYTITLE:مفسر بايثون}}</noinclude></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== تشغيل المفسر ==</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== تشغيل المفسر ==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>عادة ما يُنصَّب مفسِّر بايثون في المسار <code>/usr/local/bin/python3.6</code>، ويؤدّي وضع هذا المسار ضمن مسار البحث الخاصّ بصدفة يونكس (Unix shell) إلى إمكانية استدعاء مفسّر بايثون عن طريق كتابة الأمر التالي في الصدفة:<syntaxhighlight lang="shell"></div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>عادة ما يُنصَّب مفسِّر بايثون في المسار <code>/usr/local/bin/python3.6</code>، ويؤدّي وضع هذا المسار ضمن مسار البحث الخاصّ بصدفة يونكس (Unix shell) إلى إمكانية استدعاء مفسّر بايثون عن طريق كتابة الأمر التالي في الصدفة:<syntaxhighlight lang="shell"></div></td></tr>
</table>Mohammed Taherhttps://wiki.hsoub.com/index.php?title=Python/interpreter&diff=3042&oldid=prevMohammed Taher: أنشأ الصفحة ب'== تشغيل المفسر == عادة ما يُنصَّب مفسِّر بايثون في المسار <code>/usr/local/bin/python3.6</code>، ويؤدّي وضع ه...'2018-03-10T22:07:50Z<p>أنشأ الصفحة ب'== تشغيل المفسر == عادة ما يُنصَّب مفسِّر بايثون في المسار <code>/usr/local/bin/python3.6</code>، ويؤدّي وضع ه...'</p>
<p><b>صفحة جديدة</b></p><div>== تشغيل المفسر ==<br />
عادة ما يُنصَّب مفسِّر بايثون في المسار <code>/usr/local/bin/python3.6</code>، ويؤدّي وضع هذا المسار ضمن مسار البحث الخاصّ بصدفة يونكس (Unix shell) إلى إمكانية استدعاء مفسّر بايثون عن طريق كتابة الأمر التالي في الصدفة:<syntaxhighlight lang="shell"><br />
python3.6<br />
</syntaxhighlight>'''ملاحظة:'''<br />
<br />
في أنظمة يونكس، لا يستخدم الاسم python افتراضيًا لاستدعاء مفسّر بايثون في الإصدارات <code>3.x</code> من اللغة، وذلك لتجنّب حدوث أي تضارب مع مفسّر الإصدارات <code>2.x</code> من اللغة.<br />
<br />
يمكن تحديد مسار مفسِّر بايثون أثناء عملية التثبيت، وعادة ما يُستخدم المسار التالي: <code>/usr/local/python</code> كمسار بديل.<br />
<br />
عادة ما يجري تنصيب بايثون في أنظمة ويندوز في المسار <code>C:\Python36</code> ولكن يمكن تغييره أثناء عملية التنصيب. ولإضافة هذا المجلد إلى مسار النظام، يمكن كتابة الأمر التالي في سطر الأوامر:<syntaxhighlight lang="powershell"><br />
set path=%path%;C:\python36<br />
</syntaxhighlight>للخروج من المفسّر يمكن كتابة محرف نهاية الملف (end-of-file character) وذلك عن طريق الضغط على المفاتيح Control-D في أنظمة Unix أو Control-Z في نظام Windows. وإن لم تنجح هذه الطريقة يمكن الخروج من المفسّر عن طريقة كتابة الأمر <code>quit()</code>.<br />
<br />
يمتلك مفسّر بايثون بعض الخصائص التحريرية مثل التحرير التفاعلي، والاستبدال باستخدام المعلومات السابقة (history substitution) واستكمال الشيفرة في الأنظمة التي تدعم مكتبة readline. وأسرع طريقة للتحقّق من توفّر خاصية التحرير في سطر الأوامر هي بالضغط على المفتاحين Ctrl+P في أول سطر من المفسر، فإن أصدر جهازك صوتًا فهذا يعني أنّ خاصية التحرير في سطر الأوامر مفعّلة، (راجع ملحق التحرير التفاعلي للمدخلات، واستبدال المعلومات السابقة للاطلاع على قائمة بالمفاتيح المتاحة) أما إن لم يحدث شيء عند الضغط على Ctrl+P أو ظهر الرمز <code>^P</code> فهذا يعني أنّ خاصية التحرير في سطر الأوامر ليست متاحة، ولن يكون بوسعك حينئذٍ إلا أن تستخدم مفتاح backspace لحذف الحروف من السطر الحالي.<br />
<br />
يشبه المفسِّر في عمله صدفة يونكس (Unix shell)، فعند استدعائه مع مدخلات اعتيادية فإنّه يقرأ الأوامر وينفّذها بصورة تفاعلية، وعند استدعائه مع اسم ملف كمعامل أو مع ملف كمدخل اعتيادي، فإنّه يقرأ الشيفرة الموجودة في ذلك الملف وينفّذها من فوره.<br />
<br />
هناك طريقة أخرى لتشغيل المفسِّر وهي بكتابة الأمر:<syntaxhighlight lang="shell"><br />
python -c command [arg] ...<br />
</syntaxhighlight>والذي ينفّذ العبارة/العبارات في <code>command</code> بصورة مشابهة للخيار <code>-c</code> في صدفة يونكس. ولمّا كانت عبارات بايثون تتضمن في الغالب مسافات بيضاء وحروفًا تعتبرها الصدفة حروفًا خاصّة، ينصح عادة بإحاطة العبارات بعلامات اقتباس مفردة.<br />
<br />
تكون بعض وحدات بايثون مفيدة كما هو الحال مع الشيفرات، ويمكن تنفيذ هذه الوحدات باستخدام الأمر:<syntaxhighlight lang="shell"><br />
python -m module [arg] ...<br />
</syntaxhighlight>والذي ينفّذ الملف المصدر التابع للوحدة وكأنّه قد استدعي عن طريق كتابة اسمه الكامل في سطر الأوامر.<br />
<br />
من المفيد في بعض الأحيان -وخصوصًا عند استخدام ملفات الشيفرة- الولوج إلى الوضع التفاعلي بعد تنفيذ الشيفرة مباشرة، ويمكن القيام بذلك عن طريق إضافة الخيار <code>-i</code> قبل اسم الشيفرة.<br />
<br />
== تمرير المعاملات ==<br />
يحوّل المفسِّر اسم الشيفرة والمعاملات الإضافية -بعد التعرف عليها- إلى قائمة من السلاسل النصية ويسندها إلى المتغير <code>argv</code> ضمن الوحدة <code>sys</code>. يمكن الوصول إلى هذه القائمة عن طريق تنفيذ الشيفرة:<syntaxhighlight lang="python3"><br />
import sys<br />
</syntaxhighlight>تضمّ هذه القائمة عنصرًا واحدًا على الأقل، وذلك عند غياب الشيفرة والمعاملات، ويكون <code>sys.argv[0]</code> سلسلةً نصّية فارغة. عندما يكون اسم الشيفرة الممرّرة هو <code>'-'</code> (أي مدخلات سطر الأوامر) فيأخذ العنصر <code>sys.argv[0]</code> القيمة <code>'-'</code>. وعند استخدام <code>-c command</code> يأخذ العنصر القيمة <code>'-c'</code> وعند استخدام <code>-m module</code> يأخذ العنصر <code>sys.argv[0]</code> الاسم الكامل للوحدة المستخدمة.<br />
<br />
لا يتعامل مفسّر بايثون مع الوسائط الأخرى التي تأتي بعد <code>-c command</code> أو <code>-m module</code> ولكنّها تترك في المتغير <code>sys.argv</code> لتُعالج بواسطة الأمر أو الوحدة.<br />
<br />
== الوضع التفاعلي Interactive mode ==<br />
يكون مفسّر بايثون في الوضع التفاعلي عندما يقرأ الأوامر من الطرفية، وفي هذا الوضع يطلب المفسِّر الأمر التالي باستخدام المحث (prompt) الرئيسي والذي يكون عادة ثلاث علامات (أكبر من) متتالية (<code><<<</code>)، ويستخدم المفسِّر المحث الثانوي للأسطر المتمّمة للشيفرة وهو عبارة عن ثلاث نقاط (<code>...</code>).<br />
<br />
يطبع المفسّر عند الولوج إليه رسالة ترحيبية قبل طباعة المحثّ الأول، وتتضمن هذه الرسالة رقم الإصدار ومعلومات حقوق الملكية، وكما هو موضّح في المثال التالي:<syntaxhighlight lang="shell"><br />
$ python3.6<br />
Python 3.6 (default, Sep 16 2015, 09:25:04)<br />
[GCC 4.8.2] on linux<br />
Type "help", "copyright", "credits" or "license" for more information.<br />
>>><br />
</syntaxhighlight>تستخدم الأسطر المتمّمة عند إدخال بنى تتكوّن من أسطر متعددة، مثل عبارة <code>[[Python/if|if]]</code> التالية:<syntaxhighlight lang="python3"><br />
>>> the_world_is_flat = True<br />
>>> if the_world_is_flat:<br />
... print("Be careful not to fall off!")<br />
...<br />
Be careful not to fall off!<br />
</syntaxhighlight>للاطلاع على الوضع التفاعلي بصورة أكبر راجع [[Python/interactive-mode|الوضع التفاعلي]].<br />
<br />
== المفسّر وبيئته الخاصة ==<br />
<br />
=== ترميز الشيفرة المصدرية ===<br />
تُعامل الملفات المصدرية في بايثون على أنّها مرمّزة بالترميز <code>UTF-8</code>، وبهذا يمكن استخدام الحروف التابعة لمعظم اللغات العالمية في الوقت نفسه ضمن السلاسل النصية والمعرّفات والتعليقات، ولكن المكتبة القياسية تستخدم الترميز ASCII للمعرفات، وهو أمر متّفق عليه في الشيفرات المحمولة (portable). ولعرض جميع المحارف بصورة صحيحة يجب أن يتعرّف محرر النصوص على ترميز الملف ويجب استخدام خطّ يدعم جميع المحارف الموجودة في الملف.<br />
<br />
يمكن تغيير الترميز الافتراضي للملف وذلك من خلال التصريح عن الترميز المطلوب على هيئة تعليق خاص يوضع في بداية الملف، ويكون بالصيغة التالية:<syntaxhighlight lang="python"><br />
# -*- coding: encoding -*-<br />
</syntaxhighlight>وتعني <code>encoding</code> هنا الترميزات المدعومة من قبل بايثون.<br />
<br />
على سبيل المثال، في حال الرغبة باستخدام الترميز <code>Windows-1252</code>، يجب أن يكون السطر الأول في الشيفرة المصدرية كالآتي:<syntaxhighlight lang="python3"><br />
# -*- coding: cp-1252 -*-<br />
</syntaxhighlight>يجب التصريح عن الترميز المطلوب في السطر الأول من الملف حصرًا، باستثناء الشيفرات المصدرية التي تبدأ بسطر <code>"shebang"</code> الخاص بأنظمة UNIX. في هذه الحالة يجب أن يكون التصريح عن الترميز المطلوب في السطر الثاني من الملف. فمثلًا:<syntaxhighlight lang="python3"><br />
#!/usr/bin/env python3<br />
# -*- coding: cp-1252 -*-<br />
</syntaxhighlight><br />
<br />
== مصادر ==<br />
* صفحة [https://docs.python.org/3/tutorial/interpreter.html Using the Python Interpreter] في توثيق Python الرسمي.<br />
<br />
[[تصنيف:Python]]</div>Mohammed Taher