به آموزشگاه مجازی سینا خوش آمدید!

آموزش فرمت دهی به رشته‌ها(2) در پایتون

امتیاز
(0)

اف‌استرینگ(F-String)، در پایتونِ 3.6 معرفی شده است و اکنون، استفاده از آن برای فرمت‌دهی به رشته‌ها ترجیح داده می‌شود. قبل از پایتون 3.6، ما مجبور بودیم به جای آن، از متد format() استفاده کنیم. 


اف‌استرینگ(F-String) در پایتون

اف‌استرینگ‌ها به ما امکان می‌دهند تا بخش‌های انتخاب شده‌ای از یک رشته را فرمت‌دهی کنیم. برای مشخص کردن یک رشته، به عنوان یک اف‌استرینگ، به سادگی، یک حرف f را در جلوی رشته قرار دهید، مانند زیر:

مثال شماره 1

ایجاد یک اف‌استرینگ:

txt = f"The price is 49 dollars"
print(txt)

نتیجه:

The price is 49 dollars
امتحان کنید

همچنین می‌توانید در این مقاله، اطلاعات بیشتری درباره‌ی اف‌استرینگ به دست بیاورید. 


جانگهدارها(Placeholders) و اصلاح کننده ها(Modifiers) در پایتون

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

مثال شماره 2

اضافه کردن یک جانگهدار(placeholder) برای متغیر price:

price = 59
txt = f"The price is {price} dollars"
print(txt)

نتیجه:

The price is 59 dollars
امتحان کنید

یک جانگهدار(placeholder) می تواند حاوی یک اصلاح کننده(modifier) باشد تا مقداری را فرمت دهی کند. برای اضافه کردن یک اصلاح کننده، از یک علامت دونقطه(:) استفاده می کنیم و پس از آن یک نوعِ قانونیِ فرمت دهی، مانند .2f قرار می دهیم که به معنی یک عدد ممیز ثابت(fixed point) با دو رقم اعشار می باشد. 

مثال شماره 3

نمایش دادن قیمت یا price با دو رقم اعشار:

price = 59
txt = f"The price is {price:.2f} dollars"
print(txt)

نتیجه:

The price is 59.00 dollars
امتحان کنید

ما همچنین می‌توانیم یک مقدار را مستقیماً، بدون اینکه آن را در یک متغیر قرار دهیم، فرمت‌دهی کنیم:

مثال شماره 4

نمایش دادن مقدار 95 با دو رقم اعشار:

txt = f"The price is {95:.2f} dollars"
print(txt)

نتیجه:

The price is 95.00 dollars
امتحان کنید

انجام عملیات در اف‌استرینگ در پایتون

ما می‌توانیم در درون جانگهدارها(placeholders)، عملیات‌های پایتون را انجام دهیم. بعنوان مثال، می‌توانیم عملیات ریاضی را انجام دهیم:

مثال شماره 5

انجام یک عملیات ریاضی در جانگهدار(placeholder) و برگرداندن نتیجه:

txt = f"The price is {20 * 59} dollars"
print(txt)

نتیجه:

The price is 1180 dollars
امتحان کنید

ما می‌توانیم روی متغیرها نیز عملیات ریاضی انجام دهیم:

مثال شماره 6

اضافه کردن مالیات(tax) قبل از نمایش دادن قیمت(price):

price = 59
tax = 0.25
txt = f"The price is {price + (price * tax)} dollars"
print(txt)

نتیجه:

The price is 73.75 dollars
امتحان کنید

ما می‌توانیم در درون جانگهدارها(placeholders)، از دستورات if...else نیز استفاده کنیم:

مثال شماره 7

 اگر price بیشتر از 50 است، مقدار "Expensive" را برمی‌گرداند، در غیر این صورت، مقدار "Cheap" برگردانده می‌شود:

price = 49
txt = f"It is very {'Expensive' if price>50 else 'Cheap'}"

print(txt)

نتیجه:

It is very Cheap
امتحان کنید

اجرای تابع‌ها در اف‌استرینگ‌ها

ما می‌توانیم تابع‌ها را در درون جانگهدارها(placeholder) اجرا کنیم:

