• ارسال کننده: سمیه مظفری
  • تاریخ انتشار: 2020 / 01 / 09

توابع ورودی و خروجی پایتون

مقاله قبلی: حلقه های تکرار for و while در زبان برنامه نویسی پایتون

در پایتون برای اعمال ورودی و خروجی به ترتیب از توابعی مثل input () و print()  استفاده می شود. حال اجازه دهید ابتدا به تابع خروجی print() بپردازیم.

  • تابع print

یادآوری: در پایتون 2 می توانید دستور print را بدون پرانتز بنویسید درحالی که در پایتون 3، این کار منجر به ایجاد خطای نحوی می شود و باید print را یک تابع در نظر گرفته و پرانتزهای آن را نیز بنویسید.

           تابع print در زبان برنامه نویسی پایتون

از تابع print() معمولا برای چاپ خروجی دستورات بر روی صفحه نمایش استفاده می شود. اما بهتر است بدانید که می توانیم از همین تابع برای ارسال خروجی دستورات به یک فایل پایتون هم استفاده کنیم. البته این مبحث، موضوع مقاله فعلی ما نیست و در بخش های بعدی به آن خواهیم پرداخت.

حال به قطعه کد زیر توجه کنید. اولین تابع print یک رشته معمولی را چاپ می کند اما دومین تابع print()، بدون این که شما به طور دستی فاصله ای را بعد از انتهای رشته لحاظ کنید به صورت خودکار بین رشته موجود و مقدار متغیر a به اندازه یک کاراکتر، فاصله می اندازد.

دومین تابع print() در پایتون

اما جالب است بدانید که شما می توانید نوع این فاصله را هم تغییر دهید. چرا که سینتکس و نحو واقعی تابع print به صورت زیر است:

سینتکس و نحو واقعی تابع print

منظور از object مقادیری است که قرار است چاپ شوند. جداکننده sep نیز مشخص کننده کاراکتری است که مقادیر بخش اول را از هم تفکیک می کند البته به صورت پیش فرض، مقدار این خصوصیت برابر است با کاراکتر فاصله. بعد از آن که همه مقادیر چاپ شدند کاراکتری که در قسمت end نوشته اید چاپ می شود. مقدار پیش فرض این خصوصیت هم برابر است با کاراکتر خط جدید (/) .

file  نیز به شیئی اشاره می کند که قرار است مقادیر در آن چاپ شوند. مقدار پیش فرض این قسمت برابر sys.stdout (screen) است به همین دلیل وقتی شما فایلی را برای دستور print مشخص نمی کنید خروجی شما، بر روی صفحه نمایش چاپ می شود.

در مثال زیر، در اولین تابع print، به دلیل ذکر نشدن بخش sep ، به صورت پیش فرض از کاراکتر فاصله (space) برای جدا کردن مقادیر از یکدیگر استفاده شده است. در دومین تابع print، کاراکتر ستاره (*) حکم جدا کننده را دارد و نهایتا در سومین تابع print از علامت # به عنوان جداکننده و کاراکتر & به عنوان کاراکتر پایانی استفاده شده است.

کاراکتر پایانی در سومین تابع print

گاهی اوقات دوست دارید که خروجی رشته خود را به شکلی جذاب قالب بندی کنید. در چنین مواقعی می توانید از تابع str.format() استفاده کنید. این تابع برای هر شیئی از نوع رشته قابل رویت است.

تابع str.format() در پایتون

حتی شما می توانید از کاراکتر آکولاد { } به عنوان یک نگه دارنده نیز استفاده کرده و ترتیب چاپ شدن رشته ها را توسط اندیس هایی که داخل این نگه دارنده قرار می گیرند مشخص کنید. مثلا در اولین تابع print مثال زیر، مولفه اول تابع format در قسمتی که با اندیس صفر مشخص شده قرار می گیرد و مولفه دوم نیز در قسمت {1} . در تابع print دوم هم براحتی با تعویض جای این دو اندیس، به پایتون می گوییم که ابتدا رشته’butter’  و سپس رشته ‘bread’ را چاپ کند.

