Table of Contents
چرا قالببندی خروجی مهم است؟
وقتی برنامهتان چیزی را روی صفحه چاپ میکند، مهم است این خروجی:
- مرتب و خوانا باشد
- برای کاربر قابلفهم باشد
- در صورت نیاز واحد، توضیح یا متن کناری داشته باشد
در این بخش، روی راههای مختلف قالببندی متنِ خروجی با استفاده از print() تمرکز میکنیم.
جدا کردن چند مقدار در `print()`
تابع print() میتواند چند مقدار را پشت سر هم چاپ کند. به طور پیشفرض، بین این مقادیر یک فاصله (space) میگذارد.
name = "علی"
age = 20
print("نام:", name, "سن:", age)
# خروجی: نام: علی سن: 20
اگر نخواهید این فاصلهٔ پیشفرض وجود داشته باشد، میتوانید از پارامتر sep استفاده کنید.
print("2025", "01", "15", sep="-")
# خروجی: 2025-01-15
print("a", "b", "c", sep="")
# خروجی: abcsepمخفف separator (جداکننده) است.- مقدار پیشفرض آن
" "(یک فاصله) است.
پایان خط در `print()` و پارامتر `end`
به طور پیشفرض، print() بعد از چاپ، یک خط جدید (\n) اضافه میکند، یعنی مکاننما به خط بعد میرود.
print("سلام")
print("دنیا")
# خروجی:
# سلام
# دنیا
اگر بخواهیم دو print در همان خط ادامه پیدا کنند، از پارامتر end استفاده میکنیم.
print("سلام", end=" ")
print("دنیا")
# خروجی: سلام دنیامثال دیگر:
for i in range(3):
print(i, end=", ")
# خروجی: 0, 1, 2, endمشخص میکند بعد از چاپ چه چیزی در انتهای خروجی قرار بگیرد.- مقدار پیشفرض آن
"\n"(رفتن به خط بعد) است.
ساختن رشتههای قالببندیشده با `+` و `,`
دو روش معمول برای ترکیب متن و متغیرها:
۱. استفاده از ویرگول در `print()`
در این روش، print() خودش بین قسمتها فاصله میگذارد:
name = "زهرا"
age = 25
print("نام:", name, "- سن:", age)
# خروجی: نام: زهرا - سن: 25
نیازی به تبدیل دستی عدد به رشته نیست؛ print() خودش انجام میدهد.
۲. استفاده از `+` برای چسباندن رشتهها
در این روش، همهٔ بخشها باید رشته (str) باشند. پس اگر عدد دارید، باید آن را تبدیل کنید.
name = "مهدی"
age = 30
text = "نام: " + name + "، سن: " + str(age)
print(text)
# خروجی: نام: مهدی، سن: 30نکتهها:
- استفاده از
,درprint()برای مبتدیان معمولاً سادهتر است. - روش
+فقط برای رشتههاست؛ اگر عدد داشته باشید بایدstr(age)بنویسید.
قالببندی با f-string (روش پیشنهادی)
f-string یکی از راحتترین روشها برای قالببندی خروجی در پایتون است (از نسخهٔ 3.6 به بعد).
ساختار کلی:
f"متن ثابت ... {متغیر یا عبارت پایتونی} ... متن ثابت"مثال ساده:
name = "سارا"
age = 18
print(f"نام: {name}، سن: {age}")
# خروجی: نام: سارا، سن: 18
میتوان داخل {} حتی عبارت هم نوشت:
a = 3
b = 5
print(f"{a} + {b} = {a + b}")
# خروجی: 3 + 5 = 8چند مزیت f-string:
- کد خواناتر است.
- لازم نیست
str()بنویسید؛ خودش عدد را به رشته تبدیل میکند. - میتوانید مستقیماً محاسبات را در خروجی انجام دهید.
کنترل تعداد رقم اعشار اعداد اعشاری
وقتی با عددهای اعشاری (float) کار میکنید، ممکن است بخواهید فقط تعداد مشخصی رقم اعشار چاپ کنید؛ مثلا ۲ رقم بعد از ممیز.
با f-string میتوانیم از یک بخش قالببندی استفاده کنیم:
ساختار کلی:
- برای عدد اعشاری:
{متغیر:.2f}یعنی: .: شروع تنظیم اعشار2: تعداد رقم بعد از ممیزf: یعنی عدد اعشاری (float)
مثال:
pi = 3.14159265
print(f"pi با دو رقم اعشار: {pi:.2f}")
print(f"pi با چهار رقم اعشار: {pi:.4f}")
# خروجی:
# pi با دو رقم اعشار: 3.14
# pi با چهار رقم اعشار: 3.1416مثال عملی:
price = 1234.5678
print(f"قیمت نهایی: {price:.2f} تومان")
# خروجی: قیمت نهایی: 1234.57 تومانتراز کردن متن (چپ، راست، وسط)
گاهی میخواهید خروجی به شکل یک جدول منظم زیر هم قرار بگیرد. f-string این امکان را میدهد که عرض ثابت برای ستونها تعیین کنید.
ساختار کلی:
{متغیر:10}→ حداقل عرض ۱۰ کاراکتر، پیشفرض راستچین برای عدد و چپچین برای متن{متغیر:<10}→ چپچین در عرض ۱۰{متغیر:>10}→ راستچین در عرض ۱۰{متغیر:^10}→ وسطچین در عرض ۱۰
مثال ساده با عدد:
n = 42
print(f"|{n:>5}|")
print(f"|{n:<5}|")
print(f"|{n:^5}|")
# خروجی:
# | 42|
# |42 |
# | 42 |مثالِ شبیه جدول:
print(f"{'نام':<10} {'سن':<5}")
print(f"{'علی':<10} {20:<5}")
print(f"{'سارا':<10} {18:<5}")
print(f"{'مهدی':<10} {30:<5}")
# خروجی:
# نام سن
# علی 20
# سارا 18
# مهدی 30اینجا:
'نام':<10یعنی متن «نام» را در یک فضای ۱۰ کاراکتری از چپ تراز کن.20:<5یعنی عدد ۲۰ را در فضایی با عرض ۵ کاراکتر چپچین کن.
مثالهای ترکیبی قالببندی
مثال ۱: چاپ نتیجهٔ امتحان
name = "ندا"
score = 17.456
print(f"دانشجو: {name} - نمره: {score:.1f} از 20")
# خروجی: دانشجو: ندا - نمره: 17.5 از 20مثال ۲: چاپ چند سطر مرتب
item1 = "کتاب"
price1 = 120000
item2 = "خودکار"
price2 = 8000
print(f"{'کالا':<10} {'قیمت (تومان)':>15}")
print(f"{item1:<10} {price1:>15}")
print(f"{item2:<10} {price2:>15}")
# نمونه خروجی:
# کالا قیمت (تومان)
# کتاب 120000
# خودکار 8000مثال ۳: چاپ درصد با دو رقم اعشار
correct = 17
total = 20
percent = (correct / total) * 100
print(f"درصد پاسخهای درست: {percent:.2f}%")
# خروجی: درصد پاسخهای درست: 85.00%چند نکتهٔ کاربردی و رایج
- برای برنامههای ساده، ترکیب
print()با,کاملاً کافی است. - برای خروجیهای مرتب، خوانا، جدولی یا شامل اعداد اعشاری، f-string را جدی بگیرید؛ در پروژههای واقعی بسیار استفاده میشود.
- اگر خروجیتان شلوغ و نامنظم به نظر میرسد، با:
- اضافه کردن متن توضیحی (مثلاً «نام:»، «سن:»)
- کنترل تعداد ارقام اعشار
- تراز کردن ستونها
میتوانید آن را واضحتر کنید.
در ادامه، در برنامههای تعاملی، از این روشها برای ساخت خروجیهای بهتر استفاده خواهیم کرد.