سوالی دارید؟
تمایل دارید صفحه اینستاگرام کبیر را مشاهده نمایید؟

محتوای الکترونیکی

صفحه اصلی محتوای الکترونیکی

فرمت دهی رشته متن در پایتون با format

فرمت دهی رشته متن در پایتون با format

در پروژه‌های مختلف نیاز داریم متغیرها و رشته‌های متنی را با هم ترکیب کنیم. به کمک فرمت کردن رشته در پایتون می‌توانیم برای چاپ متغیر بین رشته متنی یک ساختار منظم ایجاد کنیم. این ساختارها به خوانایی بهتر کد کمک می‌کند و البته اصلاح و توسعه را بهبود می‌دهد. در این آموزش با ۳ روش فرمت دهی رشته متنی پایتون آشنا می‌شویم.دو متغیر به نام‌های name  و score  داریم؛ اولی نام فرد و دومی رتبه یا نمره او را مشخص می‌کند. فرض کنید نام فرد omid  و نمره او 90 است و می‌خواهیم متنی مشابه زیر در خروجی چاپ کنیم:

omid score is: 90

برای چاپ متن‌ها در کنسول از تابع ()print استفاده می‌کنیم. اولین روش استفاده از ترفندهای پرینت در پایتون برای متصل کردن متغیر و رشته و چاپ آن در خروجی است. در نتیجه کدی شبیه زیر داریم:

"name  = "omidscore = 90print( name + "'s score is:", score )

اگر تعداد متغیرها بیشتر شود یا بخواهیم یک رشته متنی پیچیده‌تری ایجاد کنیم، این روش چندان جالب به نظر نمی‌رسد! بنابراین از روش‌های فرمت دهی متن استفاده می‌کنیم.

 

فهرست محتوای آموزش

روش‌های فرمت دهی متن در پایتون

o فرمت دهی رشته پایتون با ()format

o فرمت کردن رشته‌ها با f-string

o فرمت دهی رشته متنی پایتون با %

 

روش‌های فرمت دهی متن در پایتون

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

استفاده از متد ()format  روی رشته استفاده از روش f و قرار دادن آن قبل از تعریف  string استفاده از روش %-formatting  که کمی قدیمی‌تر است.

در ادامه آموزش این سه روش را با هم بررسی می‌کنیم.

 

فرمت دهی رشته پایتون با ()format

متد ()str.format  در پایتون برای نظم دادن به رشته‌های طولانی و با متغیرهای زیاد استفاده می‌شود. البته این به آن معنا نیست که نتوان از آن برای یک رشته کوتاه یک متغیری هم استفاده کرد.این متد روی متغیرهای از نوع رشته متنی صدا زده می‌شود. منظور از str نوع داده‌ای رشته در پایتون است. از این متد برای آماده‌سازی رشته استفاده می‌شود.برای استفاده از ()format  باید جایگاه متغیرها در رشته را با علامت {} (آکولاد باز و بسته) تعیین کنیم. همان مثال اول را در نظر بگیرید. در رشته متنی نهایی، دو متغیر داشتیم. پس رشته را به صورت زیر تغییر می‌دهیم:

"{}:txt = "{}'s score is

حال کافی است روی رشته ساختاریافته، متد فرمت را صدا زده و متغیرها را به آن بدهیم.

txt = "{}'s score is: {}".format( name, score )

حال اگر مقدار متغیر txt را در خروجی چاپ کنیم، نتیجه زیر را خواهیم داشت:

print(txt)omid's score is: 90 #

کاری که ما انجام دادیم، ساده‌ترین حالت استفاده از شیوه فرمت دهی رشته در پایتون بود. در این حالت جایگاه متغیرها از سمت چپ‌ترین جایگاه در متن شمارش شده و معادل آن را باید به عنوان ورودی تابع ()format  تعیین کنیم.

 

تعیین ایندکس متغیر در متد فرمت

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

 

txt = "{0}'s score is: {1}".format( name, score )

 

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

 

 

txt = "{1}'s score is: {0}".format( name, score )

print(txt)

90s score is: omid #

 

نام برای متغیرهای درون رشته متنی

علاوه بر شماره اندیس، جایگاه متغیرها را می‌توانیم به کمک نام‌های مورد نظرمان تعیین کنیم. دقیقاً مثل اینکه در فرمت دهی رشته متنی با پایتون، برای هر جایگاه یک نام متغیر تعیین کرده‌ایم و در هنگام صدا زدن متد ()format  برای آن متغیرها مقدار تعیین می‌کنیم.در قطعه کد زیر، ابتدا یک لیست پایتون به نام data برای تعیین مقادیر تعریف کرده‌ام. می‌توانستیم مثل قبل از متغیرهای تکی، یا سایر ساختمان داده‌ها استفاده کنیم. سپس برای هر جایگاه یک نام انتخاب کرده و از آن‌ها در هنگام صدا زدن ()format  استفاده می‌کنم.

