اذهب إلى المحتوى

السؤال

نشر

قم بعرض القيمة النهائية للمتغير total بعد انتهاء الحلقة

بمجرد انتهاء دوران حلقة for ، يجب أن تكون القيمة النهائية كمبلغ بالدولار. بحيث يبدو الناتج كما يلي:

 

 

Total: $xx.xx

حيث يتم استبدال xx.xx بالقيمة الفعلية للمتغير total وذلك باستخدام الأمر format() كما فعلنا سابقاً.

حاولت فيه بس تطلع البرمجة خطأ

Recommended Posts

  • 0
نشر (معدل)

مرحباً بك @Anfal Alrahbi.

يمكن إيجاد المطلوب كالآتي:

import math

total = 123.23

# الدالة هذه تعطينا العدد الكلي والعشري منفصلين
frac, whole = math.modf(total)

# نقوم بضرب العدد العشري ب 100 حتى نحصل على رقمين بعد العلامة العشرية
frac = round(frac*100) 

total_formatted = "${}.{}".format(int(whole), int(frac) if frac > 10 else '0'+ str(int(frac)))

print(total_formatted)

>>> '$123.23'

تحياتي لك.

تم التعديل في بواسطة Mohammed Ahmed13
  • 1
نشر

ستقوم بإنشاء قاموس يحتوي على تفاصيل لائحة التسوق لشخص ما. أنت بحاجة إلى إنشاء قاموس باسم order مع تخزين المعلومات التالية فيه:

juice: 2

bread: 3

apples: 10

oranges: 6

cake: 3

هذه هي المواد التي اختارها المتسوق وعدد المواد التي قام بشرائها عند زيارة أحد المتاجر.

يوجد قاموس آخر بنفس المفاتيح يسمى prices تم إنشاؤه مسبقاً. تحتاج إلى تكرار الدوران في القواميس في نفس الوقت لتقوم بحساب الفاتورة النهائية.

1/

قم بإنشاء قاموس باسم order مع تخزين التفاصيل الواردة في الأعلى بداخله.

قم بإنشاء متغير باسم total وقم بتعيين قيمته إلى 0.0 كبداية.

2/

م باستخدام حلقة for لتكرار الدوران على المفاتيح الموجودة في القاموس order ، وقم بتسمية متغير الحلقة key. (for key in order:)

في الجزء الرئيسي من حلقة for ، قم بضرب قيمة البيانات من قاموس لائحة التسوق order في البيانات المكافئة لها من قاموس الأسعار prices، ثم أضفها إلى الإجمالي الحالي المخزن في المتغير total لتحديثه وتعيينه مرة أخرى إلى المتغير total.

العملية الحسابية التي ستقوم بها للإضافة إلى الحساب الإجمالي total في كل مرة هي:order[key] * prices[key]

3/

انتهاء الحلقة

بمجرد انتهاء دوران حلقة for ، يجب أن تكون القيمة النهائية كمبلغ بالدولار. بحيث يبدو الناتج كما يلي:

 

 

Total: $xx.xx

حيث يتم استبدال xx.xx بالقيمة الفعلية للمتغير total وذلك باستخدام الأمر format() كما فعلنا سابقاً.

 

البرمجة التي قمت بها كالاتي ولاكنها غير صحيحة اين الخطأ

order = {"juice": 2, "bread": 3, "apples": 10,"oranges": 6,"cake": 3}
prices = {"juice": 2, "bread": 2, "apples": 2,"oranges": 2,"cake": 2}
total = 0.0
for key in order:
 total += order[key] * prices[key]
print(total)

total_formatted = "${}.{}".format(int(whole), int(frac) if frac > 0 else '00')

print(total_formatted)

  • -1
نشر
بتاريخ الآن قال Anfal Alrahbi:

البرمجة التي قمت بها كالاتي ولاكنها غير صحيحة اين الخطأ

يجب عليك اضافة السطور الآتية:

# في أعلى الكود
import math


# قبل طباعة السعر بالشكل المطلوب
frac, whole = math.modf(total)
frac *= 100 

تحياتي لك.

  • 0
نشر

بهذه الطريقة

frac, whole = math.modf(total)
frac *= 100 
import math

def hypotenuse(a,b):
 return math.sqrt(a**2 + b**2)


print(hypotenuse(3,4))
# >>> 5.0
print(hypotenuse(5,12))
# >>> 13.0

هل يمكنك ارسال البرمجة الصحيحة الانني لم افهمك

بتاريخ الآن قال Anfal Alrahbi:

بهذه الطريقة

frac, whole = math.modf(total)
frac *= 100 
import math

def hypotenuse(a,b):
 return math.sqrt(a**2 + b**2)


print(hypotenuse(3,4))
# >>> 5.0
print(hypotenuse(5,12))
# >>> 13.0

لو سمحت

  • 0
نشر

م صار معي 

بتاريخ 2 دقائق مضت قال Anfal Alrahbi:

كيف يعني

 

نتيه عرفتي تحليه

لا نفسك طابقه فيه وما طاع يستوي

بتاريخ 1 دقيقة مضت قال Mohammed Ahmed13:

@Anfal Alrahbiمعذرة الكود بالأعلى كان به مشاكل صغيرة وتم تصحيحها.

الحل كالآتي:


import math

total = 123.12

frac, whole = math.modf(total)
frac = round(frac*100) 

total_formatted = "${}.{}".format(int(whole), int(frac) if frac > 10 else '0'+ str(int(frac)))

print(total_formatted)

شكراً لتفهمك.

 امبورت ماث نسوي فوق أول وحدة ؟

  • 0
نشر

 

بتاريخ الآن قال مرام النعمانية:

 امبورت ماث نسوي فوق أول وحدة ؟

نعم لا بد من عمل استيراد لمكتبة math من أجل حساب الأرقام العشرية.

اذا واجهتك مشاكل في تصحيح الكود الرجاء عمل تصوير للشاشة وإرفاقها هنا.

شكراً لك

  • 0
نشر
بتاريخ الآن قال مرام النعمانية:

5e8e1582cdceb__.thumb.jpg.a321e1db59435d6660d7c93780b04362.jpg

ما الخطأ ؟

 

يبدو أن البرنامج لا يستطيع التوصل إلى الدالة modf داخل math

الرجاء تعديل أول سطر كالآتي:

from math import modf

ومن ثم السطر رقم 11 إلى:

frac, whole = modf(total)

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

الرجاء تطبيق الخطوات ومن ثم تبليغي إذا ما زال الخطأ مستمراً.

  • 0
نشر (معدل)

@Anfal Alrahbi، @مرام النعمانية

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

frac = round((total % 1) * 100)

total_formatted = "${}.{}".format(int(total), frac if frac >= 10 else '0' + str(frac))

print(total_formatted)

 

تحياتي لكما.

تم التعديل في بواسطة Mohammed Ahmed13

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...