"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > पेचीदा पायथन प्रश्न

पेचीदा पायथन प्रश्न

2024-07-29 को प्रकाशित
ब्राउज़ करें:330

पिछले दो वर्षों में, मैं अपनी मुख्य प्रोग्रामिंग भाषा के रूप में पायथन का उपयोग कर रहा हूं। मैंने सोचा कि शायद यह "गहराई तक जाने" का एक अच्छा कारण है जैसा कि मैंने ट्रिकी जावास्क्रिप्ट प्रश्नों में किया था। अगले कुछ प्रश्न ऐसे मुद्दे थे जिनसे मुझे अपनी वर्तमान नौकरी में निपटने की आवश्यकता थी, अन्य वेब से प्रेरित थे।

तो क्या आप अपना दिमाग चकराने के लिए तैयार हैं (पायथन प्रश्न से)?

Tricky Python Questions

प्रशन

नोटिस 1!: प्रत्येक प्रश्न का स्पष्टीकरण के साथ एक उत्तर है (प्रत्येक आइटम के नीचे लिंक)।
नोटिस 2!: प्रत्येक प्रश्न के लिए सोचें कि आउटपुट क्या होगा।

प्रश्न 1
exapmle_dict = dict()
exapmle_dict.a = "string"
print(exapmle_dict)

उत्तर 1 पर जाएँ

प्रश्न 2
class Json:
    def __init__(self, *args, **kwargs):
        import json

    def print_dict_as_json(self, obj):
        print(json.dumps(obj))

example_json = Json()
example_json.print_dict_as_json({"a": "string"})

उत्तर 2 पर जाएँ

प्रश्न 3
def myFun(arg1, arg3, **kwargs):
    for key, value in kwargs.items():
        print("%s == %s" % (key, value))


my_dict = {'arg1':1, 'arg2': 2}
myFun(**my_dict, arg3=3)

उत्तर 3 पर जाएँ

प्रश्न 4
def add_to_all_1(arr):
    for i in range(len(arr)):
        arr[i]  =1

def my_func():
    arr = [1,2,3]
    add_to_all_1(arr)
    arr2 = arr
    print(arr2)

my_func()

उत्तर 4 पर जाएँ

जवाब

प्रश्न 1 का उत्तर

अगर तुमने कहा:

{"a": "string"}

दुर्भाग्य से, आप गलत हैं, उत्तर है:

AttributeError: 'dict' object has no attribute 'a'

यदि आप मुझे पसंद करते हैं और पहले जावास्क्रिप्ट से आए हैं, तो एक्सेस डिक्शनरी (जावास्क्रिप्ट में ऑब्जेक्ट) जावास्क्रिप्ट की तरह डॉट द्वारा नहीं है, आप केवल [] द्वारा एक्सेस कर सकते हैं, और कुंजी के अंदर आप "ए" सेट करना चाहते हैं।

प्रश्न 1 पर वापस जाएं

प्रश्न 2 का उत्तर

अगर तुमने कहा:

{"a": "string"}

आप फिर से गलत हैं, उत्तर है:

...
NameError: name 'json' is not define

आप पायथन में स्थानीय और वैश्विक दायरे के बीच अंतर जानते होंगे (यदि नहीं तो आपको इसे पढ़ना चाहिए: पायथन स्कोप)। __init__ एक फ़ंक्शन है, आयात स्थानीय दायरे के अंदर है इसलिए यह नहीं पता कि json क्या है। आप इसे विश्व स्तर पर इस प्रकार आयात करके ठीक कर सकते हैं:

import json

class Json:
    def print_dict_as_json(self, obj):
        print(json.dumps(obj))

example_json = Json()
example_json.print_dict_as_json({"a": "string"})

या अधिक उन्नत तरीके से:

class Json:
    import json as json
    def print_dict_as_json(self, obj):
        print(self.json.dumps(obj))

example_json = Json()
example_json.print_dict_as_json({"a": "string"})

आप अधिक विवरण के लिए कक्षा के अंदर आयात का उपयोग करके देख सकते हैं।

प्रश्न 2 पर वापस जाएं

प्रश्न 3 का उत्तर

अगर तुमने कहा:

arg2 == 2

आप ठीक कह रहे हैं! पायथन में, हमारे पास तर्क पारित करने के 3 तरीके हैं:

  • तर्क से ही:
def myFun(arg1):
   print(arg1)

myFun('arg1')
  • *args द्वारा - तर्कों की सूची या टुपल्स (हमें पायथन फ़ंक्शन में गैर-कीवर्ड तर्कों की एक चर संख्या को पारित करने की अनुमति देता है):
def myFun(*arg1):
   print(*arg1)

my_tuple = ('arg1', 'arg2')
myFun(my_tuple)
  • द्वारा kwargs key=value तर्कों को पारित कर सकता है (kwargs हमें Python फ़ंक्शन में कीवर्ड तर्कों की एक चर संख्या को पारित करने की अनुमति देता है) - जैसा कि प्रश्न में है। यदि आप इस विषय के बारे में अधिक पढ़ना चाहते हैं तो आप यहां पढ़ सकते हैं: freecodecamp - पायथन में *args और **kwargs का उपयोग कैसे करें

प्रश्न 3 पर वापस जाएं

प्रश्न 4 का उत्तर

जवाब है:

[2, 3, 4]

कुछ लोगों के लिए जो कार्यक्षेत्र और असाइनमेंट जानते हैं, यह एक बहुत आसान प्रश्न लग सकता है। जो लोग नहीं जानते हैं, उनके लिए पायथन वेरिएबल मेमोरी को संदर्भ के रूप में सहेजता है, इसलिए इस मामले में, एआरआर मेमोरी में एक संदर्भ को इंगित करेगा -> फ़ंक्शन मान बदल देगा (लेकिन फिर भी वही संदर्भ) -> एआरआर 2 होगा एआरआर का संदर्भ पता प्राप्त करें लेकिन मान संशोधित होने के बाद।

प्रश्न 4 पर वापस जाएं

इस आलेख को पढ़ने के लिए धन्यवाद। मुझे आशा है कि आपने आनंद लिया और नई चीज़ें सीखीं। यदि आपका कोई प्रश्न या सुझाव है तो कृपया एक टिप्पणी छोड़ें।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/tomeraitz/tricky-python-questions-45gg?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3