Kahibaro
Discord Login Register

قالب‌بندی خروجی

چرا قالب‌بندی خروجی مهم است؟

وقتی برنامه‌تان چیزی را روی صفحه چاپ می‌کند، مهم است این خروجی:

در این بخش، روی راه‌های مختلف قالب‌بندی متنِ خروجی با استفاده از 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="")
# خروجی: abc

پایان خط در `print()` و پارامتر `end`

به طور پیش‌فرض، print() بعد از چاپ، یک خط جدید (\n) اضافه می‌کند، یعنی مکان‌نما به خط بعد می‌رود.

print("سلام")
print("دنیا")
# خروجی:
# سلام
# دنیا

اگر بخواهیم دو print در همان خط ادامه پیدا کنند، از پارامتر end استفاده می‌کنیم.

print("سلام", end=" ")
print("دنیا")
# خروجی: سلام دنیا

مثال دیگر:

for i in range(3):
    print(i, end=", ")
# خروجی: 0, 1, 2, 

ساختن رشته‌های قالب‌بندی‌شده با `+` و `,`

دو روش معمول برای ترکیب متن و متغیرها:

۱. استفاده از ویرگول در `print()`

در این روش، print() خودش بین قسمت‌ها فاصله می‌گذارد:

name = "زهرا"
age = 25
print("نام:", name, "- سن:", age)
# خروجی: نام: زهرا - سن: 25

نیازی به تبدیل دستی عدد به رشته نیست؛ print() خودش انجام می‌دهد.

۲. استفاده از `+` برای چسباندن رشته‌ها

در این روش، همهٔ بخش‌ها باید رشته (str) باشند. پس اگر عدد دارید، باید آن را تبدیل کنید.

name = "مهدی"
age = 30
text = "نام: " + name + "، سن: " + str(age)
print(text)
# خروجی: نام: مهدی، سن: 30

نکته‌ها:

قالب‌بندی با 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:

کنترل تعداد رقم اعشار اعداد اعشاری

وقتی با عددهای اعشاری (float) کار می‌کنید، ممکن است بخواهید فقط تعداد مشخصی رقم اعشار چاپ کنید؛ مثلا ۲ رقم بعد از ممیز.

با f-string می‌توانیم از یک بخش قالب‌بندی استفاده کنیم:

ساختار کلی:

مثال:

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 این امکان را می‌دهد که عرض ثابت برای ستون‌ها تعیین کنید.

ساختار کلی:

مثال ساده با عدد:

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

اینجا:

مثال‌های ترکیبی قالب‌بندی

مثال ۱: چاپ نتیجهٔ امتحان

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%

چند نکتهٔ کاربردی و رایج

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

Views: 7

Comments

Please login to add a comment.

Don't have an account? Register now!