تابع print  در پایتون

علاوه بر این با ذکر نام متغیرهای رشته ای در داخل علامت {}  هم می توانید نحوه چاپ شدن رشته ها را به پایتون اعلام کنید.

اعلام نحوه چاپ شدن رشته ها به پایتون

اگر به یاد داشته باشید در زبان c تابعی به نام printf داشتیم که برای فرمت دهی رشته ها و اعداد به کار می رفت. حال در زبان پایتون هم می توانیم با به کاربردن عملگر % در داخل تابع print ، رشته ها را قالب بندی کنیم. مثلا در قطعه کد زیر، عبارت %3.2f  باعث می شود که مقدار متغیر x تا 2 رقم اعشار به سمت بالا گرد شود و %3.4f نیز عدد 12.3456789  را تا 4 رقم اعشار به سمت بالا گرد می کند.

قالب بندی رشته ها در پایتون

  • تابع input()

تا به حال برنامه هایی که می نوشتیم ایستا بودند نه پویا به این معنا که مثلا مقادیر متغیرها را خودمان در سورس برنامه مشخص می کردیم. اما اگر بخواهیم برنامه خود را انعطاف پذیرتر کنیم بایستی ورودی های برنامه را از خود کاربر دریافت کنیم. تابعی که این امکان را برای ما فراهم می کند تابع input() است. نحو این تابع به صورت زیر می باشد:

تابع input() در زبان برنامه نویسی پایتون

منظور از prompt همان رشته اییست که در صفحه نمایش چاپ شده و از کاربر می خواهد که مقدار مورد نظر را وارد (تایپ) کند. این بخش اختیاری است. یعنی می توانید آن را ننویسید اما نوشتن آن به خوانایی برنامه و فهم کاربر کمک شایانی می کند.

خوانایی برنامه و فهم کاربر در پایتون

مثلا با اجرای قطعه کد بالا، اشاره گر موس به شکل چشمک زن درآمده و منتظر می ماند که کاربر عددی را وارد کند. سپس عدد دریافتی را در متغیر num ریخته و نهایتا مقدار متغیر num را در خروجی نمایش می دهد.

اما نکته حائز اهمیت در قطعه کد بالا این بود که عدد دریافتی توسط کاربر (10) به صورت یک رشته (’10’) در نظر گرفته می شود نه یک عدد. حال اگر بخواهیم این رشته را به عدد صحیح یا اعشاری تبدیل کنیم باید به ترتیب از توابع int() و float() استفاده کنیم.

تبدیل رشته  به عدد صحیح یا اعشاری

حال اگر کاربر به جای وارد کردن یک عدد، یک عبارت محاسباتی را وارد کند دیگر دو تابع بالا قادر به تبدیل کردن آن نخواهند بود و خطای ValueError را تولید می کنند. این جاست که پای تابع دیگری به نام eval() به میان می آید که قادر است حتی عبارات محاسباتی وارد شده توسط کاربر را هم ارزیابی کرده و نتیجه را به عدد صحیح تبدیل کند. قطعه کد زیر به خوبی این واقعیت را اشکار می سازد.

تابع eval()  در پایتون

در این مقاله با تابع print و تابع input() از سری آموزش های زبان برنامه نویسی پایتون آشنا شدید. با ادامه این آموزش ها در مقالات بعدی همراه ما باشید.

ترجمه: رقیه آقایاری

 

این محتوا اختصاصاً برای یاد بگیر دات کام تهیه شده است استفاده از آن با ذکر منبع همراه با لینک آن و نام نویسنده یا مترجم مجاز است
برچسب ها:



نظر شما چیست؟

پرسش های خود را در بخش پرسش و پاسخ مطرح کنید

لطفا جای خالی را پر کنید







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