2011-11-22 13 views
21

मैं कोड का एक साधारण टुकड़ा कोशिश कर रहा था, किसी का नाम और उम्र प्राप्त कर रहा था और जब वे 21 वर्ष के होते हैं तो उसे पता चलेगा ... नकारात्मकों पर विचार नहीं करना और यह सब यादृच्छिक।त्रुटि: 'int' ऑब्जेक्ट सबस्क्रिप्ट करने योग्य नहीं है

मैं इस 'int' object is not subscriptable त्रुटि मिलती रहती है।

name1 = raw_input("What's your name? ") 
age1 = raw_input ("how old are you? ") 
x = 0 
int([x[age1]]) 
twentyone = 21 - x 
print "Hi, " + name1+ " you will be 21 in: " + twentyone + " years." 
+0

यह क्यों कहता है यह कहा कि यह इंडेक्स करने योग्य नहीं है के बजाय subscriptable नहीं है? – nog642

उत्तर

19

समस्या कतार में है,

int([x[age1]]) 

तुम क्या चाहते

x = int(age1) 

है तुम भी उत्पादन के लिए एक स्ट्रिंग को पूर्णांक कन्वर्ट करने के लिए ...

की जरूरत
print "Hi, " + name1+ " you will be 21 in: " + str(twentyone) + " years." 

पूरा स्क्रिप्ट जैसा,

name1 = raw_input("What's your name? ") 
age1 = raw_input ("how old are you? ") 
x = 0 
x = int(age1) 
twentyone = 21 - x 
print "Hi, " + name1+ " you will be 21 in: " + str(twentyone) + " years." 
29

आप टाइप करते हैं x = 0 है कि एक नए int चर (नाम) बनाने और इसे करने के लिए एक शून्य बताए है।

जब आप टाइप करते हैं जो age1 'वें प्रविष्टि तक पहुंचने का प्रयास कर रहा है, जैसे x एक सरणी थी।

+5

वास्तव में यह बताने का एकमात्र उत्तर क्या हो रहा है, शीर्ष पर होना चाहिए। – Caelum

6

जब आप लिखना x = 0, x एक पूर्णांक है ... ताकि आप ऐसा नहीं कर सकते x[age1] क्योंकि x है int

0

आप यहाँ करने के लिए कोशिश कर रहे हैं: int([x[age1]]) ?? इसका कोई मतलब नही बनता।

तुम बस एक int के रूप में उम्र इनपुट कास्ट करने के लिए है:

name1 = raw_input("What's your name? ") 
age1 = raw_input ("how old are you? ") 
twentyone = 21 - int(age1) 
print "Hi, %s you will be 21 in: %d years." % (name1, twentyone) 
0

आप पहली बार पूर्णांक में age1 बदलने की आवश्यकता है, इसलिए यह शून्य से कर सकते हैं। उसके बाद प्रदर्शन के लिए स्ट्रिंग के लिए वापस परिणाम बारी:

name1 = raw_input("What's your name? ") 
age1 = raw_input ("how old are you? ") 
twentyone = str(21 - int(age1)) 
print "Hi, " + name1+ " you will be 21 in: " + twentyone + " years." 
1
name1 = input("What's your name? ") 
age1 = int(input ("how old are you? ")) 
twentyone = str(21 - int(age1)) 

if age1<21: 
    print ("Hi, " + name1+ " you will be 21 in: " + twentyone + " years.") 

else: 
    print("You are over the age of 21") 
संबंधित मुद्दे

 संबंधित मुद्दे