TLDR
- পাইথন 3
input
ফাংশন সহ প্রাপ্ত ডেটাগুলি মূল্যায়ন করে না , তবে পাইথন 2 এর input
ক্রিয়াকলাপটি ঘটে (এর অর্থ বোঝার জন্য পরবর্তী বিভাগটি পড়ুন)।
- পাইথন 2 এর পাইথন 3 এর সমতুল্য
input
হ'ল raw_input
ফাংশন।
পাইথন 2.x
ব্যবহারকারীর ইনপুট পেতে দুটি ফাংশন ছিল, বলা হয় input
এবং raw_input
। তাদের মধ্যে পার্থক্যটি raw_input
হ'ল, স্ট্রিং আকারে ডেটা মূল্যায়িত করে না এবং যেমনটি ফিরিয়ে দেয়। তবে, input
আপনি যা প্রবেশ করেছেন তা মূল্যায়ন করবে এবং মূল্যায়নের ফলাফল ফিরে আসবে। উদাহরণ স্বরূপ,
>>> import sys
>>> sys.version
'2.7.6 (default, Mar 22 2014, 22:59:56) \n[GCC 4.8.2]'
>>> data = input("Enter a number: ")
Enter a number: 5 + 17
>>> data, type(data)
(22, <type 'int'>)
তথ্য 5 + 17
মূল্যায়ন করা হয় এবং ফলাফল হয় 22
। যখন এটি প্রকাশের মূল্যায়ন করে 5 + 17
, এটি সনাক্ত করে যে আপনি দুটি সংখ্যা যুক্ত করছেন এবং ফলস্বরূপ একই int
ধরণের হবে। সুতরাং, ধরণের রূপান্তরটি নিখরচায় করা হয় এবং 22
ফল হিসাবে ফিরে আসে input
এবং data
ভেরিয়েবলে সংরক্ষণ করা হয়। আপনি কল দিয়ে রচিত input
হিসাবে ভাবতে পারেন ।raw_input
eval
>>> data = eval(raw_input("Enter a number: "))
Enter a number: 5 + 17
>>> data, type(data)
(22, <type 'int'>)
দ্রষ্টব্য:input
পাইথন ২.x ব্যবহার করার সময় আপনার সতর্ক হওয়া উচিত। আমি উত্তর দিয়েছিলাম যে এটি ব্যবহার করার সময় কারও কেন সাবধানতা অবলম্বন করা উচিত ।
কিন্তু, raw_input
ইনপুটটি মূল্যায়ন করে না এবং স্ট্রিং হিসাবে এটির মতো ফিরে আসে।
>>> import sys
>>> sys.version
'2.7.6 (default, Mar 22 2014, 22:59:56) \n[GCC 4.8.2]'
>>> data = raw_input("Enter a number: ")
Enter a number: 5 + 17
>>> data, type(data)
('5 + 17', <type 'str'>)
পাইথন 3.x
পাইথন ৩.x input
এবং পাইথন ২.x এর raw_input
মত এবং raw_input
এটি পাইথন ৩.x এ উপলব্ধ নয়
>>> import sys
>>> sys.version
'3.4.0 (default, Apr 11 2014, 13:05:11) \n[GCC 4.8.2]'
>>> data = input("Enter a number: ")
Enter a number: 5 + 17
>>> data, type(data)
('5 + 17', <class 'str'>)
সমাধান
আপনার প্রশ্নের উত্তর দেওয়ার জন্য, যেহেতু পাইথন 3.x মূল্যায়ন করে না এবং ডাটা টাইপ রূপান্তর করে, আপনি স্পষ্টভাবে রূপান্তর করতে হবে int
সঙ্গে, গুলি int
, ভালো
x = int(input("Enter a number: "))
y = int(input("Enter a number: "))
আপনি যে কোনও বেসের সংখ্যা গ্রহণ করতে পারেন এবং int
এটিকে সরাসরি ফাংশন দিয়ে বেস -10 এ রূপান্তর করতে পারেন
>>> data = int(input("Enter a number: "), 8)
Enter a number: 777
>>> data
511
>>> data = int(input("Enter a number: "), 16)
Enter a number: FFFF
>>> data
65535
>>> data = int(input("Enter a number: "), 2)
Enter a number: 10101010101
>>> data
1365
দ্বিতীয় প্যারামিটারটি প্রবেশ করানো সংখ্যার ভিত্তি কী তা বলে এবং তারপরে অভ্যন্তরীণভাবে এটি বোঝে এবং রূপান্তর করে। প্রবেশ করা ডেটা ভুল হলে এটি একটি নিক্ষেপ করবে ValueError
।
>>> data = int(input("Enter a number: "), 2)
Enter a number: 1234
Traceback (most recent call last):
File "<input>", line 1, in <module>
ValueError: invalid literal for int() with base 2: '1234'
একটি ভগ্নাংশ উপাদান থাকতে পারে এমন মানগুলির জন্য, float
ধরণটি এর চেয়ে ভাল হবে int
:
x = float(input("Enter a number:"))
তা ছাড়া আপনার প্রোগ্রামটি এইভাবে কিছুটা পরিবর্তন করা যেতে পারে
while True:
...
...
if input("Play again? ") == "no":
break
আপনি এবং play
ব্যবহার করে পরিবর্তনশীল থেকে মুক্তি পেতে পারেন ।break
while True