यह पायथन में गोल्फ अनुकूलन का अभ्यास करने की एक चुनौती है - पुन: प्रयोज्य चालें और कुछ वर्णों को बंद करने के लिए शॉर्टकट। कई पायथन गोल्फरों से परिचित होंगे और पायथन टिप्स के सामान्य विचारों का उपयोग करेंगे । इनमें से कुछ पायथन-विशिष्ट सुविधाओं का उपयोग करते हैं, जिन्हें आप तब तक नहीं जानते होंगे जब तक कि आपने उन्हें नहीं देखा होगा, इसलिए यदि आप फंस गए हैं तो युक्तियों पर एक नज़र डालें।
लक्ष्य: दस समस्याएं हैं, प्रत्येक का एक संदर्भ स्निपेट है जिसे आप अनुकूलित करने के लिए और कोड का वर्णन करते हैं। आपका लक्ष्य इसे छोटा करने के लिए फिर से लिखना है लेकिन फिर भी कार्यात्मक रूप से समतुल्य है।
आपका स्कोर, जिसे आप कम करने की कोशिश कर रहे हैं, आपके कोड की कुल लंबाई सभी स्निपेट्स है। संदर्भ स्निपेट की लंबाई 150 है। टाईब्रेकर जल्द से जल्द पोस्ट है।
पोस्टिंग उत्तर: प्रत्येक समस्या के लिए, अपना कोड और उसके वर्ण की गणना करें। यदि आपको कुछ कम नहीं मिला, तो आप संदर्भ स्निपेट पोस्ट कर सकते हैं। यह इरादा है कि जब आप अपना पोस्ट करते हैं तो आप दूसरों के उत्तरों को नहीं देखते हैं। कृपया बिगाड़ने-टैग प्रत्येक व्यक्ति की समस्या सहित व्यक्तिगत चरित्र मायने रखता है। आप प्रकट कुल गिनती छोड़ सकते हैं। बेझिझक अब अपने समाधान का खुलासा करें या नए अप्रकाशित समाधानों को पोस्ट करें।
वैधानिकता पर विवरण: कार्यात्मक तुल्यता का अर्थ है कि कोड को किसी कार्यक्रम में उसके व्यवहार को प्रभावित किए बिना प्रतिस्थापित किया जा सकता है (स्मृति उपयोग की तरह चीजों की अनदेखी और एक अभिव्यक्ति के भाग के रूप में ऑपरेटर पूर्वता)। अभिव्यक्तियों को उन मूल्यों का उत्पादन करना चाहिए जो इसके समकक्ष हैं ==
। ध्यान दें 1.0==1==True
। जब तक अन्यथा न कहा जाए आपके कोड का कोई दुष्प्रभाव नहीं होना चाहिए। मैं समस्याओं को संस्करण-विशिष्ट होने का इरादा नहीं रखता, लेकिन सिर्फ मामले में, आप प्रत्येक समस्या के लिए पायथन संस्करण निर्दिष्ट कर सकते हैं।
समस्या 1: जब तक सूची L
में कम से कम 7 तत्व हों, तब तक इसे जारी रखें
# 16 chars
while len(L)>=7:
समस्या 2 : जांचें कि क्या दो तैरती हैं x
और y
दोनों सकारात्मक हैं।
# 11 chars
x>0 and y>0
समस्या 3 : यदि बूलियन b
सच है, तो पहले तत्व को हटा दें L
। अन्यथा, इसे अपरिवर्तित छोड़ दें।
# 12 chars
if b:L=L[1:]
समस्या 4 : जाँच करें कि क्या गैर-रिक्त सूची L
के सभी तत्व समान हैं। इस समस्या के लिए, सूची को संशोधित करना ठीक है।
# 22 chars
all(x==L[0]for x in L)
समस्या 5 : n
किसी सूची के अंत में किसी संख्या को L
तभी जोड़ें जब L
उसमें वह संख्या पहले से ही हो।
# 16 chars
if n in L:L+=[n]
समस्या 6 : फ्लोट के संकेत को व्यक्त करें x
: +1
सकारात्मक के लिए, 0
0 के लिए, -1
नकारात्मक के लिए।
# 20 chars
abs(x)/x if x else 0
समस्या 7 जब तक L
बूलियन्स की एक सूची के पहले तत्व के रूप में एक लूप जारी रखें , है True
। L
खाली हो तो भी बंद करो ।
# 17 chars
while L and L[0]:
समस्या 8 : एक लूप जारी रखें जब तक कि n
1. से अधिक न हो। संख्या n
एक सकारात्मक पूर्णांक होने की गारंटी है।
# 10 chars
while n>1:
समस्या 9 : जांचें कि क्या एक स्ट्रिंग के रूप में दर्शाया गया पूर्णांक s
ऋणात्मक है (यानी, '-' से शुरू होता है)।
# 9 chars
s[0]=='-'
समस्या 10 : एक बुलियन b
को "Win"
/ "Lose"
, True
-> "Win"
और False
-> में बदलें "Lose"
।
# 17 chars
["Lose","Win"][b]
चेतावनी: यदि आप इन को हल करना चाहते हैं, तो नीचे दिए गए स्पोइलर नीचे स्क्रॉल न करें।
यदि आप किसी समस्या के लिए इष्टतम स्कोर जानना चाहते हैं:
समस्या 1:
12
समस्या 2:
5
समस्या 3:
7
समस्या 4:
13
समस्या 5:
13
समस्या 6:
8
समस्या 7:
12
समस्या 8:
9
समस्या 9:
5
समस्या 10:
15