تنسيق السلاسل النصية#

مقدمة#

الطريقة المُوصى بها لتنسيق النصوص والأرقام في بايثون هي استخدام سلاسل f. فهي تسمح بتضمين المتغيرات والتعبيرات واستدعاءات الدوال مباشرةً داخل {}.

لإنشاء سلسلة f، أضف f قبل السلسلة، وضع أي متغير أو تعبير أو استدعاء دالة داخل {}.

x = 1
y = 5

# Display the variables using an f-string
controller.screen.print(f"Position: ({x}, {y})")

# Display a calculation with an f-string
controller.screen.print(f"Sum: {5 + 3}")

# Display the robot's battery capacity with an f-string
controller.screen.print(f"Battery: {controller.get_battery_level()}%")

سلاسل f-strings – تضمين المتغيرات والتعبيرات مباشرة في النص.

  • f”{value}” – يعرض المتغيرات أو التعبيرات أو استدعاءات الدوال داخل سلسلة نصية.

تنسيق الأرقام في سلاسل f-strings – التحكم في كيفية ظهور القيم الرقمية.

  • :.xf – يحدد عدد المنازل العشرية المراد عرضها.

  • round – يقوم بتقريب رقم إلى عدد معين من المنازل العشرية.

  • :, – يضيف الفواصل كفاصل للآلاف.

  • :.x% – يحول العدد العشري إلى نسبة مئوية مع x منزلة عشرية.

  • :#x – يقوم بتنسيق رقم كنظام سداسي عشري.

  • :b – يقوم بتنسيق رقم كرقم ثنائي.

دمج النصوص – دمج النصوص والقيم.

  • f”{value}” – دمج السلاسل والمتغيرات في تعبير واحد.

  • + operator – دمج السلاسل يدويًا مع تحويل النوع الاختياري.

طرق التعامل مع السلاسل النصية – تغيير حالة الأحرف في النص.

  • upper – يحول جميع الأحرف إلى أحرف كبيرة.

  • lower – يحول جميع الأحرف إلى أحرف صغيرة.

فحص السلاسل الفرعية – اختبار وجود النص أو موضعه.

  • in – يتحقق مما إذا كانت كلمة ما موجودة في سلسلة نصية.

  • startswith – يتحقق مما إذا كانت السلسلة تبدأ بقيمة معينة.

  • endswith – يتحقق مما إذا كانت السلسلة تنتهي بقيمة معينة.

تسلسلات الهروب – تنسيق الإخراج باستخدام الأحرف الخاصة.

  • \n – يضيف فاصل أسطر (سطر جديد).

  • \t – يضيف مسافة جدولة بين العناصر.

تنسيق الأرقام في سلاسل f#

تتيح سلاسل f التحكم الدقيق في المنازل العشرية والتقريب وفواصل الآلاف والمزيد باستخدام محددات التنسيق التالية:

Fixed Decimal Places#

.xf يتحكم في عدد المنازل العشرية التي يتم عرض الرقم بها.

Usage:
.xf

حدود

وصف

x

عدد المنازل العشرية المطلوب عرضها.

# Display pi with 2 decimal places
pi = 3.1415926535
controller.screen.print(f"Pi: {pi:.2f}")

# Output: Pi: 3.14

Rounding Numbers#

round rounds numbers outside of an f-string or inside of the {}.

Usage:
round(number, x)

حدود

وصف

number

الرقم المراد تقريبه.

x

عدد المنازل العشرية التي يتم التقريب إليها.

# Display a value rounded to only 2 decimal places
value = 5.6789
controller.screen.print(f"{round(value, 2)}")

# Output: 5.68

Thousands Separator#

يقوم الرمز , بإدخال الفواصل كفاصل للآلاف لجعل الأرقام الكبيرة أكثر قابلية للقراءة.

Usage:
,

حدود

وصف

لا يحتوي مُحدد التنسيق هذا على أي معلمات.

# Display a large number separated with commas
number = 1234567
controller.screen.print(f"{number:,}")

# Output: 1,234,567

Percentage#

.x% يقوم بتنسيق القيم العشرية كنسب مئوية.

Usage:
.x%

حدود

وصف

x

عدد المنازل العشرية المطلوب عرضها.

# Display a converted decimal to a percentage
value = 0.875

