Kahibaro
Discord Login Register

ترکیب متن و متغیرها

چرا باید متن و متغیر را ترکیب کنیم؟

خیلی از برنامه‌ها باید پیامی برای کاربر نشان بدهند که هم متن ثابت دارد، هم اطلاعاتی که از متغیرها می‌آید. مثلا:

در این بخش یاد می‌گیرید چطور متن (str) را با مقادیر متغیرها (عدد، متن و …) ترکیب کنید تا خروجی‌های خوانا و مرتب بسازید.

در این فصل روش‌های رایج زیر را می‌بینیم:

  1. استفاده از + برای چسباندن رشته‌ها
  2. تبدیل نوع با str() هنگام ترکیب با اعداد
  3. استفاده از f-string (روش پیشنهادی در پایتون‌های جدید)
  4. استفاده از format() به شکل مقدماتی
  5. استفاده از sep و end در تابع print() برای کنترل فاصله و پایان خط

چسباندن رشته‌ها با عملگر `+`

اگر چند تکه متن داشته باشیم، می‌توانیم آن‌ها را با + به هم بچسبانیم:

name = "علی"
message = "سلام " + name + "!"
print(message)

خروجی:

سلام علی!

اینجا هر سه بخش یک «رشته» (str) هستند:

به همین دلیل + بدون مشکل کار می‌کند.

اگر بخواهیم از این روش بیشتر استفاده کنیم:

first_name = "مینا"
last_name = "رحیمی"
full_name = first_name + " " + last_name
print("نام کامل:", full_name)

مشکل ترکیب رشته با عدد و راه‌حل آن

اگر تلاش کنید رشته و عدد را مستقیم با + ترکیب کنید، خطا می‌گیرید:

age = 20
text = "سن شما " + age + " است."

این کد خطای TypeError می‌دهد، چون:

تبدیل عدد به رشته با `str()`

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

age = 20
text = "سن شما " + str(age) + " است."
print(text)

خروجی:

سن شما 20 است.

چند مثال دیگر:

a = 4
b = 7
result = a + b
message = "جمع " + str(a) + " و " + str(b) + " برابر است با " + str(result)
print(message)

f-string: روش ساده و خوانا برای ترکیب متن و متغیرها

از پایتون 3.6 به بعد، f-string یکی از بهترین و راحت‌ترین روش‌هاست.

شکل کلی f-string

name = "سارا"
age = 25
message = f"سلام {name}! سن شما {age} سال است."
print(message)

خروجی:

سلام سارا! سن شما 25 سال است.

مزایا:

استفاده از عبارت‌ها داخل f-string

فقط نام متغیرها را نمی‌توان گذاشت؛ می‌توانیم محاسبه هم انجام دهیم:

a = 4
b = 7
print(f"{a} به علاوهٔ {b} می‌شود {a + b}")

خروجی:

4 به علاوهٔ 7 می‌شود 11

مثال دیگر:

price = 12000
tax = 0.09
print(f"قیمت نهایی: {price * (1 + tax)} تومان")

ترکیب متن فارسی و f-string

first_name = "حمید"
last_name = "کاظمی"
age = 30
print(f"نام: {first_name} {last_name} - سن: {age}")

متد `format()` به شکل مقدماتی

روش دیگری برای ترکیب متن و متغیرها، استفاده از متد format() روی رشته‌هاست.

جای‌نگه‌دار `{}`

در متن، هر جا {} بگذارید، مقادیر متغیرها به همان ترتیب جایگزین می‌شوند:

name = "لیلا"
age = 28
message = "سلام {}! شما {} ساله هستید.".format(name, age)
print(message)

خروجی:

سلام لیلا! شما 28 ساله هستید.

مشخص کردن ترتیب با شماره

می‌توانید شمارهٔ داخل {} بگذارید:

a = 5
b = 3
text = "a = {0}, b = {1}, جمع = {2}".format(a, b, a + b)
print(text)

استفادهٔ ساده از `print()` برای ترکیب متن و متغیرها

بدون f-string و بدون +، خود تابع print() می‌تواند چند چیز را با هم چاپ کند.

جدا کردن با ویرگول

اگر در print() چند چیز را با ویرگول بنویسید، پایتون بینشان یک فاصله می‌گذارد:

name = "رضا"
age = 22
print("نام:", name, "- سن:", age)

خروجی:

نام: رضا - سن: 22

اینجا نیازی نیست خودتان " " اضافه کنید؛ print() خودش بین هر دو قسمت یک فاصله می‌گذارد.


تنظیم فاصله‌ها با `sep` در `print()`

آرگومان sep مشخص می‌کند بین آیتم‌های داخل print() چه چیزی قرار بگیرد (به طور پیش‌فرض یک فاصله است).

print("سلام", "دنیا")
print("سلام", "دنیا", sep="-")
print("سلام", "دنیا", sep="***")

خروجی:

سلام دنیا
سلام-دنیا
سلام***دنیا

مثال کاربردی:

year = 2025
month = 1
day = 5
print(year, month, day, sep="-")  # 2025-1-5

کنترل پایان خط با `end` در `print()`

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

print("اولین بخش", end=" - ")
print("دومین بخش")

خروجی:

اولین بخش - دومین بخش

مثال:

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

چند تمرین پیشنهادی

برای تمرین ترکیب متن و متغیرها (بدون حل):

  1. برنامه‌ای بنویسید که نام و سن کاربر را بگیرد و این متن را با f-string چاپ کند:
    سلام [نام]! شما [سن] سال دارید.
  2. دو عدد از کاربر بگیرید و عبارتی مثل این چاپ کنید:
    جمع 4 و 7 برابر است با 11
    (می‌توانید یکی‌بار با + و str() و یک‌بار با f-string انجام دهید.)
  3. از کاربر نام، نام خانوادگی و شهر محل سکونت بگیرید و در یک خط این‌طور چاپ کنید:
    نام کامل: ... - شهر: ...
    با استفاده از print() و ویرگول و تنظیم sep.
  4. با استفاده از حلقه (بعداً کامل یاد می‌گیرید)، اعداد ۱ تا ۵ را در یک خط با فاصله چاپ کنید (با end=" ").

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

Views: 5

Comments

Please login to add a comment.

Don't have an account? Register now!