وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

تفاوت بین %s و %d در قالب بندی رشته پایتون

0 163
زمان لازم برای مطالعه: 6 دقیقه


معرفی

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

پایتون راه های مختلفی برای قالب بندی رشته ها ارائه می دهد. سه روش اصلی قالب بندی به سبک قدیمی با استفاده از % اپراتور، str.format() روشی که در پایتون 2.6 به وجود آمد و مدرن ترین راه، رشته های f، در پایتون 3.6 معرفی شده است.

در حالی که f رشته ها و str.format() به دلیل بیان و خوانایی آنها محبوبیت پیدا کرده است % اپراتور یک روش اساسی باقی می ماند، به ویژه در پایگاه های کد قدیمی تر. درک کردن %s و %d، دو مشخص کننده قالب اساسی که با استفاده از % عملگر، گامی مهم در تسلط بر قالب بندی رشته پایتون است.

در این مقاله، ما عمیقاً به این موضوع خواهیم پرداخت %s و %d مشخص‌کننده‌های قالب، تفاوت‌ها، کاربردها و روش تعامل آنها با انواع داده‌ها را توضیح می‌دهد. در پایان این مقاله، شما درک کاملی از این جنبه های مهم قالب بندی رشته در پایتون خواهید داشت.

%s در مقابل %d: اصول اولیه

در پایتون، % عملگر برای قالب بندی رشته ها استفاده می شود. آرگومان چپ را بسیار شبیه a تفسیر می کند printfرشته فرمت -style به آرگومان مناسب اعمال می شود و به شما امکان می دهد رشته ها را به روش های مختلف قالب بندی کنید. دو مورد از متداول‌ترین مشخص‌کننده‌های فرمت مورد استفاده با % اپراتور هستند %s و %d.

%s تعیین کننده فرمت

این %s فرمت مشخص کننده یک مکان نگهدار برای a است رشته. این %s specifier شی را با استفاده از str()، به این معنی که لزوماً لازم نیست رشته باشد. این می تواند هر شی پایتون، مانند یک عدد یا حتی یک لیست باشد. پایتون به طور خودکار این اشیاء را به نمایش رشته آنها تبدیل می کند:

name = "Bob"
print("Hello, %s!" % name)

این به ما می دهد:

Hello, Bob!

%d تعیین کننده فرمت

از سوی دیگر، %d فرمت مشخص کننده یک مکان نگهدار برای a است عدد صحیح اعشاری. این %d مشخص کننده به یک عدد صحیح یا عددی نیاز دارد که می تواند بدون اتلاف به یک عدد صحیح تبدیل شود، مانند یک بولی:

age = 25
print("I am %d years old." % age)

این منجر به:

I am 25 years old.

زمان استفاده از %s

این %s فرمت specifier یکی از همه کاره ترین در زرادخانه قالب بندی رشته پایتون است. همانطور که به طور ضمنی شی ارائه شده را با استفاده از عبارت به رشته تبدیل می کند str() تابع، این مشخص کننده معمولاً زمانی استفاده می شود که نوع دقیق شی که باید در رشته تعبیه شود ناشناخته یا نامربوط.

توجه داشته باشید: وقتی از %s فرمت مشخص کننده با یک شی غیر رشته ای در پایتون، the str() تابع به طور ضمنی نامیده می شود روی آن شی را به نمایش رشته خود تبدیل کند. این به این معنی است که %s می تواند برای قالب بندی هر شی، نه فقط رشته ها استفاده شود.

پیشنهاد می‌کنیم بخوانید:  روش به روز رسانی اجباری یک مؤلفه React در این مقاله به شما نشان خواهیم داد که چگونه یک مؤلفه را در React.js به اجبار به روز کنید. به طور خاص، ما یک معرفی کوتاه برای React Rerender ارائه خواهیم کرد، روش به‌روزرسانی را در مؤلفه‌های مبتنی بر کلاس و روش به‌روزرسانی اجباری در مؤلفه‌های عملکردی را نشان خواهیم داد. React Re-Renders خود React به طور خودکار رندر مجدد را کنترل می کند...

