البرمجة

تحسين كود تحويل العملات باستخدام Python

في هذا الكود، يظهر أنك تحاول تحويل النص “price[0]” إلى رقم عشري باستخدام السطر:

python
realprice = float("price[0]")

الخطأ الذي تواجهه هو ValueError: could not convert string to float: price[0]، حيث أن “price[0]” هو نص وليس قيمة فعلية. لحل هذه المشكلة، يجب عليك استخدام قيمة السعر المسترجعة من موقع Yahoo Finance بدلاً من نص “price[0]”.

في الجزء السابق من الكود، قمت بطباعة قيمة السعر باستخدام:

python
print "the price of", stocklist[i],"is" ,price[0]

لذا، يمكنك استخدام هذه القيمة مباشرة في عملية التحويل إلى رقم عشري، كما يلي:

python
realprice = float(price[0])

بعد هذا التعديل، يجب أن يتم تحويل السعر بنجاح إلى قيمة عددية، ولن يظهر الخطأ السابق.

وبخصوص تحويل العملة، يمكنك استخدام القيمة المحولة في عمليات الضرب بالطريقة التي تم تنفيذها في الكود. يمكنك أيضاً إجراء بعض التعديلات الإضافية لتحسين الكود، مثل استخدام دوال تحويل العملة بشكل أفضل.

المزيد من المعلومات

بالطبع، دعونا نقوم بتوضيح بعض النقاط الإضافية لتعزيز فهم الكود وتحسين أدائه:

  1. إدارة الاستثناءات:
    يمكن أن تكون هناك حالات تحدث استثناءات أثناء تنفيذ البرنامج، مثل عدم القدرة على الاتصال بخادم Yahoo Finance أو تغيير في تنسيق صفحة الويب. يمكنك استخدام كتلة try-except للتعامل مع هذه الحالات وتوفير رسائل خطأ أكثر وضوحًا.

    python
    try: # ... الكود الحالي ... except Exception as e: print(f"حدث خطأ: {e}")
  2. تحسين استخدام الحلقات:
    بدلاً من استخدام حلقة while للتكرار عبر قائمة العملات، يمكنك استخدام حلقة for لتحسين قراءة الرموز.

    python
    for currency_code in stocklist: url = f"http://finance.yahoo.com/q?s={currency_code}=X" # ... الكود الحالي ...
  3. تنظيم الكود:
    يفضل تنظيم الكود بطريقة تجعله أكثر قراءة وفهمًا. يمكنك تقسيم الكود إلى وحدات ووظائف لتحقيق هيكلية أفضل.

    python
    def get_exchange_rate(currency_code): # ... الكود الحالي لاسترجاع سعر الصرف ... def convert_currency(amount, exchange_rate): # ... الكود الحالي لتحويل العملة ... # الشيفرة الرئيسية for currency_code in stocklist: exchange_rate = get_exchange_rate(currency_code) print(f"The exchange rate for {currency_code} is {exchange_rate}") # ... الشيفرة الحالية لتحويل العملة ...
  4. التعامل مع إدخال المستخدم:
    يمكنك تحسين رسائل الطلب من المستخدم لتكون أكثر وضوحًا واحترافية، وكذلك استخدام دوال float بدلاً من int للسماح بإدخال الأرقام العشرية.

    python
    ex = input("Select conversion direction (A-Euro to Dollars, B-Dollars to Euro): ") amount = float(input("Enter the amount to convert: "))
  5. تحسين تنسيق الناتج:
    يمكنك تحسين تنسيق الناتج ليكون أكثر دقة ووضوحًا، مع الاهتمام بالتحكم في عدد الأرقام العشرية.

    python
    print(f"The converted amount is ${converted_amount:.2f}")

باستخدام هذه التحسينات، يمكنك تجنب الأخطاء المحتملة وتحسين فهم الكود وصيانته في المستقبل.

زر الذهاب إلى الأعلى