import sys
print(sys.platform)
print(2**100)
raw_input()
আমি পাইথন ৩.১ ব্যবহার করছি raw_input
এবং ডস পপ-আপকে "হিমায়িত" করতে পারছি না । আমি যে বইটি পড়ছি তা পাইথন 2.5 এর জন্য এবং আমি পাইথন ৩.১ ব্যবহার করছি
এটি ঠিক করতে আমার কী করা উচিত?
import sys
print(sys.platform)
print(2**100)
raw_input()
আমি পাইথন ৩.১ ব্যবহার করছি raw_input
এবং ডস পপ-আপকে "হিমায়িত" করতে পারছি না । আমি যে বইটি পড়ছি তা পাইথন 2.5 এর জন্য এবং আমি পাইথন ৩.১ ব্যবহার করছি
এটি ঠিক করতে আমার কী করা উচিত?
উত্তর:
পাইথন 3 দিয়ে শুরু করে raw_input()
নামকরণ করা হয়েছিল input()
।
পাইথন 3.0 এ নতুন কী থেকে , বিল্টিনস বিভাগের দ্বিতীয় আইটেম।
input()
এবং raw_input()
। a = input()
ব্যবহারকারীর ইনপুট নেবে এবং এটিকে সঠিক ধরণে রাখবে। উদাহরণস্বরূপ: যদি ব্যবহারকারী 5 টাইপ করে তবে মানটি a
পূর্ণসংখ্যা 5 a = raw_input()
হয় ব্যবহারকারী ইনপুটটি গ্রহণ করে স্ট্রিং হিসাবে রাখবে। উদাহরণস্বরূপ: যদি ব্যবহারকারী 5 টাইপ করে তবে মানটি a
স্ট্রিং '5' এবং কোনও পূর্ণসংখ্যা নয়। ভেবেছিলাম এটি আমার মতো অজগরের নবাগতদের কাছে ভাল তথ্য হতে পারে।
এটি পাইথন 3.x এবং 2.x এ কাজ করে:
# Fix Python 2.x.
try: input = raw_input
except NameError: pass
print("Hi " + input("Say something: "))
global input
কলিং ফাংশনের শীর্ষে এটি দিয়ে স্থির করে দিন ।
import __builtin__; input = getattr(__builtin__, 'raw_input', input)
__builtin__
।
__builtin__
এ নতুন নামকরণ করা builtins
হয়েছে উভয় __builtins__
সিপিথনের মতোই উপলব্ধ ।
getattr(__builtins__, 'raw_input', input)
পাইথন ২.7.২ এ আমদানি করা হলে ডিফল্টটি ফেরত দেয়।
এটির সমাধানের একটি নির্ভরযোগ্য উপায়
from six.moves import input
ছয়টি একটি মডিউল যা 2/3 সাধারণ কোড বেইজ পয়েন্টগুলির অনেকগুলি জুড়ে।
from six.moves import input as raw_input
রাখতে পারেন raw_input
এবং উভয় পাইথন সংস্করণ ব্যবহার করে চালাতে পারেন ।
যেমনটি অন্যেরা ইঙ্গিত করেছে, raw_input
ফাংশনটির নামটি input
পাইথন 3.0.০ এ পুনরায় নামকরণ করা হয়েছে , এবং আপনাকে আরও একটি যুগোপযোগী বই দ্বারা আরও ভালভাবে পরিবেশন করা হবে তবে আমি উল্লেখ করতে চাই যে আপনার স্ক্রিপ্টের আউটপুট দেখার আরও ভাল উপায় আছে ।
আপনার বর্ণনা থেকে, আমি মনে করি আপনি উইন্ডোজ ব্যবহার করছেন, আপনি একটি .py
ফাইল সংরক্ষণ করেছেন এবং তারপরে আপনি এটিতে ডাবল-ক্লিক করছেন clicking আপনার প্রোগ্রামটি শেষ হওয়ার সাথে সাথে টার্মিনাল উইন্ডোটি বন্ধ হয়ে যায়, যাতে আপনি দেখতে পাচ্ছেন না যে আপনার প্রোগ্রামটির ফলাফল কী ছিল। এটি সমাধানের জন্য, আপনার বইটি ব্যবহারকারী raw_input
/ input
প্রেসগুলি প্রবেশ না হওয়া পর্যন্ত অপেক্ষা করার জন্য একটি / বিবৃতি যুক্ত করার পরামর্শ দেয় । যাইহোক, আপনি যেমনটি দেখেছেন, যদি কোনও কিছু ভুল হয়ে যায়, যেমন আপনার প্রোগ্রামে একটি ত্রুটি, সেই বিবৃতি কার্যকর করা হবে না এবং আপনি কী ভুল হয়েছে তা দেখতে সক্ষম না হয়ে উইন্ডোটি বন্ধ হয়ে যাবে। কমান্ড-প্রম্পট বা আইডিএল ব্যবহার করা আপনার পক্ষে আরও সহজ হতে পারে।
আপনি যখন পাইথন প্রোগ্রামযুক্ত ফোল্ডার উইন্ডোটি দেখছেন, তখন শিফটটি ধরে রাখুন এবং উইন্ডোর সাদা পটভূমির অঞ্চলে যে কোনও জায়গায় ডান-ক্লিক করুন। পপ আপ করা মেনুতে "এখানে কমান্ড উইন্ডো খুলুন" এন্ট্রি থাকা উচিত। (আমি মনে করি এটি উইন্ডোজ ভিস্তা এবং উইন্ডোজ on এ কাজ করে)) এটি একটি কমান্ড-প্রম্পট উইন্ডোটি খুলবে যা দেখতে এমন কিছু দেখাচ্ছে:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\Weeble\My Python Program>_
আপনার প্রোগ্রামটি চালাতে, নিম্নলিখিতটি টাইপ করুন (আপনার স্ক্রিপ্টের নামটি প্রতিস্থাপন করুন):
python myscript.py
... এবং এন্টার টিপুন। (যদি আপনি একটি ত্রুটি পেয়ে থাকেন যে "পাইথন" স্বীকৃত আদেশ নয়, দেখুন http://showmedo.com/videotutorials/video?name=960000&fromSeriesID=96 ) আপনার প্রোগ্রামটি চলমান শেষ হয়ে গেলে, উইন্ডোটি সফলভাবে শেষ হয় কিনা, উইন্ডোটি খোলা থাকবে এবং কমান্ড-প্রম্পট আবার প্রদর্শিত হবে আপনার জন্য অন্য একটি কমান্ড টাইপ করার জন্য। আপনি যদি আবার আপনার প্রোগ্রামটি চালাতে চান তবে আপনি যে আগের কমান্ডটি লিখেছিলেন তা পুনরুদ্ধার করতে আপনি উপরের তীর টিপতে পারেন এবং প্রতিবার ফাইলের নাম টাইপ না করে আবার চালানোর জন্য এন্টার টিপতে পারেন।
আইডিএল হ'ল একটি সাধারণ প্রোগ্রাম সম্পাদক যা পাইথনের সাথে ইনস্টল হয়। অন্যান্য বৈশিষ্ট্যগুলির মধ্যে এটি আপনার উইন্ডোতে আপনার প্রোগ্রামগুলি চালাতে পারে। আপনার .py
ফাইলটিতে ডান ক্লিক করুন এবং "আইডিএল সম্পাদনা করুন" নির্বাচন করুন। আপনার প্রোগ্রামটি সম্পাদকটিতে উপস্থিত হলে, F5 টিপুন বা "রান" মেনু থেকে "রান মডিউল" নির্বাচন করুন। আপনার প্রোগ্রামটি এমন একটি উইন্ডোতে চলবে যা আপনার প্রোগ্রামটি শেষ হওয়ার পরে খোলা থাকে এবং এতে আপনি তৎক্ষণাৎ চালনার জন্য পাইথন কমান্ডগুলি প্রবেশ করতে পারেন।
pythonw -m idlelib.idle
কোড চালানোর Undefined name
সময় টিমর্ম্যানের সমাধানটি দুর্দান্ত কাজ করে তবে পাইফ্লেকস বা অনুরূপ লিন্টার ব্যবহার করার সময় আপনি ত্রুটি পেতে না চাইলে পরিবর্তে নিম্নলিখিতটি ব্যবহার করতে পারেন:
try:
import __builtin__
input = getattr(__builtin__, 'raw_input')
except (ImportError, AttributeError):
pass
Redefining built-in 'input' (redefined-builtin)
, Unable to import '__builtin__' (import-error)
, Invalid constant name "input" (invalid-name)
।
flake8
বা pyflakes
যাতে আপনার সমস্ত দিন অর্থহীন সতর্কতা সহ না নেয়।
আমি এখানে আমার স্ক্রিপ্টগুলিতে রেখেছি এমন একটি কোডের টুকরো যা আমি পাই 2/3-অজ্ঞেয় পরিবেশে চালাতে চাই না:
# Thank you, python2-3 team, for making such a fantastic mess with
# input/raw_input :-)
real_raw_input = vars(__builtins__).get('raw_input',input)
এখন আপনি রিয়েল_আর_ইনপুট ব্যবহার করতে পারেন। এটি বেশ ব্যয়বহুল তবে সংক্ষিপ্ত এবং পাঠযোগ্য। কাঁচা ইনপুট ব্যবহার করা সাধারণত ব্যয়বহুল (ইনপুটটির অপেক্ষায়), তাই এটি গুরুত্বপূর্ণ নয়।
তত্ত্ব হিসাবে, আপনি এমনকি রিয়েল_আর_ইনপুটের পরিবর্তে কাঁচা_পিন্ড নির্ধারণ করতে পারেন তবে এমন মডিউল থাকতে পারে যা কাঁচা_পিন্ডের অস্তিত্ব পরীক্ষা করে এবং সেই অনুসারে আচরণ করে। এটি নিরাপদে থাকাই ভাল।
সম্ভবত সেরা সমাধান নয়, তবে এখানে আসার আগে আমি অধ্যয়ন থেকে দ্রুত বিরতি না নিয়ে কাজ চালিয়ে যাওয়ার জন্য কেবল ফ্লাইতে এটি তৈরি করেছি।
def raw_input(x):
input(x)
তারপরে যখন আমি raw_input('Enter your first name: ')
স্ক্রিপ্টটিতে কাজ করছিলাম তখন এটি এটি ক্যাপচার করেinput()
।
এটি না করার কোনও কারণ থাকতে পারে, যে আমি এখনও পারিনি!
raw_input = input
?