اهمیت قالببندی رشتهها یا String Formatting در پایتون

در دنیای پایتون، نمایش دادهها به شکلی خوانا و زیبا هنر مهمی است. پایتون در طول زمان تکامل یافته و روشهای مختلفی برای قالببندی رشتهها (String Formatting) ارائه داده است.
در ادامه، دو مورد از محبوبترین روشها یعنی Format String و f-string را با هم مقایسه میکنیم:
متد .format() (معرفی شده در پایتون ۲.۶)
این روش نسبت به روش قدیمیِ % بسیار منعطفتر است و اجازه میدهد متغیرها را با استفاده از براکت {} در جای مناسب قرار دهید.
-
نحو (Syntax): متغیرها به ترتیب در
{}جایگذاری میشوند یا میتوان به آنها اندیس داد. -
مزیت: جداسازی متن از دادهها؛ یعنی ابتدا قالب رشته را مینویسید و در انتها دادهها را پاس میدهید.
مثال:
name = "Alice"
age = ۲۵
# Positional placeholders
print("Hello, my name is {} and I am {} years old.".format(name, age))
# Using indexes (useful for reordering or repeating)
print("User: {0}, Nickname: {0}, Age: {1}".format(name, age))
# Using keywords
print("Point: x={x}, y={y}".format(x=۱۰, y=۲۰)) f-string (معرفی شده در پایتون ۳.۶)
نام رسمی آن Formatted String Literals است. این روش در حال حاضر بهترین، سریعترین و خواناترین راه برای قالببندی در پایتون است.
-
نحو (Syntax): کافی است حرف
fیاFرا قبل از شروع کوتیشن قرار دهید و نام متغیر را مستقیماً داخل{}بنویسید. -
مزیت: سرعت اجرای بسیار بالا (چون در زمان اجرا ارزیابی میشود) و خوانایی فوقالعاده.
مثال:
name = "Bob"
score = ۹۵.۵
# Direct variable embedding
print(f"Student: {name}, Score: {score}")
# Inline expressions and method calls
print(f"Upper case name: {name.upper()}")
print(f"Is passing? {'Yes' if score > ۵۰ else 'No'}")
هر دو روش از یک زبان مشترک برای تعیین جزئیات (Format Specification Mini-Language) استفاده میکنند. برخی از این قابلیتها عبارتند از:
| قابلیت | مثال در f-string | خروجی/توضیح |
| تعداد ارقام اعشار | f"{3.14159:.2f}" | ۳.۱۴ |
| جداکننده هزارگان | f"{1000000:,}" | ۱,۰۰۰,۰۰۰ |
| تراز کردن متن | f"{'hi':>10}" | تراز به راست (با ۱۰ فاصله) |
| عملیات ریاضی | f"{2 + 2}" | ۴ (فقط در f-string) |
کدام را انتخاب کنیم؟
-
f-string: همیشه انتخاب اول شما باشد. هم کدتان تمیزتر میشود و هم سرعت برنامه بالاتر میرود.
-
.format(): زمانی استفاده کنید که رشته قالببندی شما از قبل تعریف شده است (مثلاً در یک فایل تنظیمات یا دیتابیس ذخیره شده) و میخواهید بعداً دادهها را به آن تزریق کنید.
یک نکته باحال: در پایتون ۳.۸ به بعد، میتوانید از = در f-string برای دیباگ کردن سریع استفاده کنید:
user_id = ۴۰۴
status = "Not Found"
print(f"{user_id=}, {status=}")
# Output: user_id=404, status='Not Found'




