User Input

ডেভেলপারদের ডেটা সংগ্রহ করতে বা ফলাফল তৈরি করতে ব্যবহারকারীদের সাথে যোগাযোগ করতে হয়। অনেক অ্যাপ্লিকেশন আজ ব্যবহারকারীর কাছ থেকে একটি নির্দিষ্ট ফর্মের ইনপুট অনুরোধ করার জন্য বিভিন্ন উপায় ব্যবহার করে। পাইথন ইনপুট নেওয়ার জন্য আমাদের সমন্বিত বৈশিষ্ট্যগুলি অফার করে। পাইথনের সর্বশেষ সংস্করণটি input() পদ্ধতি ব্যবহার করে, যখন আগের সংস্করণটি raw_input() পদ্ধতি ব্যবহার করে করা হতো ।

পাইথন কীবোর্ড থেকে ইনপুট পড়ার জন্য আমাদের দুটি ইনবিল্ট ফাংশন সরবরাহ করে:

১) input ( prompt )

২) raw_input ( prompt )

input( ) ফাংশন ব্যবহার করে ইনপুট

কীবোর্ডের মাধ্যমে তথ্য পেতে, পাইথন input() ফাংশন ব্যবহার করে। এই ফাংশনের একটি optional parameter রয়েছে, যা সাধারণত prompt নামে পরিচিত। এটি একটি স্ট্রিং, যখনই ফাংশনটি কল করা হয় তখন স্ক্রিনে প্রিন্ট করা হবে। যখন input() ফাংশন কল করা হয়, ব্যবহারকারী কমান্ড লাইনের মাধ্যমে ইনপুট প্রবেশ না করা পর্যন্ত প্রোগ্রাম প্রবাহ বন্ধ হয়ে যায়। প্রকৃতপক্ষে ডেটা প্রবেশ করতে, ব্যবহারকারীকে তাদের স্ট্রিং ইনপুট করার পরে ENTER কী press করতে হবে। ENTER কী আঘাত করার সময় সাধারণত একটি নতুন লাইন অক্ষর (“\n”) সন্নিবেশ করা হয়, এটি এই ক্ষেত্রে নয়। প্রবেশ করা স্ট্রিংটি কেবল অ্যাপ্লিকেশনে জমা দেওয়া হবে।

এখন যেহেতু আমরা input() ফাংশনের পিছনের মৌলিক তত্ত্বটি বুঝতে পেরেছি, আসুন এটি পাইথনে আসলে কীভাবে কাজ করে তা দেখে নেওয়া যাক:

inp1 = input("Do something to get that over: ")

print(f"Is this what you just do? {inp1}")

 

ব্যবহারকারীর প্রবেশ করা মান কি ধরনের?

ব্যবহারকারীর প্রবেশ করা মান সর্বদা একটি স্ট্রিং রূপান্তরিত হয় এবং তারপর ভেরিয়েবলে বরাদ্দ করা হয়। ইনপুট ভেরিয়েবলের ধরন পেতে type() ফাংশন ব্যবহার করে এটি নিশ্চিত করি।

value = input("Enter a string:\n")
 
print(f'Entered {value} and its type is {type(value)}')
 
value = input("Please enter an integer:\n")
 
print(f'You entered {value} and its type is {type(value)}')

 

ব্যবহারকারীর ইনপুট হিসাবে একটি integer কিভাবে পেতে হয়?

আমরা শুধু দেখেছি যে ইনপুট সবসময় একটি স্ট্রিং হিসাবে read হয়। তাহলে কি হবে যদি আমরা একটি integer read করতে চাই?

ব্যবহারকারীর ইনপুট হিসাবে একটি integer বা অন্য কোন প্রকার পাওয়ার কোন উপায় নেই। যাইহোক, আমরা প্রবেশ করা স্ট্রিংকে পূর্ণসংখ্যায় রূপান্তর করতে বিল্ট-ইন ফাংশন ব্যবহার করতে পারি। আমরা int() ফাংশন ব্যবহার করে স্ট্রিং ইনপুটকে int-এ রূপান্তর করে এটি করতে পারি।

x = int(input("Enter an integer:"))
print ("You have entered", x)

 

int() একটি স্ট্রিংকে integer এ পরিবর্তন করে। উদাহরণস্বরূপ, int(’12’) আমাদের একটি পূর্ণসংখ্যা 12 দেবে।