data = ["sara", 80]txt = "{name}'s score is: {score}".format( name=data[0], score=data[1] )sara's score is: 80# 

 

دقت کنید که در هنگام تعیین ورودی‌های تابع فرمت رشته حتماً باید نام جایگاه مورد نظر خود را تعیین کنیم.

 

فرمت کردن رشته‌ها با f-string 

این روش بسیار شبیه به روش قبلی است؛ یعنی به جای متغیرها در رشته متنی، از آکولادها استفاده می‌کنیم. این روش از پایتون نسخه 3.6 اضافه شده است.برای فرمت کردن رشته پایتون با f کافی است قبل از رشته متنی حرف f را قرار داده و نام اصلی متغیرهای سراسری را مستقیماً درون {} قرار دهیم. برای درک بهتر به مثال زیر توجه کنید:

"name  = "sara

score = 80

"txt = f"{name}'s score is: {score}

print(txt)

sara's score is: 80 # 

 

حرفی که قبل از شروع رشته متنی قرار می‌دهیم می‌تواند کوچک (f) یا بزرگ (F) باشد؛ نتیجه هیچ تفاوتی نخواهد داشت.فرض کنید لیستی از سه دیکشنری در پایتون داریم. در هر دیکشنری نام و نمره یک نفر نوشته شده است. به کمک یک حلقه  for، نمره این سه نفر را در خروجی چاپ می‌کنیم:

,scores = [{'name': 'sara' , 'score': 80}

               ,{'name': 'negar', 'score': 95}               

                [{'name': 'omid' , 'score': 90}               

:for student in scores

:Result #  

sara's score is: 80 #  

negar's score is: 95 # 

omid's score is: 90 #

فرمت دهی رشته متنی پایتون با %

روش سوم را می‌توان قدیمی‌ترین روش برای فرمت کردن ساختار متن در پایتون دانست. البته این به آن معنا نیست که این روش منسوخ شده یا کارایی ندارد. در بسیاری از پروژه‌ها از این نوع فرمت دهی استفاده می‌شود.برای این کار، ابتدا باید محل و نوع متغیرها درون متن را مشخص کنیم. این کار به کمک علامت درصد (%) و یک حرف انگلیسی که نشان‌دهنده نوع مقدار متغیر است انجام می‌شود. پس از اتمام رشته متنی، با قرار دادن %  مقادیر مورد نظر را به رشته می‌دهیم.به ساختار تعریف شده در کد زیر توجه کنید:

"name  = "omidscore = 90txt = "%s's score is: %d" % (name, score)

print(txt)
 omid's score is: 90 # 

در این کد، دو جایگاه %s  و %d  در string تعیین شده و بعد از پایان رشته (بعد از علامت ") با قرار دادن درصد، مقادیر مورد نظرمان را برای فرمت‌دهی به متن داده‌ایم.
اگر بخواهیم فقط یک متغیر در رشته تعریف کردیم، نیازی به استفاده از تاپل برای ارجاع دادن مقدارش نداریم و می‌توانیم آن را بعد از گذاشتن % مقداردهی کنیم.

"site = "KabirApp.com
msg  = "You can learn python on %s site!" % site

print(msg)
 !You can learn python on KabirApp.com site #

 

برای تعیین نوع متغیر سه نوع اصلی داریم که در جدول زیر مشخص شده‌اند:

نوع مقدارعلامت
مقادیر متنی%s
مقادیر صحیح%d
مقادیر اعشاری%f

 

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

 

0 نظر


لطفا وارد شوید و نظر خود را ثبت نمایید.

بهترین ها

  نام تعداد آزمون میزان موفقیت
Photo َAmeneh Darvishzadeh 1 100/00 %
Photo Mehrad Hashemi 1 100/00 %
Photo Noushmehr Norsobhi 1 100/00 %
Photo محمدحسین میرزایی 1 100/00 %
Photo مهدی حسین پور آقائی 1 100/00 %
Photo Farnoush Toghiany 21 98/36 %
Photo zahra namdari 46 98/21 %
Photo یاسمن محمدی پور 4 98/08 %
Photo Tara Mohammadi 3 96/43 %
Photo yasaman mohamadipur 51 95/86 %
Photo مهدی هنرمند 1 95/24 %
Photo محمدجواد ملائی اردستانی 3 94/44 %
Photo Arzhang Saberi 4 93/33 %
Photo Soheila Karimi 124 92/73 %
Photo aram farhmand 10 92/31 %
Photo یاشار اسکندری 98 91/14 %
Photo عباس پورمیدانی 1 90/00 %
Photo پریسا سلوکی شهرضایی 72 89/49 %
Photo ارشیا قلمکاری 33 89/23 %
Photo Matin Azimipour 30 88/17 %