كيف يعمل برنامج Python
برنامج Python هو ملف نصي يتكوّن من عبارات. تقرؤه Python من الأعلى إلى الأسفل وتنفّذ عبارة واحدة في كل مرة دون أي شيفرة إضافية: الملف main.py هو البرنامج. اضغط Run أو اكتب python main.py في الطرفية.
bid = 184.25
ask = 184.50
print(ask - bid) # 0.25العبارات والتعبيرات
التعبير ينتج قيمة، مثل ask - bid أو 2 * 3. أما العبارة فتنفّذ شيئًا، مثل bid = 184.25 أو print(bid). تأخذ كل عبارة سطرها الخاص، ونهاية السطر تنهي العبارة دون فاصلة منقوطة. وإذا طالت العبارة فضعها بين قوسين وأكملها في الأسطر التالية.
total_cost = (
price * quantity
+ commission
+ exchange_fee
)التعليقات وdocstrings
كل ما يلي # حتى نهاية السطر هو تعليق تتجاهله Python. استخدم التعليقات لتوضيح سبب فعل الشيفرة لشيء ما، لا لتكرار ما تفعله. والنص بين علامات اقتباس ثلاثية في بداية ملف أو دالة هو docstring، أي الوصف الرسمي الذي تعرضه الأدوات وhelp().
# Mid price: the fair value halfway between bid and ask.
mid = (bid + ask) / 2 # average of the two quotesالمسافة البادئة جزء من الصيغة
حيث تستخدم لغات أخرى الأقواس المعقوفة، تستخدم Python المسافة البادئة. السطر الذي ينتهي بنقطتين رأسيتين يفتح كتلة، والكتلة هي الأسطر المزاحة تحته. استخدم أربع مسافات للإزاحة ولا تخلط بين علامات الجدولة والمسافات. والشيفرة الملاصقة للهامش الأيسر هي شيفرة المستوى الأعلى.
def spread(bid, ask):
# both lines below are the block: indented by four spaces
width = ask - bid
return width
print(spread(184.25, 184.50)) # back at the left margin: 0.25IndentationError، وعن نسيان النقطتين الرأسيتين SyntaxError. تتوقف Python قبل تنفيذ أي شيء، فاقرأ رقم السطر في الرسالة أولًا. اضبط محررك ليُدرج مسافات عند الضغط على Tab.المتغيرات والإسناد
الاسم = القيمة تربط اسمًا بقيمة. تعني علامة = الإسناد وليس المساواة: تحسب Python الطرف الأيمن أولًا ثم تربط الاسم بالناتج. الأسماء حساسة لحالة الأحرف، ويمكن أن تحتوي على حروف وأرقام وشرطات سفلية، ولا يجوز أن تبدأ برقم أو أن تكون كلمة محجوزة مثل if أو for. وأسلوب Python هو snake_case مثل last_price.
price = 184.25
quantity = 200
notional = price * quantity
price = 185.00 # rebinds price; notional is unchanged
quantity += 50 # shorthand for quantity = quantity + 50
print(notional) # 36850.0العمليات الحسابية وأسبقية العوامل
+و-و*للجمع والطرح والضرب./قسمة حقيقية وتعطي دائمًا نتيجة عشرية:7 / 2تساوي3.5.//تقسم وتقرّب للأسفل، و%تعطي الباقي:7 // 2تساوي3و7 % 2تساوي1.**للرفع إلى قوة:1.05 ** 10تركّب 5٪ عشر مرات.
تتبع Python ترتيب العمليات في الرياضيات: ** أولًا ثم * و/ ثم + و-. لذا فإن 2 + 3 * 4 تساوي 14 بينما (2 + 3) * 4 تساوي 20. وعند الشك أضف أقواسًا فهي بلا كلفة وتوضّح القصد. والشرطات السفلية داخل الأرقام مثل 10_000 تُتجاهل وتجعل الأعداد الكبيرة مقروءة.
spread = ask - bid # 0.25
mid = (bid + ask) / 2 # 184.375
spread_bps = spread / mid * 10_000 # the spread in basis pointsعرض النتائج باستخدام print
تكتب print() القيم في الطرفية مفصولة بمسافات. النص بين علامات الاقتباس هو سلسلة نصية، وستتناول المواضيع التالية السلاسل والأرقام بالتفصيل. حاليًا، print هي وسيلتك للنظر داخل برنامجك: اطبع قيمة وتحقق منها يدويًا ثم تابع.
print("bid", bid, "ask", ask)
print("mid", mid)في المختبر ستكتب صيغًا صغيرة للأسعار باستخدام ما في هذه الصفحة فقط: الإسناد والعمليات الحسابية والأقواس. والدرس التالي: كيف تخزّن Python الأرقام، ولماذا لا تساوي 0.1 + 0.2 القيمة 0.3 تمامًا.
المختبر: ما الذي يُقيَّم
- احسب قيمة المركز باستخدام
notional25 نقطة - أوجد السعر المتوسط باستخدام
midpoint25 نقطة - قِس فارق العرض والطلب باستخدام
spread25 نقطة - عبّر عن الفارق بنقاط الأساس باستخدام
spread_bps25 نقطة