निम्नलिखित कोड पर मदद लेना चाहते हैं। मेरी समझ के आधार पर, IF, ELIF, ELSE का उपयोग करने के बीच के अंतर की तुलना में यदि कई IFs है कि सभी IFs का मूल्यांकन किया जाएगा।
नीचे दिए गए विशेष कोड के लिए, मुझे यह समझने में कठिन समय है कि 60 का मूल्य क्यों देना "आप लालची कमीने!" इसके बजाय "यार, एक नंबर टाइप करना सीखो।"
मेरे विचार की ट्रेन इस प्रकार है: यदि मैं 60 में कुंजी रखता हूं, तो यह न तो 0 या 1 है, इसलिए इसे how_much = int(next)
में इनपुट नहीं किया जाएगा और इसे सीधे जाना चाहिए
else:
dead("Man, learn to type a number.")
दूसरा अगर बयान को पायथन द्वारा संसाधित नहीं किया जाना चाहिए क्योंकि how_much = int(next)
पहले बयान में छोड़ दिया गया था।
पूर्ण कोड:
def gold_room():
print "This room is full of gold. How much do you take?"
next = raw_input("> ")
if "0" in next or "1" in next:
how_much = int(next)
else:
dead("Man, learn to type a number.")
if how_much < 50:
print "Nice, you're not greedy, you win!"
exit(0)
else:
dead("You greedy bastard!")
2 जवाब
in
का अर्थ है "सूची, str, आदि। क्या यह मूल्य शामिल है"? इस मामले में, हाँ यह "60" करता है जिसमें "0" शामिल है। हालांकि, यदि आप "54" दर्ज करना चाहते थे, तो यह NOT "0" या "1" शामिल होता है और इसलिए आप अपनी पहली निकास स्थिति तक पहुंच जाएंगे।
आप एक कोशिश में how_much कास्टिंग पर विचार कर सकते हैं / ब्लॉक को छोड़कर:
def gold_room():
print "This room is full of gold. How much do you take?"
next = raw_input("> ")
try:
how_much = int(next)
except:
dead("Man, learn to type a number.")
return # I generally put a "return" statement in places like this one.
if how_much < 50:
print "Nice, you're not greedy, you win!"
exit(0)
else:
dead("You greedy bastard!")
जब आप 60
दर्ज करते हैं, तो इसे स्ट्रिंग के रूप में next
में संग्रहित किया जाता है। "0" in next
True
है, क्योंकि स्ट्रिंग "60"
में एक शून्य है, इसलिए how_much
पूर्णांक 60
पर सेट हो जाएगा।
निम्नलिखित if
सत्य होगा यदि next
सभी अंकों का एक स्ट्रिंग है:
if next.isdigit():
how_much = int(next)
एक अन्य विकल्प एक try/except
है:
try:
how_much = int(raw_input("> "))
except ValueError:
dead("Man, learn to type a number.")
संबंधित सवाल
नए सवाल
python-2.7
पायथन 2.7 2.x श्रृंखला में अंतिम प्रमुख संस्करण है, और 1 जनवरी 2020 से अब इसका रखरखाव नहीं किया गया है। सभी पायथन सवालों पर जेनेरिक [पायथन] टैग का उपयोग करें। इस टैग को केवल उस पायथन के संस्करण से जोड़ने के लिए न रखें, जिसका आप उपयोग कर रहे हैं, जब तक कि प्रश्न Python 2.7 के लिए विशिष्ट समस्या की चिंता नहीं करता है।