Skip to content

Commit

Permalink
Command line added
Browse files Browse the repository at this point in the history
  • Loading branch information
masnun committed Dec 24, 2014
1 parent 24a0a97 commit dabc9bc
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 3 deletions.
2 changes: 1 addition & 1 deletion SUMMARY.md
Expand Up @@ -5,9 +5,9 @@
* [কুইক টিপস](quick-tips.md)
* [ভ্যারিয়েবলস এ্যান্ড ডাটা টাইপস](variables.md)
* [স্ট্রিং অপারেশনস](string-operations.md)
* [ইনপুট নেওয়া](input.md)
* [ম্যাথ সিম্বলস](5.md)
* [লিস্টস ইন ডেপথ](lists.md)
* [ফাংশন](10.md)
* [পাইথনে অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং](11.md)
* [কমান্ড লাইন](command-line.md)

31 changes: 29 additions & 2 deletions input.md → command-line.md
@@ -1,4 +1,8 @@
# ইনপুট নেওয়া
## কমান্ড লাইন

কমান্ড লাইনে নানা ধরনের কাজ করার জন্য সচারচর ব্যবহৃত পাইথন ফাংশন, ক্লাস এবং মডিউল নিয়ে আলোচনা করবো আমরা ।

### ব্যবহারকারীর ইনপুট নেওয়া

পাইথনে প্রোগ্রামিং করতে করতে এমন অনেক সময় আসবে যখন আমাদের প্রয়োজন পড়বে ব্যবহারকারীর কাছ থেকে কিছু ইনপুট নেওয়া । এজন্য আমরা `raw_input()` ফাংশনটি ব্যবহার করতে পারি:

Expand All @@ -24,4 +28,27 @@ print number1 + number2

এখানে আমরা `int()` ফাংশনটি ব্যবহার করে স্ট্রিং ভ্যালু থেকে এটিকে ইন্টিজারে কনভার্ট করে নিয়েছি ।

পাইথনে ইনপুট নেওয়ার জন্য আরেকটি ফাংশন রয়েছে - `input()` কিন্তু সমস্যা হচ্ছে, `raw_input()` যেখানে স্ট্রিং ভ্যালু আশা করে, `input()` সেখানে পাইথন কোড আশা করে । অর্থাৎ যেই ইনপুট দেওয়া হবে, পাইথন তা কোড হিসেবে বিবেচনা করে আউটপুট দেখাবে । ইউজার যদি ইচ্ছা করে ক্ষতিকর কোড টাইপ করে দেন তাহলে এটার মাধ্যমে সিস্টেমের ক্ষতিসাধন করা সম্ভব তাই এটার ব্যবহার অনুৎসাহিত করা হয় ।
পাইথনে ইনপুট নেওয়ার জন্য আরেকটি ফাংশন রয়েছে - `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` এর প্রথম আইটেমটি হয় ঐ ফাইল নেইম । এরপর কমান্ড লাইন আর্গুমেন্টগুলো থাকে একটার পর একটা ।

0 comments on commit dabc9bc

Please sign in to comment.