কমান্ড লাইনে নানা ধরনের কাজ করার জন্য সচারচর ব্যবহৃত পাইথন ফাংশন, ক্লাস এবং মডিউল নিয়ে আলোচনা করবো আমরা ।
পাইথনে প্রোগ্রামিং করতে করতে এমন অনেক সময় আসবে যখন আমাদের প্রয়োজন পড়বে ব্যবহারকারীর কাছ থেকে কিছু ইনপুট নেওয়া । এজন্য আমরা raw_input()
ফাংশনটি ব্যবহার করতে পারি:
print "What is your name?"
name = raw_input()
print "You said your name is %s" % name
মজার ব্যাপার হচ্ছে এই raw_input
ফাংশনটির সাথে চাইলে আমাদের প্রশ্নটিও এভাবে পাস করে দিতে পারি:
name = raw_input("What is your name?")
print "You said your name is %s" % name
এই ফাংশানটি ইউজার ইনপুট স্ট্রিং হিসেবে পাস করবে । সুতরাং আমরা যদি সংখ্যা নিতে চাই তাহলে এটাকে পরিবর্তন করে নিতে হবে:
number1 = int(raw_input("N1:"))
number2 = int(raw_input("N2:"))
print number1 + number2
এখানে আমরা int()
ফাংশনটি ব্যবহার করে স্ট্রিং ভ্যালু থেকে এটিকে ইন্টিজারে কনভার্ট করে নিয়েছি ।
পাইথনে ইনপুট নেওয়ার জন্য আরেকটি ফাংশন রয়েছে - input()
কিন্তু সমস্যা হচ্ছে, raw_input()
যেখানে স্ট্রিং ভ্যালু আশা করে, input()
সেখানে পাইথন কোড আশা করে । অর্থাৎ যেই ইনপুট দেওয়া হবে, পাইথন তা কোড হিসেবে বিবেচনা করে আউটপুট দেখাবে । ইউজার যদি ইচ্ছা করে ক্ষতিকর কোড টাইপ করে দেন তাহলে এটার মাধ্যমে সিস্টেমের ক্ষতিসাধন করা সম্ভব তাই এটার ব্যবহার অনুৎসাহিত করা হয় ।
আমরা পাইথন প্রোগ্রাম রান করার সময় কিছু অপশন বা আর্গুমেন্ট পাস করতে পারি । এই অপশন বা আর্গুমেন্টগুলো আমরা ফাইল নেইমের পরে একটা একটা করে স্পেইস দিয়ে আলাদা করে দিতে পারি । পাইথন এই আর্গুমেন্টগুলোকে sys
মডিউলের argv
লিস্টে জমা করে । একটি উদাহরন দেখে নেই:
main.py
ফাইলের কন্টেন্ট:
import sys
print sys.argv
টার্মিনালে রান করলাম এভাবে:
$ python main.py 1 2 3
এখানে 1, 2 এবং 3 প্রত্যেকে একেকটি কমান্ড লাইন আর্গুমেন্ট ।
আউটপুট:
['main.py', '1', '2', '3']
sys.argv
এর প্রথম আইটেমটি হয় ঐ ফাইল নেইম । এরপর কমান্ড লাইন আর্গুমেন্টগুলো থাকে একটার পর একটা ।