مثال شماره 8

در مثال زیر، از متد یا همان تابع upper() برای تبدیل یک مقدار به حروف بزرگ استفاده می‌کنیم:

fruit = "apples"
txt = f"I love {fruit.upper()}"
print(txt)

نتیجه:

I love APPLES
امتحان کنید

حتما لازم نیست تابع مورد نظر، یک متد داخلی(built-in) در پایتون باشد؛ شما می‌توانید تابع‌های دلخواه خود را ایجاد کنید و آنها را مورد استفاده قرار دهید:

مثال شماره 9

ایجاد یک تابع که فوت(feet) را به متر تبدیل می‌کند:

def myconverter(x):
  return x * 0.3048

txt = f"The plane is flying at a {myconverter(30000)} meter altitude"
print(txt)

نتیجه:

The plane is flying at a 9144.0 meter altitude
امتحان کنید

معرفی اصلاح‌کننده‌های بیشتر(More Modifiers)

در بالای این مقاله، در مورد استفاده از اصلاح‌کننده‌ی .2f برای فرمت کردن یک عدد، به یک عددِ ممیز ثابت با دو رقم اعشار، صحبت کردیم. چندین اصلاح‌کننده‌ی دیگر نیز می‌توانیم از آنها برای فرمت کردن مقادیر استفاده کنیم:

مثال شماره 10

استفاده از ویرگول بعنوان جداکننده‌ی هزارگان:

price = 59000
txt = f"The price is {price:,} dollars"
print(txt)

نتیجه:

The price is 59,000 dollars
امتحان کنید

در جدول زیر، لیستی از تمام نوع‌هایِ فرمت کننده نشان داده شده است:

نوع‌های فرمت دهی(Formatting Types)
:< امتحان کنید

نتیجه را چپ چین می‌کند(در داخل فضای موجود).

:> امتحان کنید

نتیجه را راست چین می‌کند(در داخل فضای موجود).

:^ امتحان کنید

نتیجه را وسط چین می‌کند(در داخل فضای موجود).

:= امتحان کنید

علامت مثبت یا منفی را در سمت چپ ترین موقعیت قرار می‌دهد.

:+ امتحان کنید

استفاده از علامت باضافه، برای نشان دادن اینکه نتیجه مثبت یا منفی است. 

:- امتحان کنید

استفاده از یک علامت منفی، تنها برای مقادیر منفی. 

امتحان کنید

استفاده از یک فاصله‌ی سفید(space) برای اضافه کردن یک فضای اضافی، قبل از اعداد مثبت(و اضافه کردن یک علامت منفی قبل از اعداد منفی).

:, امتحان کنید

استفاده از یک کاما بعنوان جداکننده‎‌ی هزارگان. 

:_ امتحان کنید

استفاده از یک جداکننده‌ی آندرلاین(underscore) بعنوان جداکننده‌ی هزارگان. 

:b امتحان کنید

فرمت باینری. 

:c  

مقدار مورد نظر را به کاراکتر یونیکد مربوطه تبدیل می‌کند. 

:d امتحان کنید

فرمت دسیمال یا همان اعشاری(Decimal). 

:e امتحان کنید

فرمت نماد علمی با حرف کوچک e.

:E امتحان کنید

فرمت نماد علمی با حرف بزرگ E.

:f امتحان کنید

فرمت عدد ممیز ثابت. 

:F امتحان کنید

فرمت عدد ممیز ثابت، با فرمت حروف بزرگ(نشان دادن inf و nan به صورت INF و NAN). 

:g  

فرمت کلی(General format). 

:G  

فرمت کلی(General format)(با استفاده از یک حرف بزرگ E برای نمادهای علمی)

:o امتحان کنید

فرمت اُکتال(Octal)(مبنای 8)

:x امتحان کنید

فرمت هگزادسیمال(Hex)(مبنای 16)

:X امتحان کنید

فرمت هگزادسیمال(Hex) با حروف بزرگ. 

:n  

فرمت عددی.

:% امتحان کنید

فرمت درصدی(Percentage). 


بررسی متد format() در پایتون

