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

Recommended Posts

  • 0
نشر

إن str هو اختصار ل string و التي هي النمط الخاص بالسلاسل النصية في لغة بايثون.

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

  • 0
نشر

الكلمة str في بايثون هي إختصار لـ "string" وهي تستخدم لتحويل قيمة إلى نص (سلسلة من الأحرف)، ونستخدم str لتحويل قيمة رقمية إلى نص قبل طباعتها.

أي نستخدم str(number) لتحويل الرقم الذي تم إدخاله باستخدام دالة input إلى نص، بحيث يمكن دمجه مع نصوص أخرى دون أي مشاكل. الهدف هو طباعة جداول ضرب للعدد الذي تم إدخاله، وضرب هذا العدد في الأعداد من 0 إلى 3 وطباعة النتائج.

فإذا أدخلت الرقم 5، سيكون الإخراج مشابهًا للتالي:

Enter a number: 5
5 * 0 = 0
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15

وبالتالي، str هنا يساعد في تحويل الأرقام إلى نصوص لكي تكون جزءًا من الجمل المطبوعة.

وهناك طرق أخرى لتحقيق نفس الغرض دون استخدام الدالة str، فبإمكانك استخدام تنسيق النصوص باستخدام عبارات التنسيق (f-strings) أو استخدام دالة format لتحقيق ذلك.

وإليك مثالان باستخدام الـ f-strings ودالة format:

استخدام f-strings:

number = int(input('Enter a number: '))

print(f'{number} * 0 = {number * 0}')
print(f'{number} * 1 = {number * 1}')
print(f'{number} * 2 = {number * 2}')
print(f'{number} * 3 = {number * 3}')

استخدام دالة format:

number = int(input('Enter a number: '))

print('{} * 0 = {}'.format(number, number * 0))
print('{} * 1 = {}'.format(number, number * 1))
print('{} * 2 = {}'.format(number, number * 2))
print('{} * 3 = {}'.format(number, number * 3))

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

  • 0
نشر

بالإضافة للقيم التي يتم تحويلها إلى سلسلة نصية، تقوم وظيفة str() أيضًا بأخذ معاملين إضافيين. هنا هي جميع المعاملات التي تأخذها:

  • الكائن (object): البيانات التي ترغب في تحويلها إلى سلسلة نصية. إنه معامل إجباري. إذا لم تقدم الكائن، فإن str() ستعيد سلسلة نصية فارغة كنتيجة.
  • الترميز (encoding): ترميز البيانات المراد تحويلها. عادةً ما يكون UTF-8. الافتراضي هو UTF-8 نفسه.
  • الأخطاء (errors): يحدد ما يجب فعله إذا فشل الترميز. القيم التي يمكنك استخدامها لهذا المعامل تشمل strict و ignore و replace وغيرها.

الصيغة الأساسية لوظيفة str():
يجب فصل كل من المعاملات في وظيفة str() بفاصلة، وقيم كل من الترميز والأخطاء يجب أن تكون سلاسل نصية:

str(الكائن_للتحويل, encoding='الترميز', errors='الأخطاء')

كيفية استخدام وظيفة str():
أولاً، دعنا نرى كيفية استخدام جميع معاملات وظيفة str():

my_num = 45
converted_my_num = str(my_num, encoding='utf-8', errors='errors')
print(converted_my_num)

إذا قمت بتشغيل الشيفرة، ستحصل على هذا الخطأ:

TypeError: decoding to str: need a bytes-like object, int found

يحدث هذا الخطأ لأنك تستخدم معامل الترميز دون تقديم كائن بايتس. في هذه الحالة، لا تحتاج إلى الترميز والأخطاء على الإطلاق. تحتاج فقط إلى العدد الذي ترغب في تحويله:

استخدام معاملات الترميز والأخطاء، فيجب أن يكون الكائن المراد تحويله كائن بايتس:

my_num = b'45'
converted_my_num = str(my_num, encoding='utf-8', errors='strict')
print(converted_my_num) # 45

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...