मूल रूप से, मैं प्रोग्रामिंग में नया हूं और मैं एक पायथन कोर्स के लिए साइन अप करता हूं। मुझे एक अभ्यास प्राप्त होता है जो निम्नानुसार पूछ रहा है:

उस कैलेंडर वर्ष के अनुरूप चीनी राशि चिन्ह, एक मनमाना जन्म वर्ष दिया गया है, जो एक फ़ंक्शन का निर्माण करता है। आप २००१-२०१२ से चीनी राशियों के एक शब्दकोश से शुरू करते हैं (पूरे १२-संकेत चक्र को कवर करते हुए)

तो मेरा विचार एक शब्दकोश बनाने का है,

d={2001:'Snake',2002:'Horse',2003:'Goat',2004:'Monkey',2005:'Rooster',2006:'Dog',
           2007:'Pig',2008:'Rat',2009:'Ox',2010:'Tiger',2011:'Rabbit',2012:'Dragon'}

और मैं बयान के साथ शुरू करता हूँ

def year(x):
    for x in d.keys:
        if x=d.keys:
            print d.value
        else:
        x..

मुझे मूल रूप से पता नहीं है कि अगले चरण तक कैसे पहुंचा जाए। क्या कोई मुझे कुछ दिशा दे सकता है?

-2
Alvin 22 जिंदा 2021, 04:28

2 जवाब

सबसे बढ़िया उत्तर

आप सही रास्ते पर हैं। आप चीनी राशियों को संग्रहीत करने के लिए एक शब्दकोश बना सकते हैं। चूंकि उनमें से १२ हैं और गणित को आसान बनाने के लिए, आइए प्रत्येक वर्ष के लिए १२ का मापांक मान प्राप्त करें। यह mod 0 = बंदर,... mod 11 = बकरी बनाता है।

इसके साथ, आप कर सकते हैं वर्ष% 12 एक संख्या के साथ परिणाम देगा जिसका उपयोग हम शब्दकोश d से मूल्य निकालने के लिए कर सकते हैं। शब्दकोश से मूल्य निकालने का तरीका dict[key] है। हमारे मामले में यह d[0] Monkey देगा।

उसके साथ, हम प्रोग्राम को इस प्रकार लिख सकते हैं:

#define the dictionary with keys. Numbers 0 thru 11 as keys and Zodiac sign as values

d={0:'Monkey',1:'Rooster',2:'Dog',3:'Pig',4:'Rat',5:'Ox',
   6:'Tiger',7:'Rabbit',8:'Dragon',9:'Snake',10:'Horse',11:'Goat'}

#define a function that receives the birth year, then returns the Zodiac sign
#as explained earlier we do dict[key]
#year%12 will give the key to use

def chinese_yr(cy):
    return d[cy%12]

#get an input from the user. To ensure the value is an int,
#use the statement within a try except statement
while True:
    try:
        yr = int(input ('enter year :'))
        break
    except:
        print ('Invalid entry. Please enter year')

#call the function with the year as argument        
print (chinese_yr(int(yr)))

इसका आउटपुट होगा:

enter year :2011
Rabbit

enter year :2001
Snake

enter year :2020
Rat

enter year :2021
Ox
1
Joe Ferndz 22 जिंदा 2021, 04:52

सबसे पहली बात, जैकब और स्टीव को धन्यवाद, मैंने कभी मापांक का उपयोग करने के बारे में नहीं सोचा। इसलिए मैंने अपना शब्दकोश और अपना कोड समायोजित किया।

d={9:'Snake',10:'Horse',11:'Goat',0:'Monkey',1:'Rooster',2:'Dog',
           3:'Pig',4:'Rat',5:'Ox',6:'Tiger',7:'Rabbit',8:'Dragon'}

def get_Chinese_zodiac(x):
for x in d:
    x=x%12
return d[x]

मजेदार बात यह है कि, मेरा कोड केवल "ड्रैगन" लौटा सकता है।

0
Alvin 22 जिंदा 2021, 05:06