در این مطلب، مبحث ورودی و خروجی در پایتون مورد بررسی قرار خواهد گرفت. پیش از این، در مطلبی با عنوان «زبان برنامه نویسی پایتون (Python) — از صفر تا صد» مفاهیم مقدماتی پایتون شامل چیستی «زبان برنامه‌نویسی پایتون» (Python Programming Language)، دلایل محبوبیت آن، ویژگی‌های پایتون، مزایا و معایب آن، کاربردهای پایتون، بازار کار، نسخه‌های مختلف این زبان (نسخه ۲ و ۳) و چگونگی انتخاب از میان این دو نسخه و تفاوت‌های زبان پایتون با دیگر زبان‌های برنامه‌نویسی مورد بررسی قرار گرفت. در مطلب «پایتون برای مبتدیان — به زبان ساده» به مباحث مقدماتی پایتون برای افراد مبتدی، شامل روش نصب و اجرای پایتون و همچنین، چگونگی نوشتن برنامه «!Hello World» پرداخته شده است. همچنین، در مطالب زیر، روش نصب پایتون در سیستم‌عامل‌های گوناگون برای علاقه‌مندان به این موضوع، تشریح شد.

در مطلب «کلیدواژه‌ها و شناساگرها در پایتون — به زبان ساده» به موضوع «کلمات رزرو شده» (Reserved Words)، «کلیدواژه‌ها» (Keywords) و «شناساگرها» (Identifier) پرداخته شده است. همچنین، در مطلبی با عنوان «دستورات پایتون و دندانه گذاری — به زبان ساده» روش نوشتن دستورات زبان پایتون و مفهوم «دندانه‌گذاری» (Indentation) در پایتون مورد بررسی قرار گرفته است. در مطلب «توضیحات در پایتون — به زبان ساده»، مفهوم «توضیحات» و چگونگی نوشتن توضیحات در پایتون به طور کامل تشریح و در مطلب «انواع متغیرها در پایتون — به زبان ساده» مفهوم و کاربرد «متغیرها» (Variables)، «ثابت‌ها» (Constant) و «لیترال‌ها» (Literals) بیان شده است. در این مطلب، ورودی و خروجی در پایتون و چگونگی «وارد کردن» (Import) داده‌ها در این زبان مورد بررسی قرار گرفته است است.

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

در این راهنما، بر دو تابع توکار ()print و ()input به منظور انجام عملیات ورودی و خروجی در پایتون، تمرکز شده است. همچنین، روش وارد کردن (ایمپورت) ماژول‌ها و استفاده از آن‌ها در برنامه نیز مورد بررسی قرار گرفته است. پایتون توابع توکار متعدد و از پیش آماده‌ای را فراهم می‌کند که می‌توان از آن‌ها در «خط فرمان پایتون» (Python prompt) استفاده کرد. برخی از توابع مانند ()input و ()print به طور گسترده به ترتیب برای عملیات استاندارد ورودی و خروجی در پایتون مورد استفاده قرار می‌گیرند. در ادامه، ابتدا به تابع خروجی (output) پرداخته خواهد شد.

خروجی پایتون با تابع ()print

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

print('This sentence is output to the screen')
# Output: This sentence is output to the screen

a = 5

print('The value of a is', a)
# Output: The value of a is 5

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

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

در دستور بالا، objects مقدار(هایی) است که باید چاپ شوند. فاصله جداکننده (sep) بین مقادیر مورد استفاده قرار گرفته است. کاراکتر جدا کننده، به طور پیش‌فرض، برابر با کاراکتر فاصله تنظیم می‌شود. پس از آنکه همه مقادیر چاپ شدند، end چاپ می‌شود. در صورتی که پارامتر end مقداردهی نشود، به صورت پیش‌فرض، با مقدار کاراکتر خط جدید تنظیم می‌شود. The file شیئی است که مقادیر در آن چاپ می‌شوند و مقدار پیش‌فرض آن sys.stdout (صفحه نمایش) است. در ادامه، مثالی در همین رابطه ارائه شده است.

print(1,2,3,4)
# Output: 1 2 3 4

print(1,2,3,4,sep='*')
# Output: 1*2*3*4

print(1,2,3,4,sep='#',end='&')
# Output: 1#2#3#4&

قالب‌بندی خروجی

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

