STR در پایتون چیست؟ – به زبان ساده با مثال و کد
تابع درونی STR برای تبدیل انواع دادههای رایج در پایتون به رشته (String) استفاده میشود. زبان برنامه نویسی پایتون چندین تابع درونی مختلف تعریف کرده است. این توابع از پیشتعریف شدهاند تا وظایف خاصی را انجام دهند. وظایف مورد نظر جزو کارهایی هستند که معمولا به صورت رایج توسط برنامه نویسان مورد استفاده قرار میگیرند. یکی از رایجترین کارهایی که برنامهها در زمان اجرا به وفور انجام میدهند، تبدیل نوع در پایتون است. یعنی دادههایی را از نوعی به نوع دیگر تبدیل میکنند. تابع STR در پایتون هم جزئی از همین دسته تابعهای از پیشتعریف شده به منظور تبدیل نوع است.
در این مطلب از مجله فرادرس با تابع STR در پایتون آشنا شده و سینتکس آن را به همراه پارامترهای اختصاصی تابع STR بررسی کردهایم. سپس چند مثال مختلف از روش استفاده تابع STR را به صورت کدنویسی شده نمایش دادیم.
STR در پایتون چیست؟
تابع str()، به صورت الزامی شیء از هر نوع داده را میپذیرد و آن را به رشته معادل کاراکترهای تشکیل دهندهاش تبدیل میکند. شيئ پذیرفته شده توسط تابع str() میتواند از نوعهای Float و Integer یا حتی Boolean باشد.
جدا از داده اجباری که تابع str() باید بپذیرد - برای تبدیل شدن به نوع رشته - دو پارامتر دیگر نیز وجود دارند که به صورت اختیاری هستند. تمام پارامترهای تابع str() را در فهرست زیر معرفی کردهایم.
- Object: این پارامتر نشاندهنده دادهای است که میخواهیم به رشته تبدیل شود. وجود پارامتر object در این تابع پایتون ضروری است. اگر این پارامتر را به تابع ارسال نکنیم، تابع str() در خروجی رشته خالی را برمیگرداند.
- Encoding: این پارامتر نمایانگر نسخه «رمزگذاری» (Encoding) است که نوع داده مورد نظر باید طبق آن تبدیل شود. معمولا از نسخه UTF-8 برای رشتهها استفاده میشود. بنابراین به صورت پیشفرض هم بر روی این نسخه تنظیم شده است. استفاده از این پارامتر اختیاری است.
- Errors: در این پارامتر، رفتاری را مشخص میکنیم که در صورت بروز خطا در زمان رمزگشایی دادهها اتفاق میافتد. مقادیر قابل استفاده برای این پارامتر، شامل strict و ignore و replace و غیره میشود.
در ادامه به بررسی سینتکس خام دستور STR پرداخته و روش استفاده از این پارامترها را در آن نشان میدهیم.
سینتکس تابع STR در پایتون
همینطور که مشاهده کردید در استفاده از تابع str() میتوان ۳ پارامتر جداگانه را به کار برد. در این قسمت از مطلب، سینتکس خام استفاده از تابع STR را نمایش داده و پارامترهای قابل پذیرش توسط آن را معرفی کردهایم.
1str(object, encoding=encoding, errors=errors)
وقتی که لازم است مقادیری از نوعهای Float و int در پایتون را به رشته تبدیل کنیم، استفاده از تابع STR بسیار مفید است.
در سینتکس بالا، پارامتر object میتواند از هر نوع دادهای باشد. این پارامتر در واقع نشاندهنده شیئی است که باید تبدیل نوع شود. خالی بودن این پارامتر منجر به برگرداندن رشته خالی توسط تابع str() میشود. پارامتر encoding هم برای مشخص کردن نسخه رمزگذاری رشته تولید شده و در آخر هم از پارامتر errors برای مشخص کردن عکسالعمل تابع در زمان بروز مشکل در رمزگشایی مقدار داده ورودی استفاده میشود. این پارامتر به صورت پیشفرض بر روی «strict» تنظیم شده است.
در ادامه مطلب به بررسی بیشتر انواع مقادیر مورد استفاده در زمان رویدادن خطا پرداختهایم.
انواع مقادیر قابل ارسال به پارامتر Errors
تابع تابع str() میتواند ۶ نوع مقدار مختلف را برای زمانهای روبهرو شدن با خطا و به عنوان مقدار پارامتر errors دریافت کند. تمام این موارد را در فهرست پایین معرفی کرده و توضیح دادهایم.
- strict : این مقدار به عنوان مقدار پیشفرض پارامتر errors در نظر گرفته شده است. در صورت تنظیم بودن مقدار strict و بروز خطا، مفسر پایتون خطای استثنای «UnicodeDecodeError» را به بیرون برمیگرداند.
- replace : در صورتی که از این مقدار برای پارامتر errors استفاده کنیم، توسط تابع str()، کدی که قابل رمزگشایی نیست با کارکتر «?» جایگزین میشود.
- ignore : اگر مقدار پارامتر خطای errors بر بروی ignore تنظیم شده باشد، کاراکتر رمزگشایی نشده، توسط تابع str() نادیده گرفته خواهد شد و در نتایج نمایش داده نمیشود.
- xmlcharrefreplace : در این مورد، کاراکترهای رمزگشایی نشده، همراه با مرجع کاراکتری XML بازگردانده میشود.
- backslashreplace : در صورتی که از این مقدار برای پارامتر errors استفاده کنیم، کدی که قابل رمزگشایی نیست با توالی فضای خالی به صورت «\uNNNN» بازگردانده میشود.
- namereplace : در صورتی که از این مقدار برای پارامتر errors استفاده کنیم، به ازای کاراکترهای غیرقابل رمزگشایی از توالی \N{…} در خروجی استفاده میشود.
مثال هایی برای استفاده از تابع STR در پایتون
پایتون زبان برنامهنویسی شیگرا و سطح بالا با دستورات نزدیک به زبان انسان است. یادگیری این زبان برنامهنویسی با توجه به قابل فهم بودن و سادگی سینتکس آن، ساده و سریع است. یکی از مهمترین نوعهای قابل استفاده در این زبان نوع داده رشته است. برای تسلط بر روی کار با این نوع داده میتوانید فیلم آموزش رایگان رشته و متن در برنامه نویسی پایتون را از فرادرس مشاهده کنید. به منظور کمک به مخاطبین مجله، لینک مربوط به فیلم را در پایین نیز قرار دادهایم.
تا به اینجای کار دانستیم که تابع str() در خروجی شیء رشتهای معادل مقدار دریافت شده ورودی را برمیگرداند. البته در پایتون برای برعکس کردن این فرایند هم چارهای اندیشیده شده است. رشتهها را هم میتوان به انواع داده عددی یا ساختارهای ذخیره دادهای مانند لیست تبدیل کرد. برای آموزش و مشاهده مثالهای کدنویسی شده دراینباره میتوانید مطالب تبدیل رشته به عدد در پایتون را به زبان ساده با کد و مثال و تبدیل رشته به لیست در پایتون، به زبان ساده با کد و مثال را از مجله فرادرس مطالعه کنید.
در ادامه این بخش از مطلب به بررسی چند مثال ساده به صورت کدنویسی شده درباره روش استفاده از تابع str() در پایتون میپردازیم.
مثال اول: تبدیل به نوع رشته
در مثال پایین با استفاده از تابع str() مقداری با نوع عدد صحیح را که در متغیر num قرار داده شده به نوع رشته تبدیل میکنیم. در این، مثال به پارامترهای اختیاری encoding و errors مقداری را اختصاص ندادهایم.
1
2num = 100
3s = str(num)
4print (s)
5
6Output:
7
8100
مثال دوم: روش کار تابع STR به ازای بایت ها
در مثال نمایش داده شده کادر زیر، اگر مقدارهایی را برای پارامترهای اختیاری encoding و errors مشخص کنیم، نوع داده شیء object باید از نوع بایت یا آرایهای از بایتها باشد. به این معنا که شیء ارسال شده به تابع باید از نوع «شیء شبهبایت» (Bytes-Like-Object) باشد.
1
2a = bytes('Americàn', encoding='utf-8')
3
4print(str(a, encoding='ascii', errors='ignore'))
5
6#Output: Americn
در کد ساده داده شده بالا، کدهای ASCII نمیتوانند کاراکتر «à» را شناسایی کنند. یعنی در چنین موردی تابع str() پایتون بهجای برگرداندن کلمه «Americn» در خروجی باید پیغام خطا برگرداند. اینکه پیغام خطا در کد بالا برگشت داده نشده بخاطر استفاده از کد errors =’ ignore’ در تابع str() است. استفاده از مقدار ignore برای پارامتر errors به معنای این است که به کامپایلر دستور داده شده در زمان روبهرو شدن با کاراکترهای غیرقابل رمزگشایی، آنها را نادیده بگیرد.
به همین صورت، اگر مقدار پارامتر errors را در کدها برابر با replace بگذاریم، کد و خروجی بهدست آمده به شکل زیر میشوند.
1
2a = bytes('Americàn', encoding='utf-8')
3
4print(str(a, encoding='ascii', errors='replace'))
5
6#Output: Americ?n
فیلم های آموزش پایتون در فرادرس
پایتون در بین زبانهای برنامهنویسی، به یکی از بهترین گزینهها برای توسعه نرمافزارهای پیچیده تبدیل شده است. در عین حال، فرایند یادگیری و استفاده بسیار سادهای هم دارد. بنابراین، تلاش برای آموزش مهارتهای برنامهنویسی پایتون یکی از بهترین انتخابها برای اشخاصی است که به شغلهای برنامهنویسی علاقه دارند. علاوه بر این، یادگیری زبان پایتون با افزایش مهارت، به مرور جذابتر و کاربردیتر نیز میشود. برای یادگیری حرفهای این زبان، روشهای گوناگونی وجود دارند. اما استفاده از فیلمهای آموزشی یکی از بهترین روشها است.
وبسایت آموزشی فرادرس به صورت تخصصی مشغول تولید فیلمهای آموزشی است. زبان پایتون هم به یکی از گزینههای بسیار پرطرفدار در بین فیلمهای فرادرس تبدیل شده است. در صورت علاقه به آموختن زبان پایتون در حد ابتدایی میتوانید، فیلم آموزش رایگان پایتون، برنامه نویسی سریع و آسان در ۱۴۰ دقیقه را از فرادرس مشاهده کنید. اما اگر آموزشهای اولیه پایتون را پشت سر گذارده و به دنبال پیشرفت بیشتر هستید، فیلمهای زیر، موارد خوبی برای ادامه مسیر هستند.
- فیلم آموزش برنامه نویسی پایتون پیشرفته درباره ترفندهای Python در فرادرس
- فیلم آموزش برنامه نویسی شی گرا در پایتون از فرادرس
- فیلم آموزش رایگان کتابخانه Datetime در پایتون برای مدیریت زمان در فرادرس
- فیلم آموزش ساختمان داده ها با پایتون در فرادرس
- فیلم آموزش برنامه نویسی پایتون تکمیلی درباره بهینه کردن کدها در Python از فرادرس
جمعبندی
تابع STR در زبان برنامه نویسی پایتون یکی از توابع درونی است که برای تبدیل کردن مقادیر مشخص شده به نوع داده رشته به کار برده میشود. str() جزو متدهای رشته در پایتون به حساب میآید. اما جزو کلمات کلیدی نیست، زیرا کلمات کلیدی پایتون دارای محدودیت استفاده هستند. اما توابع درونی را میتوان در صورت نیاز بازنویسی یا Override کرد. این تابع سه پارامتر اصلی را در ورودی میگیرد که نوع رفتار آن را در مقابل انواع دادهها تعریف میکنند.
در این مطلب از مجله فرادرس درباره تابع STR در پایتون صحبت کردهایم. در ابتدای مطلب به تعریف این تابع پرداخته و روش کار آن را توضیح دادیم در نهایت هم با مثالهای مختلفی عکس العمل آن را در مقابله با پارمترهای مختلف بررسی کردیم. تسلط به کار بر روی این توابع مهم به افزایش کیفیت کار و مهارت در طراحی برنامههای خاصی که با رشتهها کار میکنند، بسیار کمک میکند. از این جمله میتوان به حوزه تحلیل دادهها اشاره کرد.