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