>>> x = 5; y = 10
>>> print('The value of x is {} and y is {}'.format(x,y))
The value of x is 5 and y is 10

در اینجا، کروشه به عنوان placeholders مورد استفاده قرار می‌گیرد. می‌توان ترتیبی را مشخص کرد که با استفاده از اعداد چاپ شود (اندیس تاپل).

print('I love {0} and {1}'.format('bread','butter'))
# Output: I love bread and butter

print('I love {1} and {0}'.format('bread','butter'))
# Output: I love butter and bread

حتی می‌توان از آرگومان‌های کلیدواژه برای قالب‌بندی رشته استفاده کرد.

>>> print('Hello {name}, {greeting}'.format(greeting = 'Goodmorning', name = 'John'))
Hello John, Goodmorning

همچنین، می‌توان رشته‌هایی مانند استایل ()sprintf قدیمی استفاده شده در زبان برنامه‌نویسی C را استفاده کرد. از عملگر % برای انجام این کار استفاده می‌شود.

>>> x = 12.3456789
>>> print('The value of x is %3.2f' %x)
The value of x is 12.35
>>> print('The value of x is %3.4f' %x)
The value of x is 12.3457

ورودی پایتون

تاکنون، برنامه‌های ارائه شده در اینجا، ایستا بودند. مقدار متغیرها تعریف و یا در کد منبع به صورت «کد سخت» (Hard Code) نوشته شده بود. برای پذیرش انعطاف‌پذیری، ممکن است نیاز به گرفتن ورودی از کاربر باشد. در پایتون، تابع ()input برای انجام این کار وجود دارد. نحو تابع ()input به صورت زیر است.

input([prompt])

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

>>> num = input('Enter a number: ')
Enter a number: 10
>>> num
'10'

در اینجا، می‌توان مشاهده کرد که مقدار وارد شده «۱۰»، یک رشته است؛ نه یک عدد. برای تبدیل این رشته به یک عدد می‌توان از تابع ()int یا ()float استفاده کرد.

>>> int('10')
10
>>> float('10')
10.0

عملیات مشابهی با استفاده از تابع ()eval قابل انجام است. اما، مدت زمان بیشتری به طول می‌انجامد. این روش می‌تواند حتی عبارت‌ها را ارزیابی کند، خروجی فراهم شده نیز رشته است.

>>> int('2+3')
Traceback (most recent call last):
  File "<string>", line 301, in runcode
  File "<interactive input>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '2+3'
>>> eval('2+3')
5

وارد کردن (ایمپورت) در پایتون

هنگامی که برنامه رشد می‌کند و بزرگ‌تر می‌شود، یک ایده خوب شکستن آن به ماژول‌های گوناگون و کوچک‌تر است. یک ماژول در واقع یک فایل حاوی تعریف‌ها و دستورات پایتون است. ماژول‌های پایتون دارای یک اسم فایل هستند و با پسوند py. به پایان می‌رسند. تعاریف درون یک ماژول قابل وارد کردن (ایمپورت) به دیگر ماژول‌ها یا مفسر تعاملی در پایتون است. در این راستا می‌توان از کلیدواژه import نیز استفاده کرد. برای مثال، می‌توان ماژول math را با نوشتن import math وارد (import) کرد.

import math
print(math.pi)

اکنون همه تعاریف درون ماژول math در دامنه موجود هستند. همچنین، می‌توان برخی از مشخصه‌های معین و تابع‌ها را با استفاده از کلیدواژه from وارد کرد. مثال زیر در همین رابطه است.

>>> from math import pi
>>> pi
3.141592653589793

هنگام وارد کردن یک ماژول، پایتون چندین مکان تعریف شده در sys.path را تعریف می‌کند. این یک لیست از موقعیت دایرکتوری‌ها است.

>>> import sys
>>> sys.path
['', 
 'C:\\Python33\\Lib\\idlelib', 
 'C:\\Windows\\system32\\python33.zip', 
 'C:\\Python33\\DLLs', 
 'C:\\Python33\\lib', 
 'C:\\Python33', 
 'C:\\Python33\\lib\\site-packages']

می‌توان موقعیت دلخواه کاربر را نیز به لیست اضافه کرد.

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

بر اساس رای ۱۵ نفر
آیا این مطلب برای شما مفید بود؟
شما قبلا رای داده‌اید!
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.

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