मेरे पास प्रत्येक अक्षर के अनुरूप मूल्य वाला एक शब्दकोश है। मुझे एक स्ट्रिंग के माध्यम से जाने और सभी अक्षरों के मूल्य की गणना करने की आवश्यकता है।

    SCRABBLE_LETTER_VALUES = {
'a': 1, 'b': 3, 'c': 3, 'd': 2, 'e': 1, 'f': 4, 'g': 2, 'h': 4, 'i': 1, 'j': 8, 'k': 5, 'l': 1, 'm': 3, 'n': 1, 'o': 1, 'p': 3, 'q': 10, 'r': 1, 's': 1, 't': 1, 'u': 1, 'v': 4, 'w': 4, 'x': 8, 'y': 4, 'z': 10
} 
word = 'maths'
for letter in word:
    score += SCRABBLE_LETTER_VALUES[letter]

आउटपुट score, word के अक्षरों के संगत मान का योग होना चाहिए। लेकिन मैं पाइथन को समझ नहीं पा रहा हूं कि मैं एक चर प्रकार स्ट्रिंग द्वारा एक कुंजी को कॉल कर रहा हूं।

इसके लिए आपका समाधान क्या है? किसी भी मदद की सराहना की जाती है!

0
trang nguyen 1 अप्रैल 2018, 12:12

4 जवाब

  • आप score वैरिएबल को 0 से इनिशियलाइज़ करना भूल गए हैं।

  • कोड:

    SCRABBLE_LETTER_VALUES = {'a': 1, 'b': 3, 'c': 3, 'd': 2, 'e': 1, 
                             'f': 4, 'g': 2, 'h': 4, 'i': 1, 'j': 8, 
                             'k': 5, 'l': 1, 'm': 3, 'n': 1, 'o': 1, 
                             'p': 3, 'q': 10, 'r': 1, 's': 1, 't': 1, 
                             'u': 1, 'v': 4, 'w': 4, 'x': 8, 'y': 4, 'z': 10} 
    
    score = 0    #  ============ > the line to be added
    word = 'maths'
    for letter in word:
        score += SCRABBLE_LETTER_VALUES[letter]
    
    print(score)
    
  • आउटपुट:
    10

  • यदि आप किसी वैरिएबल को इनिशियलाइज़ नहीं करते हैं तो आपको निम्न त्रुटि मिलेगी: NameError: name 'variable' is not defined... जिसका मतलब है कि आप वैरिएबल को इनिशियलाइज़ करने से पहले इस्तेमाल कर रहे हैं और यह गलत है

3
Jai 1 अप्रैल 2018, 09:25

अपने फॉर-लूप से पहले score = 0 लाइन जोड़ें।

1
Ollie 1 अप्रैल 2018, 09:16

उपयोग करने से पहले आपको score को शून्य पर सेट करना होगा

0
RewordedAnswers 1 अप्रैल 2018, 09:57

साथ ही, हो सकता है कि आप 'शब्द' चर को इनपुट मान में बदलकर अधिक गतिशील बनाना चाहें:

SCRABBLE_LETTER_VALUES = {'a': 1, 'b': 3, 'c': 3, 'd': 2, 'e': 1, 
                     'f': 4, 'g': 2, 'h': 4, 'i': 1, 'j': 8, 
                     'k': 5, 'l': 1, 'm': 3, 'n': 1, 'o': 1, 
                     'p': 3, 'q': 10, 'r': 1, 's': 1, 't': 1, 
                     'u': 1, 'v': 4, 'w': 4, 'x': 8, 'y': 4, 'z': 10}

score = 0
#Make sure to force a lowercase
word = str(input("What word would you like to enter?").lower())
for letter in word:
     score += SCRABBLE_LETTER_VALUES[letter]
print(score)
-1
Patrick 1 अप्रैल 2018, 09:42