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_inputeval
>>> 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ব্যবহার করে পরিবর্তনশীল থেকে মুক্তি পেতে পারেন ।breakwhile True