Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में एक्सेल स्प्रेडशीट ऑपरेशन करने का कार्यक्रम?

मान लीजिए कि हमारे पास एक्सेल स्प्रेडशीट का प्रतिनिधित्व करने वाला 2 डी मैट्रिक्स है। हमें सभी कोशिकाओं और सूत्रों की गणना के साथ एक ही मैट्रिक्स खोजना होगा। एक एक्सेल स्प्रेडशीट नीचे की तरह दिखती है

B1 7 0
3 5 =A1+A2

कॉलम को (ए, बी, सी...) के रूप में नामित किया गया है और पंक्तियां हैं (1, 2, 3....) संख्याओं या सेल संदर्भ के बीच। (उदाहरण। "=A1+5", "=A2+B2", या "=2+5")

तो, अगर इनपुट पसंद है

B1 7 0
3 5 =A1+A2

तो आउटपुट होगा

7 7 0
3 5 10

जैसा कि B1 =7 (पहली पंक्ति दूसरा कॉलम) और "=A1 + A2" 7 + 3 =10 है।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे

  • एक फ़ंक्शन को परिभाषित करें संकल्प() । इसमें s

    . लगेगा
  • यदि s संख्यात्मक है, तो s को पूर्णांक के रूप में वापस करें

  • अन्यथा हल करें (getIdx (s))

  • getIdx() फ़ंक्शन को परिभाषित करें। इसमें s

    . लगेगा
  • एक सूची लौटाएं जहां पहला मान s को 1 से अंत तक पूर्णांक के रूप में प्रतिस्थापित कर रहा है और दूसरा मान s[0] का ASCII है - "A" का ASCII

  • फ़ंक्शन do() को परिभाषित करें। इसमें ए, बी, सेशन लगेगा

  • अगर op "+" के समान है, तो

    • वापसी a + b

  • यदि op "-" के समान है, तो

    • वापसी ए - बी

  • अगर op "*" के समान है, तो

    • वापसी a * b

  • यदि op "/" के समान है, तो

    • वापसी ए / बी

  • फ़ंक्शन को हल करें () परिभाषित करें। यह मैं, जम्मू ले जाएगा

  • यदि मैट्रिक्स [i, j] संख्यात्मक है तो उस मान को वापस कर दें

  • अन्यथा:

    • एस:=मैट्रिक्स [i, जे]

    • अगर s[0] "=" के समान है, तो

      • s [इंडेक्स 2 से अंत तक] के सबस्ट्रिंग में प्रत्येक c के लिए, करें

        • अगर c (+, -, /, *) में कोई ऑपरेटर है, तो

          • सेशन:=सी

          • लूप से बाहर आएं

      • [a, b] :=s का सबस्ट्रिंग [इंडेक्स 1 से अंत तक] और इसे op से विभाजित करें

      • [aRes, bRes] :=[resolve(a) ,resolve(b)]

      • रिटर्न डू (aRes, bRes, op)

    • अन्यथा,

      • वापसी हल (getIdx(s))

  • मैं के लिए 0 से लेकर मैट्रिक्स की पंक्ति गणना तक, करें

    • j के लिए रेंज 0 से लेकर मैट्रिक्स की कॉलम काउंट तक, करें

      • मैट्रिक्स [i, j] :=(हल करें(i, j)) स्ट्रिंग के रूप में

  • रिटर्न मैट्रिक्स

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें:

उदाहरण

class Solution:
   def solve(self, matrix):
      def resolve(s):
         try:
            return int(s)
         except:
            return solve(*getIdx(s))

      def getIdx(s):
         return [int(s[1:]) - 1, ord(s[0]) - ord("A")]

      def do(a, b, op):
         if op == "+":
            return a + b
         if op == "-":
            return a - b
         if op == "*":
            return a * b
         if op == "/":
            return a / b

      def solve(i, j):
         try:
            return int(matrix[i][j])
         except:
            s = matrix[i][j]
            if s[0] == "=":
               for c in s[2:]:
                  if c in "+-/*":
                     op = c
                     break
               a, b = s[1:].split(op)
               aRes, bRes = resolve(a), resolve(b)
               return do(aRes, bRes, op)
            else:
               return solve(*getIdx(s))

      for i in range(len(matrix)):
         for j in range(len(matrix[0])):
            matrix[i][j] = str(solve(i, j))

      return matrix

ob = Solution()
matrix = [
   ["B1", "7", "0"],
   ["3", "5", "=A1+A2"]
]
print(ob.solve(matrix))

इनपुट

[["B1", "7", "0"],
["3", "5", "=A1+A2"] ]

आउटपुट

[['7', '7', '0'],
['3', '5', '10']]

  1. पायथन का उपयोग करके शतरंज की बिसात का रंग निर्धारित करने का कार्यक्रम

    मान लीजिए कि हमारे पास एक शतरंज की बिसात है, जो एक स्ट्रिंग है जो शतरंज की बिसात की पंक्ति और स्तंभ के निर्देशांक का प्रतिनिधित्व करती है। आपके संदर्भ के लिए नीचे एक बिसात है। हमें यह जांचना होगा कि दी गई सेल सफेद है या नहीं, अगर सफेद सही है, अन्यथा झूठी वापसी करें। इसलिए, यदि इनपुट निर्देशांक =

  1. पायथन में दो आयताकार ओवरलैप या नहीं की जाँच करने का कार्यक्रम

    मान लीजिए कि हमारे पास एक आयत है जिसे चार तत्वों [x1, y1, x2, y2] के साथ एक सूची के रूप में दर्शाया गया है, जहां (x1, y1) इसके निचले-बाएं कोने के निर्देशांक हैं, और (x2, y2) के निर्देशांक हैं इसका स्टॉप-राइट कॉर्नर। दो आयतें ओवरलैप करती हैं जब उनके चौराहे का क्षेत्र सकारात्मक होता है। इसलिए, दो आयते

  1. कॉल करने योग्य () पायथन प्रोग्राम में

    इस ट्यूटोरियल में, हम बिल्ट-इन मेथड callable() पर चर्चा करने जा रहे हैं। . यह एक तर्क लेता है और लौटाता है कि क्या तर्क कॉल करने योग्य . है या नहीं। यदि आप कोई फंक्शन या क्लास लेते हैं, तो वे कॉल करने योग्य होते हैं। पूर्णांक, फ्लोट्स, स्ट्रिंग्स इत्यादि जैसे स्थिरांक कॉल करने योग्य नहीं हैं। उदाहरण