• 0

عرض القيمة النهائية للمتغير total في لغة Python

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

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

 

 

Total: $xx.xx

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

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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 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)

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 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

يقول 

bad input

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

كيف يعني

 

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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

@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

م صار معي 

بتاريخ 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

بهذه الطريقة ولاكن يوجد خطأ؟؟5e8e1db87c612___mfnr.thumb.jpg.d939d92b7208a0a92d3831bf84118dda.jpg

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0
بتاريخ 19 ساعات قال Mohammed Ahmed13:

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


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


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

تحياتي لك.

لا زال هناك خطأ

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0
بتاريخ 2 ساعات قال مرام النعمانية:

لا زال هناك خطأ

هل يمكنك تزويدي بصورة للخطأ هذه المرة رجاءً؟

شكراً لتعاونك

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • -1
بتاريخ الآن قال Anfal Alrahbi:

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

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

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


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

تحياتي لك.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن