بايثون (لغة برمجة)
النحو (بناء اللغة) والدلالات > العبارات البرمجية والتحكم بالتدفق

تتضمن عبارات بايثون البرمجية (من بين أمور أخرى):
عبارة مساواة (تستخدم إشارة المساواة =) تعمل بشكل مختلف عن بقية لغات البرمجة الأمرية وهذه الآلية الأساسية التي تتضمن «طبيعة إصدارات بايثون الخاصة بالمتغيرات» تنير الطريق للعديد من ميزات اللغة الأخرى. نأخذ مثالاً عن المساواة في لغة سي: x = 2، يُترجم إلى «اسم المتغير المكتوب x يتلقى نسخة من القيمة العددية 2». تنسخ القيمة (اليمنى) في موقع تخزين مخصص بحيث يكون اسم المتغير (الأيسر) هو العنوان الرمزي. الذاكرة المخصصة للمتغير كبيرة بما يكفي (من المحتمل أن تكون كبيرة جدًا) للنوع المعرّف. في أبسط حالة لإسناد بايثون (assignment)، وإذا قمنا بنفس العملية في بايثون (أي x = 2)، فإنه يُترجم إلى «اسم (generic عام) x يستقبل مرجعًا لكائن منفصل مُخصص ديناميكيًا نوعه العددي (int عدد صحيح) قيمته 2». هذا يسمى ربط الاسم بالكائن (binding). نظرًا لأن موقع تخزين الاسم لا يحتوي على القيمة المشار إليها، فمن غير المناسب تسميته متغيرًا. قد يتم إعادة الأسماء لاحقًا في أي وقت إلى كائنات من أنواع مختلفة اختلافًا كبيرًا، بما في ذلك السلاسل النصية strings والإجراءات والكائنات المعقدة مع البيانات والطرق، وغير ذلك. التعيينات (مساواة) المتتالية لقيمة مشتركة لأسماء متعددة، على سبيل المثال، x = 2؛ y = 2؛ z = 2 ينتج عن تخصيص مساحة تخزين (على الأكثر) لثلاثة أسماء وكائن عددي واحد، يتم ربط جميع الأسماء الثلاثة به. نظرًا لأن الاسم هو حامل مرجع عام (generic reference holder)، فمن غير المعقول ربط نوع بيانات ثابت به. ومع ذلك، في وقت معين، سيتم ربط الاسم بكائن ما، والذي سيكون له نوع؛ وبالتالي هناك كتابة ديناميكية.
العبارة إذا if، التي تنفذ مجموعة الكود بشكل مشروط (أي لا ينجز إلا إذا توفّر هذا الشرط)، وتستخدم مع عبارة عدا ذلك else وelif اختصاراً لعبارة (عدا ذلك إذا else-if).
العبارة من أجل for، التي تتكرر فوق كائن قابل للتكرار بشكل حلقي، حيث تلتقط كل عنصر في متغير محلي لاستخدامه بواسطة مجموعة الكود البرمجي المرفقة.
العبارة طالما while، التي تنفذ مجموعة الكود البرمجية طالما تحقق الشرط.
العبارة جرّب try، التي تسمح بالتعامل مع الاستثناءات المرفوعة في مجموعة الكود المرفق والتعامل معها باستثناء except البنود؛ يضمن أيضًا تشغيل كود التنظيف في مجموعة الكود البرمجية الأخيرة دائمًا بغض النظر عن كيفية خروج الكتلة.
العبارة رفع raise تستخدم لرفع استثناء محدد أو إعادة رفع استثناء تم اكتشافه.
العبارة صنف class، التي تقوم بتنفيذ مجموعة من الكود وتربط مساحة الاسم المحلية الخاصة بها بصنف، لاستخدامها في البرمجة كائنية التوجه.
العبارة تعريف def، التي تُعرّف دالة أو طريقة.
العبارة مع with، من بايثون2.5 التي صدرت في سبتمبر 2006 ، والتي ترفق كتلة الكود داخل مدير السياق (على سبيل المثال، الحصول على قفل قبل تشغيل كتلة الكود وإطلاق القفل بعد ذلك، أو فتح ملف ثم إغلاقه)، والسماح لاكتساب الموارد الذي هو سلوك يشبه التهيئة (RAII) ويحل محل العبارة الاصطلاحية محاولة/أخيراً try/finally.
العبارة توقف break تعني أخرج من الحلقة.
العبارة تابع continue تتجاوز التكرارية الحالية وتتابع للعنصر التالي.
العبارة تجاوز pass، والتي تُستخدم في حالة «لا عملية». تُستعمل عند الحاجة لإنشاء كتلة كود فارغة.
العبارة تأكيد assert، المستخدمة أثناء تصحيح الأخطاء للتحقق من الشروط التي يجب تطبيقها.
العبارة تحصيل yield تعيد قيمة من الدالة المولّدة. بدءاً من بايثون 2.5،yield هي أيضاً عملية. هذا الشكل يستخدم عادةً لتنفيذ الروتينات المساعدة.
العبارة استيراد import، وتستخدم لاستيراد نماذج يمكن استخدام دوالها ومتغيراتها في البرنامج الحالي. يوجد ثلاث طرق لاستخدام العبارة استيراد import:
import <module name> [as <alias>]
from <module name> import *
from <module name> import <definition 1> [as <alias 1>], <definition 2> [as <alias 2>],....
العبارة اطبع print والتي تغيرت إلى دالة اطبع()print في بايثون 3.
بايثون لا تدعم التحسين الخاص الاستدعاء الذيلي أو (استمرارية الدرجة الأولى)، كما أعلن غايدو فان روسم أنه لن تدعم أبداً. ومع ذلك، يتوفر دعم أفضل للوظائف الشبيهة بالروتين المساعد في النسخة 2.5، من خلال توسيع مولدات بايثون. قبل نسخة 2.5، كانت المولدات مكررات كسولة، والتي يتم تمرير المعلومات من اتجاه واحد خارج المولد. ابتداءً من بايثون 2.5، صار من الممكن تمرير المعلومات مرة أخرى إلى دالة المولد، وبدءاً من بايثون 3.3، صار من الممكن أيضا تمرير المعلومات من خلال تعدد مستويات المكدس.