controller.screen.print(f"{value:.1%}")

# Output: 87.5%

Hexadecimal#

.#x يحول الأرقام إلى النظام الست عشري.

Usage:
.#x

حدود

وصف

لا يحتوي مُحدد التنسيق هذا على أي معلمات.

# Convert 255 to hexadecimal
number = 255

controller.screen.print(f"{number:#x}")

# Output: 0xff

Binary#

b يحول الأرقام إلى النظام الثنائي (الأساس 2).

Usage:
b

حدود

وصف

لا يحتوي مُحدد التنسيق هذا على أي معلمات.

# Convert 3 to binary
controller.screen.print(f"Binary: {3:b}")

# Output: Binary: 11

دمج الأوتار#

يمكنك دمج (أو ربط) السلاسل النصية باستخدام طريقتين:

Using f-strings#

باستخدام سلاسل f، يمكنك تضمين المتغيرات مباشرة داخل {}.

# Display an answer based on the given emotion
emotion = "good"

controller.screen.print(f"I'm {emotion}, you?")

+ Operator#

يمكنك دمج السلاسل يدويًا باستخدام عامل التشغيل +.

ملاحظة: يجب أولاً تحويل القيم غير النصية إلى سلاسل نصية باستخدام الدالة str().

# Display the x and y values
x = 10
y = 20

controller.screen.print("X: " + str(x) + ", Y: " + str(y))

طرق السلاسل النصية#

توفر لغة بايثون طرقًا مدمجة لتعديل السلاسل النصية والتحقق منها.

upper#

upper يحول جميع الأحرف في السلسلة إلى أحرف كبيرة.

Usage:
upper()

حدود

وصف

لا تحتوي هذه الطريقة على أي معلمات.

# Display a message in uppercase
message = "vexcode"

controller.screen.print(message.upper())

# Output: VEXCODE

lower#

lower يحول جميع الأحرف في السلسلة إلى أحرف صغيرة.

Usage:
lower()

حدود

وصف

لا تحتوي هذه الطريقة على أي معلمات.

# Display a message in lowercase
message = "VEXCODE"

controller.screen.print(message.lower())

# Output: vexcode

التحقق من السلاسل الفرعية#

in#

in هي كلمة مفتاحية تُرجع قيمة منطقية تشير إلى ما إذا كانت سلسلة فرعية (كلمة أو جزء من النص) موجودة في سلسلة نصية.

  • True – الكلمة موجودة في السلسلة.

  • False – الكلمة غير موجودة في السلسلة.

# Display a message if "Hey" is in the string
message = "Hey everyone!"

if "Hey" in message:
    controller.screen.print("Hello!")

startswith#

startswith تُرجع قيمة منطقية تشير إلى ما إذا كانت السلسلة تبدأ بقيمة معينة.

  • True - الكلمة تبدأ السلسلة.

  • False – الكلمة لا تبدأ السلسلة.

Usage:
startswith(substring)

حدود

وصف

substring

السلسلة الفرعية التي يجب التحقق منها في بداية السلسلة.

# Display a message if the string starts with "AIR"
message = "AIR Drone"

if message.startswith("AIR"):
    controller.screen.print("AIR first!")

endswith#

endswith تُرجع قيمة منطقية تشير إلى ما إذا كانت السلسلة تنتهي بقيمة معينة.

  • True – الكلمة تنهي السلسلة.

  • False – الكلمة لا تُنهي السلسلة.

Usage:
endswith(substring)

حدود

وصف

substring

السلسلة الفرعية التي يجب التحقق منها في نهاية السلسلة.

# Display a message if the string ends with "Drone"
message = "AIR Drone"

if message.endswith("Drone"):
    controller.screen.print("Drone last!")

تسلسلات الهروب#

تُستخدم رموز الهروب كأحرف خاصة داخل السلاسل النصية لتنسيق مخرجات النصوص. وهي متاحة فقط للاستخدام مع Console.

New Line#

\n ينقل النص إلى سطر جديد عند الطباعة.

# Display text on two lines
print("First line\nSecond line")

Tab Spacing#

\t يُدرج مسافة جدولة بين الكلمات أو الأرقام.

# Display the quantity of barrels
quantity = 2
print("IDs:\t", quantity)