قبل از پایتون 3.6، ما از متد format() برای فرمت کردن رشته‌ها استفاده می‌کردیم. هنوز هم می‌توانیم از متد format() استفاده کنیم، اما اف‌استرینگ‌ها سرعت بیشتری دارند و برای فرمت کردن رشته‌ها، ترجیح داده می‌شوند. مثال‌هایی که در زیر می‌آیند، نشان می‌دهند که چگونه رشته‌ها را با استفاده از متد format() فرمت کنیم. متد format() همچنین از آکولادها({ }) بعنوان جانگهدارها(placeholder) استفاده می‌کند، اما شیوه‌ی نوشتاری یا سینتکس آن کمی متفاوت است:

مثال شماره 11

اضافه کردن جانگهدار(placeholder) در جایی که می‌خواهیم قیمت یا price را نمایش دهیم:

price = 49
txt = "The price is {} dollars"
print(txt.format(price))

نتیجه:

The price is 49 dollars
امتحان کنید

ما می‌توانیم پارامترها را درون آکولادها قرار دهیم تا مشخص کنیم که مقدار مورد نظر چگونه تبدیل شود:

مثال شماره 12

فرمت کردن قیمت(price) برای اینکه به صورت یک عدد با دو رقم اعشار نشان داده شود:

price = 49
txt = "The price is {:.2f} dollars"
print(txt.format(price))

نتیجه:

The price is 49.00 dollars
امتحان کنید

برای مشاهده‌ی تمام نوع‌های فرمت‌دهی، می‌توانید به مرجع متد format() مراجعه کنید. 


استفاده از چند مقدار

اگر می‌خواهید از مقادیر بیشتری استفاده کنید، تنها کافیست مقادیر بیشتری را در متد format() اضافه کنید:

print(txt.format(price, itemno, count))

و جانگهدارهای(placeholder) بیشتری را اضافه کنید:

مثال شماره 13

quantity = 3
itemno = 567
price = 49
myorder = "I want {} pieces of item number {} for {:.2f} dollars."
print(myorder.format(quantity, itemno, price))

نتیجه:

I want 3 pieces of item number 567 for 49.00 dollars.
امتحان کنید

اعداد اندیسی(index numbers)

ما می‌توانیم از اعداد اندیسی(یعنی یک عدد که در درون آکولادها {0} قرار گرفته است) برای اطمینان از اینکه این مقادیر در جانگهدارهای درستی قرار گیرند، استفاده کنیم:

مثال شماره 14

quantity = 3
itemno = 567
price = 49
myorder = "I want {0} pieces of item number {1} for {2:.2f} dollars."
print(myorder.format(quantity, itemno, price))

نتیجه:

I want 3 pieces of item number 567 for 49.00 dollars.
امتحان کنید

همچنین، اگر بخواهیم به مقدار مشابهی، بیش از یک بار رجوع کنیم، می‌توانیم از اعداد اندیسی استفاده کنیم:

مثال شماره 15

age = 36
name = "John"
txt = "His name is {1}. {1} is {0} years old."
print(txt.format(age, name))

نتیجه:

His name is John. John is 36 years old.
امتحان کنید

اندیس‌های نام گذاری شده(Named Indexes)

ما همچنین می‌توانیم با وارد کردن یک نام در درون آکولادها مانند {carname} از اندیس‌های نام‌گذاری شده استفاده کنیم، اما پس از آن، باید از این نام‌ها هنگامی که مقادیر پارامتر را پاس می‌دهیم، استفاده کنیم، مانند دستور زیر:

txt.format(carname = "Ford")

به مثال زیر توجه کنید:

مثال شماره 16

myorder = "I have a {carname}, it is a {model}."
print(myorder.format(carname = "Ford", model = "Mustang"))

نتیجه:

I have a Ford, it is a Mustang.
امتحان کنید

منبع: www.w3schools.com/python

 

  • بازدید: 39

نوشتن دیدگاه

لطفا نظرات خود را بیان کنید. به سوالات در سریع ترین زمان پاسخ داده خواهد شد.اما به نکات زیر توجه کنید:
1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.

ارسال