পাইথন ইনপুট, আউটপুট এবং ইম্পোর্ট
পাইথন নানা ধরণের বিল্ট-ইন ফাংশন সরবরাহ করে যেগুলো আমরা আমাদের প্রয়োজনে নির্দিধায় ব্যবহার করতে পারি।
স্টান্ডার্ড ইনপুট এবং আউটপুটের জন্য যথাক্রমে input()
এবং print()
ফাংশন ব্যবহৃত হয়। চলুন প্রথমেই আমরা আউটপুট সেকশনটি দেখে নেই।
print() ফাংশনের মাধ্যমে পাইথন আউটপুট
স্টান্ডার্ড আউটপুট ডিভাইসে(যেমন-স্ক্রিনে) আউটপুট নেওয়ার জন্য আমরা print()
ফাংশন ব্যবহার করি।
এছাড়া আমরা ডাটা ফাইলেও আউটপুট নিতে পারি। পরিবর্তি অধ্যায়ে এটি সম্মন্ধে বিস্তারিত আলোচনা করা হবে।
উদাহরণস্বরূপঃ
print('This sentence will be displayed on the screen')
# Output: This sentence will be displayed on the screen
num= 10
print('The value of num is', num)
# Output: The value of num is 10
দ্বিতীয় print() স্টেটমেন্টে লক্ষ্য করলে দেখবেন স্ট্রিং(string) এবং ভ্যারিয়েবল num এর মধ্যে একটি স্পেস দেওয়া আছে এবং এটি ডিফল্টভাবে ব্যবহৃত হয়, কিন্তু আমরা ইচ্ছা করলে এটি পরিবর্তন করতে পারি।
print()
ফাংশনের প্রকৃত সিনট্যাক্স(syntax নিম্নরূপঃ
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
সিনট্যাক্স এর ব্যাখ্যা
- এখানে
objects
হচ্ছে ভ্যালু যা প্রিন্ট করতে হবে। -
sep
সেপারেটর দুটি ভ্যালুর মধ্যে ব্যবহৃত হয়। এটার ডিফল্ট ভ্যালু হচ্ছে স্পেস ক্যারেক্টার। - সকল ভ্যালু প্রিন্ট হওয়ার পরে
end
প্রিন্ট হয় যার ডিফল্ট ভ্যালু হলো নতুন লাইন(new line)। file
হলো অবজেক্ট যেখানে /যাতে ভ্যালু প্রিন্ট হয় এবং এটার ডিফল্ট ভ্যালু হলোsys.stdout
(স্ক্রিন)। নিচের উদাহরণের সাহায্যে ব্যাখ্যা দেওয়া হলোঃ
print(1,2,3,4,5)
# Output: 1 2 3 4
print(1,2,3,4,sep='&')
# Output: 1&2&3&4&5
print(1,2,3,4,5,sep='#',end='&')
# Output: 1*2*3*4&
আউটপুট ফরম্যাটিং(Output formatting)
আউটপুটকে অধিক আকর্ষনীয় করে তোলার জন্য মাঝে মাঝে আমাদের আউটপুট বিন্যাস/ফরম্যাটিং এর প্রয়োজন হতে পারে। str.format()
মেথড ব্যবহার করে এটি সম্পন্ন করা যায়। যেকোনো স্ট্রিং অবজেক্টে এই মেথডটি প্রয়োগ করা যায়।
>>> x = 3; y = 5
>>> print('The value of x is {} and y is {}'.format(x,y))
#Output: The value of x is 3 and y is 5
এখানে কারলি ব্রাকেট{} স্থানধারক(placeholder) হিসাবে ব্যবহৃত হয়েছে। আমরা নাম্বার(টাপল ইনডেক্স) ব্যবহার করে এগুলোর অর্ডার ঠিক করে দিতে পারি।
উদাহরণস্বরূপঃ
print('We love {0} and {1}'.format('SATT','founder of SATT'))
# Output: We love SATT and founder of SATT
print('We love {1} and {0}'.format('SATT','founder of SATT'))
# Output: We love founder of SATT and SATT
স্ট্রিং ফরম্যাটের জন্য আমরা আর্গুমেন্টও ব্যবহার করতে পারি।
উদাহরণস্বরূপঃ
>>> print('Hello {name}, {asking}'.format(asking = 'How are you?', name = 'Tamjid'))
#Output: Hello Tamjid How are you?
সি প্রোগ্রামিং ভাষায় ব্যবহৃত পুরাতন স্টাইল sprintf()
ফাংশন ব্যবহার করেও আমরা স্ট্রিং ফরম্যাট করতে পারি।
উদাহরণস্বরূপঃ
>>> num = 10.35623906
>>> print('The value of num is %3.2f' %x)
#Output: The value of num is 10.36
>>> print('The value of num is %3.4f' %x)
#Output: The value of num is 10.3562
পাইথন ইনপুট(Python Input)
এতক্ষণ পর্যন্ত আমাদের প্রোগ্রাম ছিল স্ট্যাটিক(static)। অর্থাৎ ভ্যারিয়েবল এর ভ্যালু সোর্স কোডে ডিফাইন্ড(Defined) করা ছিল অথবা আমরা বলতে পরে এটি ছিল হার্ড কোডেড(Hard coded)।
প্রোগ্রামকে সহজ এবং ডাইনামিক করে তোলার জন্য আমাদেরকে অবশ্যই ইউজারদের কাছ থেকে ইনপুট নিতে হবে। পাইথনে এই কাজটি সম্পন্ন করতে input()
ফাংশন ব্যবহৃত হয়। input()
ফাংশনের সিনট্যাক্স নিম্নরূপঃ
input([prompt])
যেখানে prompt
হচ্ছে স্ট্রিং যা স্ক্রিনে প্রদর্শিত হয় এবং যার মাধ্যমে ইউজারকে নির্দেশনা দেওয়া হয়। এটি ঐচ্ছিক(optional)।
উদাহরণস্বরূপঃ
>>> num = input('Enter a number: ')
Enter a number: 10
>>> num
#Output: '10'
এখানে আমরা 10 যে ভ্যালুটি দেখছি তা নাম্বার নয় বরং স্ট্রিং। এটাকে নাম্বারে রূপান্তর(convert) করার জন্য আমরা int()
অথবা float()
ফাংশন ব্যবহার করতে পারি।
>>> int('10')
#Output: 10
>>> float('10')
#Output: 10.0
একই কাজ আমরা eval()
ফাংশনের মাধ্যমেও সম্পন্ন করতে পারি। বরং এটার সুযোগ-সুবিধা আরও বেশী। যদি ইনপুট ভ্যালু স্ট্রিং হয় তাহলে এটি এক্সপ্রেশন(expression) কেও নির্ণয়(evaluate) করতে পারে।
>>> int('3+7')
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: '3+7'
>>> eval('3+7')
#Output: 10
পাইথন ইম্পোর্ট(Python Import)
যখন আমাদের প্রোগ্রাম অনেক বড় হতে থাকে তখন সবচেয়ে ভালো বুদ্ধি হলো প্রোগ্রামের বিভিন্ন অংশকে বিভিন্ন মডিউল(module)-এ বিভক্ত করা।
মডিউল হচ্ছে পাইথন এর বিভন্ন সংজ্ঞা এং স্টেটমেন্ট সম্বলিত একটি ফাইল। পাইথন মডিউলের একটি ফাইল নাম থাকে এবং এটি .py
এক্সটেনশন এর মাধ্যমে শেষ হয়।
পাইথনে এক মডিউলে থাকা সংজ্ঞা(কোড) অন্য মডিউলে ইম্পোর্ট করা যায়। এটি করার জন্য আমরা import
কীওয়ার্ড ব্যবহার করি।
উদাহরণস্বরূপ, import math
এর মাধ্যমে আমারা math
মডিউলকে ইম্পোর্ট করতে পারি।
import math
print(math.pi)
এখন math
মডিউলে থাকা সমস্ত সংজ্ঞা(কোড) আমাদের স্কোপেও বিদ্যমান অর্থাৎ আমরা এর সমস্ত কোড ব্যবহার করতে পারি। এছাড়া আমরা চাইলে from
কীওয়ার্ড ব্যবহার করে কোনো মডিউলের নির্দিষ্ট কোনো সংজ্ঞাকেও ইম্পোর্ট করতে পারি।
উদাহরণস্বরূপঃ
>>> from math import pi
>>> pi
#Output: 3.141592653589793
যখন একটি মডিউলকে ইম্পোর্ট করা হয় তখন এটি sys.path
এ নির্ধারিত বিভিন্ন স্থানে খোঁজ করে। নিম্নে ডিরেক্টরি লোকেশন এর তালিকা তুলে ধরা হলোঃ
>>> import sys
>>> sys.path
['',
'C:\\Python36\\Lib\\idlelib',
'C:\\Windows\\system32\\python36.zip',
'C:\\Python36\\DLLs',
'C:\\Python36\\lib',
'C:\\Python36',
'C:\\Python36\\lib\\site-packages']
আপনি চাইলে আপনার নিজস্ব লোকেশনকেও এই তালিকায় যুক্ত করতে পারেন।