داده های متغیر

اگر داده های متغیری دارید که باید آنها را به صورت رشته نشان دهید، می توانید از آنها استفاده کنید %s. این می تواند شامل نام کاربر، مسیر فایل یا هر اطلاعات دیگری باشد که می تواند به صورت متنی نمایش داده شود، به عنوان مثال:

username = "Bob"
print("Logged in user: %s" % username)

این به ما می دهد:

Logged in user: Bob

داده های غیر رشته ای

حتی اگر داده های شما رشته ای نباشد، همچنان می توانید استفاده کنید %s. پایتون به طور خودکار داده ها را به نمایش رشته خود تبدیل می کند. مثلا اگر بخواهید print یک لیست به عنوان بخشی از یک رشته:

fruits = ("apple", "banana", "cherry")
print("Fruits: %s" % fruits)

این خروجی زیر را خواهد داشت:

Fruits: ('apple', 'banana', 'cherry')

توجه کنید که چگونه، از زمانی که آرایه کامل را رد کردیم، براکت ها، کاما و آپستروف ها را نیز چاپ می کند.

چندین نقطه داده

اگر می خواهید چندین قطعه داده را در یک رشته قالب بندی کنید، می توانید از چندین مورد استفاده کنید %s مشخص کننده ها برای مطابقت با تعداد، باید چندین داده ارائه دهید %s مشخص کننده ها:

username = "Bob"
access_level = "Admin"
print("User: %s, Access Level: %s" % (username, access_level))

این قرار خواهد داد username و access_level به ترتیب صحیح در رشته خروجی:

User: Bob, Access Level: Admin

یاد آوردن: در حالی که %s همه کاره است و انواع داده های مختلف را با ظرافت مدیریت می کند، همیشه در نظر بگیرید که آیا مناسب ترین گزینه است یا خیر روی نوع داده و مورد استفاده خاص شما در برخی موارد، با استفاده از یک مشخص کننده فرمت خاص تر (مانند %d برای اعداد صحیح یا %.2f برای اعداد ممیز شناور با دو رقم اعشار) می تواند کنترل بیشتری بر فرمت خروجی شما فراهم کند.

زمان استفاده از %d

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

توجه داشته باشید: در حالی که %d یک ابزار عالی برای جاسازی اعداد صحیح در رشته ها است، مهم است که توجه داشته باشید که به طور خودکار انواع غیر صحیح را تبدیل نمی کند. به عنوان مثال، با استفاده از %d با یک عدد ممیز شناور منجر به a می شود TypeError. اگر یک عدد ممیز شناور دارید، باید ابتدا آن را به یک عدد صحیح تبدیل کنید یا از یک فرمت مشخص کننده طراحی شده برای اعداد ممیز شناور استفاده کنید، مانند %f یا %.2f.

علاوه بر این، در حالی که %d می تواند در اکثر موارد با استفاده از بولین ها را قالب بندی کند %s با یک Boolean ممکن است هنگام چاپ خواناتر باشد True یا False بجای 1 یا 0. بنابراین، هنگام تصمیم گیری، همیشه مورد استفاده خاص و نوع داده ای را که با آن کار می کنید در نظر بگیرید روی تعیین کننده فرمت

داده های عدد صحیح

اگر داده های اعداد صحیح مانند سن یا تعداد دارید، می توانید استفاده کنید %d برای جاسازی آن در یک رشته:

age = 25
print("I am %d years old." % age)

اجرای این به این نتیجه می رسد:

I am 25 years old.

بولین ها

همچنین می توانید استفاده کنید %d با بولین ها پایتون رفتار می کند True مانند 1 و False مانند 0:

print("True is %d" % True)
print("False is %d" % False)

همانطور که انتظار می رود، این به ما می دهد:

True is 1
False is 0

چندین نقطه داده عدد صحیح

اگر با چندین نقطه داده اعداد صحیح سر و کار دارید، می توانید از چند عدد استفاده کنید %d مشخص می کند و یک تاپل با مقادیر مربوطه ارائه می کند:

height = 180
weight = 75
print("My height is %d cm and my weight is %d kg." % (height, weight))

که منجر به:

My height is 180 cm and my weight is 75 kg.

اشتباهاتی که باید از آنها اجتناب کرد

قالب بندی رشته پایتون یک ویژگی قدرتمند است، اما مانند هر ابزار قدرتمند دیگری، استفاده صحیح از آن برای جلوگیری از اشکالات و حفظ خوانایی کدتان بسیار مهم است. در زیر برخی از رایج ترین مشکلاتی که باید هنگام استفاده از آنها اجتناب کنید ذکر شده است %s و %d.

تعیین‌کننده‌های قالب نامتناسب

مطمئن شوید که از فرمت مشخص کننده صحیح برای نوع داده ای که با آن کار می کنید استفاده می کنید. استفاده کردن %d با انواع غیر صحیح می تواند منجر به خطا در هنگام استفاده شود %s با انواع عددی ممکن است کنترل مطلوبی بر فرمت خروجی به شما ندهد.

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

تعداد آرگومان ها نادرست است

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

print("My name is %s and I am %d years old." % ("Bob"))

خروجی:

TypeError: not enough arguments for format string

استفاده نادرست از پرانتز

هنگام ارائه چندین آرگومان برای قالب بندی رشته، باید آنها را در یک تاپل قرار دهید. فراموش کردن پرانتز می تواند منجر به خطاهای گیج کننده شود:

print("My name is %s and I am %d years old." % "Bob", 25)

این باعث خطای زیر می شود:

TypeError: not all arguments converted during string formatting

با اضافه کردن پرانتز آن را تصحیح کنید:

print("My name is %s and I am %d years old." % ("Bob", 25))

استفاده کردن % با دیکشنری ها

هنگام استفاده از % اپراتور با فرهنگ لغت، به یاد داشته باشید که استفاده کنید %(key)s یا %(key)d برای تعیین کلید در فرهنگ لغت. فراموشی انجام این کار می تواند منجر به TypeError یا KeyError:

data = {"name": "Bob", "age": 25}
print("My name is %s and I am %d years old." % data)

خروجی:

TypeError: not enough arguments for format string

با اضافه کردن کلیدها آن را تصحیح کنید:

data = {"name": "Bob", "age": 25}
print("My name is %(name)s and I am %(age)d years old." % data)

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

نتیجه

درک تفاوت های ظریف قالب بندی رشته در پایتون می تواند به خوانایی کد شما و همچنین توانایی شما برای کار با انواع داده ها کمک کند. همانطور که دیدیم، %s و %d مشخص‌کننده‌های قالب ابزارهای مفیدی برای ترکیب داده‌های رشته و عدد صحیح به ترتیب در متن هستند.

%s شی داده شده را با استفاده از عبارت به یک رشته تبدیل می کند str() عملکرد، و آن را برای هر نوع داده ای همه کاره می کند، در حالی که %d مخصوص اعداد صحیح است مهم است که از آنها به درستی استفاده کنید و از اشتباهات متداول خودداری کنید، مانند فرمت نامناسب مشخص کننده ها یا تعداد نادرست آرگومان ها.

در حالی که % عملگر یک روش قالب‌بندی رشته مفید است، پایتون تکنیک‌های دیگری مانند f-strings، the str.format() متد و رشته های الگو که هر کدام مزایای خاص خود را دارند. انتخاب روش قالب بندی رشته تا حد زیادی بستگی دارد روی نیازهای خاص و ترجیح شخصی شما

(برچسب‌ها به ترجمه)# python



منتشر شده در 1402-12-31 15:33:06

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید