string format

  • مدرس : علی بیگدلی
  • تاریخ انتشار: 1404/05/11
  • تعداد بازدید: 512

قالب‌بندی رشته‌ها (String Formatting) در پایتون

در پایتون، ترکیب متغیرها با رشته‌ها می‌تواند به روش‌های مختلفی انجام شود. قالب‌بندی رشته روشی قدرتمند، منعطف و خوانا برای قرار دادن مقادیر مختلف درون رشته‌هاست، بدون نیاز به تبدیل دستی آن‌ها به رشته.

۱. استفاده از str.format()

روش format یکی از راه‌های کلاسیک برای قالب‌بندی رشته‌هاست. در این روش، با استفاده از آکولاد {} جاهای خالی در متن مشخص می‌شود و مقادیر از طریق format() جایگزین می‌گردند.

nums = [4, 5, 6]
msg = "Numbers: {0} {1} {2}".format(nums[0], nums[1], nums[2])
print(msg)

خروجی:

Numbers: 4 5 6

همچنین می‌توانید از پارامترهای نام‌گذاری‌شده استفاده کنید:

text = "{x}, {y}".format(x=5, y=12)
print(text)
5, 12
۲. قالب‌بندی با f-strings (از پایتون 3.6 به بعد)

f-string یا formatted string literal راهی مدرن، سریع و خواناتر برای قالب‌بندی رشته‌هاست. در این روش، متغیرها مستقیماً داخل رشته و داخل آکولاد استفاده می‌شوند، با پیشوند f در ابتدای رشته.

name = "Alice"
age = 30
msg = f"{name} is {age} years old."
print(msg)
Alice is 30 years old.

مزیت f-string: پشتیبانی از عبارات داخل آکولاد:

a = 10
b = 5
print(f"{a} + {b} = {a + b}")
10 + 5 = 15
۳. استفاده از عملگر % (روش قدیمی)

این روش که از زبان C الهام گرفته شده، در پایتون قدیمی‌تر استفاده می‌شد و هنوز هم پشتیبانی می‌شود، ولی پیشنهاد نمی‌شود مگر برای سازگاری با کدهای قدیمی.

name = "Bob"
age = 25
print("Name: %s, Age: %d" % (name, age))
Name: Bob, Age: 25
۴. قالب‌بندی با مشخصات دقیق‌تر

در هر روش می‌توان قالب‌بندی عددی، اعشار، تراز، و پر کردن را نیز کنترل کرد. مثال‌ها:

# تنظیم تعداد اعشار
pi = 3.14159265
print(f"π ≈ {pi:.2f}")  # π ≈ 3.14

# تراز راست
print(f"{'Product':>10} | {'Price':>5}")
print(f"{'Apple':>10} | {5:>5.2f}")

# پر کردن با صفر
print(f"{42:04d}")  # 0042
تغییرات در نسخه‌های جدید پایتون:
  • پایتون 3.6: معرفی f-string به عنوان سریع‌ترین و خواناترین روش.
  • پایتون 3.8: پشتیبانی از عملگر := (walrus) در f-string برای تخصیص همزمان.
print(f"{(n := 10) * 2}")  # 20

جدول تکمیلی عملیات های مبتنی بر f-string

 

عملیات کد فرمت توضیح مثال خروجی نمونه
اعشاری (Float) :.nf نمایش n رقم اعشار (گرد شده) f"{3.1415:.2f}" 3.14
اعشاری (Float) :.0f گرد کردن به عدد صحیح f"{3.6:.0f}" 4
صحیح (Integer) :0nd پر کردن با صفر تا عرض n f"{5:03d}" 005
صحیح (Integer) :,d جداکننده هزارگان f"{1000000:,}" 1,000,000
درصد (Percentage) :% تبدیل به درصد (×۱۰۰) f"{0.85:%}" 85.000000%
درصد (Percentage) :.nf% درصد با n رقم اعشار f"{0.856:.1%}" 85.6%
نماد علمی :e نماد علمی (پایین‌نویس e) f"{1000:e}" 1.000000e+03
نماد علمی :.nE نماد علمی با حرف بزرگ E f"{1000:.2E}" 1.00E+03
علامت (Sign) :+ نمایش علامت مثبت/منفی f"{5:+}" +5
فضای خالی : n فاصله برای اعداد مثبت f"{5: n}" 5
باینری (Binary) :b مبنای ۲ (بدون پیشوند) f"{5:b}" 101
باینری (Binary) :#b مبنای ۲ (با پیشوند 0b) f"{5:#b}" 0b101
اوکتال (Octal) :o مبنای ۸ (بدون پیشوند) f"{8:o}" 10
اوکتال (Octal) :#o مبنای ۸ (با پیشوند 0o) f"{8:#o}" 0o10
هگز (Hex) :x مبنای ۱۶ (حروف کوچک) f"{255:x}" ff
هگز (Hex) :X مبنای ۱۶ (حروف بزرگ) f"{255:X}" FF
هگز (Hex) :#x مبنای ۱۶ (با پیشوند 0x) f"{255:#x}" 0xff
کامما (Comma) , جداکننده هزارگان f"{1000:,}" 1,000
دقت پویا .{var}f تعیین اعشار با متغیر f"{3.14:.{2}f}" 3.14

ثبت دیدگاه


نکته: آدرس ایمیل شما منتشر نخواهد شد
0/600

دیدگاه کاربران (0)


هیچ دیدگاهی ثبت نشده است. می‌توانید اولین نفر باشید.