উপরের উদাহরণে, আমরা input() ফাংশন সহ একটি স্ট্রিং হিসাবে ব্যবহারকারীর কাছ থেকে ইনপুট নিচ্ছি এবং তারপরে আমরা এটিকে পূর্ণসংখ্যাতে পরিবর্তন করতে int() ব্যবহার করছি। সুতরাং, যদি একজন ব্যবহারকারী 12 এ প্রবেশ করে, তাহলে ইনপুট() ’12’ (একটি স্ট্রিং) হয়ে যাবে এবং উপরের বিবৃতিটি int(input()) হয়ে যাবে int(’12’) এবং আমরা 12 কে integer  হিসেবে পাব।

পাইথনে Float (decimal) ইনপুট নেওয়া

Integer ইনপুট নেওয়ার মতো, আমরা ব্যবহারকারীর কাছ থেকে একটি ইনপুট নিতে এবং এটিকে ফ্লোটে পরিবর্তন করতে float() ব্যবহার করতে পারি।

x = float(input())
print(x)
print(type(x))

Python raw_input() function

পাইথন 2.x সংস্করণে ব্যবহারকারীর ইনপুট নেওয়ার জন্য raw_input() ফাংশন ব্যবহার করা হয়েছিল। এখানে পাইথন 2.7 কমান্ড লাইন ইন্টারপ্রেটার থেকে একটি সাধারণ উদাহরণ রয়েছে যা raw_input() ফাংশনের ব্যবহার দেখাচ্ছে।

##~ python2.7
Python 2.7.10 (default, Feb 22 2019, 21:55:15) 
[GCC 4.2.1 Compatible Apple LLVM 10.0.1 (clang-1001.0.37.14)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> value = raw_input("Please enter a string\n")
Please enter a string
Hello
>>> print value
Hello

 

Input() ফাংশন থেকে ব্যবহারকারীর পাইথনে ইনপুট নেওয়া খুব সহজ। এটি বেশিরভাগ ব্যবহারকারীকে অপারেশনের সুযোগসুবিধা প্রদান করতে এবং তারপর সেই অনুযায়ী প্রোগ্রামের প্রবাহ পরিবর্তন করতে ব্যবহৃত হয়।যাইহোক, প্রোগ্রামটি ব্যবহারকারীর ইনপুটের জন্য অনির্দিষ্টকালের জন্য অপেক্ষা করে। ব্যবহারকারী যদি সময়মতো মান প্রবেশ না করে তবে কিছু টাইমআউট এবং ডিফল্ট মান থাকলে ভাল হত।

উদাহরন

Example 1 :

# Example 1
list_inpt = list(input())
print(list_inpt)
print(type(list_inpt))

# Output
# ['1', '2', '3']
# <class 'list'>

Example 2:

# Example 2
integer_inpt= int(input("Enter the integer number  "))
print(integer_inpt)
print(type(integer_inpt))

# Output
# 3
# <class 'int'>

Example 3:

# Example 3
float_inpt= float(input("Enter a float number "))
print(float_inpt)
print(type(float_inpt))

# Output
# 2.0
# <class 'float'>

Example 4:

# Example 4
tuple_inpt= tuple(input())
print(tuple_inpt)
print(type(tuple_inpt))

# Output
# ('1', '2', '3')
# <class 'tuple'>

Example 5:

dict_inpt = dict(input())
print(dict_inpt)
print(type(dict_inpt))

# output

# Traceback (most recent call last):
#   File "/home/riazul/Office_projectsL/Dice rolling/main.py", line 42, in <module>
#     dict_inpt = dict(input())
# ValueError: dictionary update sequence element #0 has length 1; 2 is required


 

এসো নিজে করি
১। ইউজার ইনপুট হিসেবে লিস্ট নিন ।
২। একটি টাপল ইউজার থেকে নিয়ে তার টাইপ প্রিন্ট করুন ।
৩। একটি ফ্লোট ভ্যালু ইনপুট নিন ।
৪। raw_input() দিয়ে একটি স্ট্রিং ইউজার থেকে নিন ।
৫। একটি ডিকশনারি ইনপুট নিয়ে দেখুন আউটপু কি আসে।
ইন্টারভিউ প্রশ্নোত্তর
1. input এবং raw_input এর মধ্যে পার্থক্য কি ?
2. intput() দিয়ে যেই ইনপুট নিবো , তার ডাটা টাইপ কি ?
3. আমি ইনপুট দিবো 1,2,3 এভাবে , আউটপুট দেখাবে [1,2,3] এভাবে
4. লিস্ট ইনপুট নিবেন কিভাবে ?
5. ডিকশনারি ইনপুট নিবেন কিভাবে ?