2011-08-21 10 views
56

कैसे आप लिखते हैं, अजगर में:अजगर सरल करता है, तो या तर्क बयान

if key < 1 or key > 34: 

मैं हर तरह से मैं के बारे में सोच सकते हैं की कोशिश की है, और यह बहुत निराशा होती लग रहा है।

+7

इसके साथ क्या गलत है? –

+4

आपके पास क्या समस्या है? आपको कौन सी त्रुटि मिलती है? आपका उदाहरण मेरी राय में मान्य पायथन कोड है !? – Achim

+0

क्या आप एक विशिष्ट वाक्यविन्यास की तलाश में हैं? आपके द्वारा लिखा गया कथन _is_ के बारे में लिखा है कि आप इसे पायथन में कैसे लिखेंगे। – Yony

उत्तर

118

तो key एक int या float लेकिन एक str आईएनजी नहीं है, आप अन्यथा

key = float(key) 

करके

key = int(key) 

या कर एक float करने से एक int पहले करने के लिए इसे बदलने की आवश्यकता , आपके प्रश्न में आपके पास क्या काम करना चाहिए, लेकिन

if (key < 1) or (key > 34): 

या

if not (1 <= key <= 34): 

थोड़ा साफ हो जाएगा।

+1

धन्यवाद, मैं भूल गया कि हालांकि एक संख्या, कुंजी वास्तव में एक स्ट्रिंग थी। साइट पर एक बेवकूफ पहले पोस्ट सवाल के लिए खेद है। बीमार कोशिश करें और पोस्ट करने से पहले मेरी समस्याओं को हल करने के लिए कड़ी मेहनत करें। – Zak

+0

@agf, यह थोड़ा मेटा है: आप * 15 मिनट * कैसे प्राप्त करते हैं? –

+0

आप एक प्रश्न पूछने के 15 मिनट के भीतर एक जवाब स्वीकार नहीं कर सकते हैं। – agf

7

यहाँ एक बूलियन बात है:

if (not suffix == "flac") or (not suffix == "cue"): # WRONG! FAILS 
    print filename + ' is not a flac or cue file' 

लेकिन

if not (suffix == "flac" or suffix == "cue"):  # CORRECT! 
     print filename + ' is not a flac or cue file' 

(not a) or (not b) == not (a and b), इसलिए दोनों सही

not (a or b) के लिए समानता को गलत होना है केवल एक और यही बात लागू होगी होना दोनों झूठे हैं।