در پروژههای مختلف نیاز داریم متغیرها و رشتههای متنی را با هم ترکیب کنیم. به کمک فرمت کردن رشته در پایتون میتوانیم برای چاپ متغیر بین رشته متنی یک ساختار منظم ایجاد کنیم. این ساختارها به خوانایی بهتر کد کمک میکند و البته اصلاح و توسعه را بهبود میدهد. در این آموزش با ۳ روش فرمت دهی رشته متنی پایتون آشنا میشویم.
omid score is: 90
برای چاپ متنها در کنسول از تابع ()print استفاده میکنیم. اولین روش استفاده از ترفندهای پرینت در پایتون برای متصل کردن متغیر و رشته و چاپ آن در خروجی است. در نتیجه کدی شبیه زیر داریم:
"name = "omid
اگر تعداد متغیرها بیشتر شود یا بخواهیم یک رشته متنی پیچیدهتری ایجاد کنیم، این روش چندان جالب به نظر نمیرسد! بنابراین از روشهای فرمت دهی متن استفاده میکنیم.
فهرست محتوای آموزش
• روشهای فرمت دهی متن در پایتون
روشهای فرمت دهی متن در پایتون
علاوه بر اینکه استفاده مستقیم از متغیرها در رشته جالب نیست، گاهی اوقات میتواند به خوانایی کد و فرآیند اصلاح و توسعه آن لطمه بزند! پس همواره سعی کنید از ویژگیهای زبانهای مختلف برای بهبود مهارت برنامهنویسی خود استفاده کنید.
• استفاده از متد ()format روی رشته
در ادامه آموزش این سه روش را با هم بررسی میکنیم.
فرمت دهی رشته پایتون با ()format
"{}:txt = "{}'s score is
حال کافی است روی رشته ساختاریافته، متد فرمت را صدا زده و متغیرها را به آن بدهیم.
txt = "{}'s score is: {}".format( name, score )
حال اگر مقدار متغیر txt را در خروجی چاپ کنیم، نتیجه زیر را خواهیم داشت:
print(txt)
کاری که ما انجام دادیم، سادهترین حالت استفاده از شیوه فرمت دهی رشته در پایتون بود. در این حالت جایگاه متغیرها از سمت چپترین جایگاه در متن شمارش شده و معادل آن را باید به عنوان ورودی تابع ()format تعیین کنیم.
تعیین ایندکس متغیر در متد فرمت
برای اینکه ایندکس هر متغیر را در رشته مشخص کنیم، کافی است درون آکولادها، ایندکس مورد نظر را تعیین کنیم. کد زیر، دقیقاً همان ساختار پیشفرض رشته فرمت شده بدون تعیین اندیسها است.
txt = "{0}'s score is: {1}".format( name, score )
در قطعه کد زیر، ایندکس متغیرها را جابجا کردم و همانطور که در خروجی میبینید، ترتیب فراخوانی و قرار دادن متغیرها در رشته جابجا شده است.
txt = "{1}'s score is: {0}".format( name, score )
نام برای متغیرهای درون رشته متنی
data = ["sara", 80]
دقت کنید که در هنگام تعیین ورودیهای تابع فرمت رشته حتماً باید نام جایگاه مورد نظر خود را تعیین کنیم.
فرمت کردن رشتهها با f-string
این روش بسیار شبیه به روش قبلی است؛ یعنی به جای متغیرها در رشته متنی، از آکولادها استفاده میکنیم. این روش از پایتون نسخه 3.6 اضافه شده است.
"name = "sara
حرفی که قبل از شروع رشته متنی قرار میدهیم میتواند کوچک (f) یا بزرگ (F) باشد؛ نتیجه هیچ تفاوتی نخواهد داشت.
,scores = [{'name': 'sara' , 'score': 80}
:Result #
روش سوم را میتوان قدیمیترین روش برای فرمت کردن ساختار متن در پایتون دانست. البته این به آن معنا نیست که این روش منسوخ شده یا کارایی ندارد. در بسیاری از پروژهها از این نوع فرمت دهی استفاده میشود.
"name = "omid
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 |
امیدوارم پس از آموزش فرمتدهی رشته متنی در پایتون بتوانید متغیرهای خود را به صورت خواناتر در کدهایتان قرار داده تا کم کم تبدیل به یک برنامهنویس خوب و موفق شوید.
نام | تعداد آزمون | میزان موفقیت | |
---|---|---|---|
َAmeneh Darvishzadeh | 1 | 100/00 % | |
Mehrad Hashemi | 1 | 100/00 % | |
Noushmehr Norsobhi | 1 | 100/00 % | |
محمدحسین میرزایی | 1 | 100/00 % | |
مهدی حسین پور آقائی | 1 | 100/00 % | |
Farnoush Toghiany | 21 | 98/36 % | |
zahra namdari | 46 | 98/21 % | |
یاسمن محمدی پور | 4 | 98/08 % | |
Tara Mohammadi | 3 | 96/43 % | |
yasaman mohamadipur | 51 | 95/86 % | |
مهدی هنرمند | 1 | 95/24 % | |
محمدجواد ملائی اردستانی | 3 | 94/44 % | |
Arzhang Saberi | 4 | 93/33 % | |
Soheila Karimi | 124 | 92/73 % | |
aram farhmand | 10 | 92/31 % | |
یاشار اسکندری | 98 | 91/14 % | |
عباس پورمیدانی | 1 | 90/00 % | |
پریسا سلوکی شهرضایی | 72 | 89/49 % | |
ارشیا قلمکاری | 33 | 89/23 % | |
Matin Azimipour | 30 | 88/17 % |