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

पायथन में किसी भी संख्या में आर्गुमेंट्स स्वीकार करने वाले फंक्शन्स कैसे लिखें

समस्या

आप एक ऐसा फंक्शन लिखना चाहते हैं जो किसी भी संख्या में इनपुट आर्गुमेंट्स स्वीकार करे।

समाधान

पायथन में * आर्गुमेंट किसी भी संख्या में आर्गुमेंट्स स्वीकार कर सकता है। हम इसे किसी भी दी गई दो या अधिक संख्याओं का औसत ढूंढने के उदाहरण से समझेंगे। नीचे उदाहरण में, rest_arg पास किए गए सभी अतिरिक्त आर्गुमेंट्स (हमारे मामले में नंबर्स) का एक टपल है। फंक्शन औसत गणना करने में आर्गुमेंट्स को एक सीक्वेंस के रूप में मानता है।


# दी गई संख्याओं का औसत ढूंढने के लिए सैंपल फंक्शन
def define_average(first_arg, *rest_arg):
    average = (first_arg + sum(rest_arg)) / (1 + len(rest_arg))
    print(f"Output \n *** The average for the given numbers {average}")

# दो संख्याओं के साथ फंक्शन कॉल करें
define_average(1, 2)

आउटपुट: The average for the given numbers 1.5


# अधिक संख्याओं के साथ फंक्शन कॉल करें
define_average(1, 2, 3, 4)

आउटपुट: The average for the given numbers 2.5

किसी भी संख्या में कीवर्ड आर्गुमेंट्स स्वीकार करने के लिए

** से शुरू होने वाले आर्गुमेंट का उपयोग करें।


def player_stats(player_name, player_country, **player_titles):
    print(f"Output \n*** Type of player_titles - {type(player_titles)}")
    titles = ' AND '.join('{} : {}'.format(key, value) for key, value in player_titles.items())
    print(f"*** Type of titles post conversion - {type(titles)}")
    stats = 'The player - {name} from {country} has {titles}'.format(name=player_name, country=player_country, titles=titles)
    return stats

player_stats('Roger Federer', 'Switzerland', Grandslams=20, ATP=103)

आउटपुट:


*** Type of player_titles - 
*** Type of titles post conversion - 
'The player - Roger Federer from Switzerland has Grandslams : 20 AND ATP : 103'

उपरोक्त उदाहरण में, player_titles एक डिक्शनरी है जो पास किए गए कीवर्ड आर्गुमेंट्स को रखती है।

दोनों पोजिशनल और कीवर्ड-ओनली आर्गुमेंट्स स्वीकार करने के लिए

* और ** को एक साथ उपयोग करें।


def func_anyargs(*args, **kwargs):
    print(args)  # एक टपल
    print(kwargs)  # एक डिक्ट

इस फंक्शन के साथ, सभी पोजिशनल आर्गुमेंट्स एक टपल args में रखे जाते हैं, और सभी कीवर्ड आर्गुमेंट्स एक डिक्शनरी kwargs में रखे जाते हैं।

  1. - संख्याओं को मान्य करने के लिए पायथन रेगुलर एक्सप्रेशन कैसे लिखें?

    निम्नलिखित कोड ठीक 2018 के बराबर संख्या को मान्य करता है। उदाहरण import re s = 2018 match = re.match(r\b2018\b, s) print match.group() आउटपुट यह आउटपुट देता है 2018 उदाहरण निम्नलिखित कोड किसी भी पांच अंकों के पॉजिटिव इंटीजर को मान्य करता है। import re s = 2346 match = re.match(r(?

  1. - पायथन रैंडम नंबर कैसे जनरेट करता है?

    पायथन के स्टैंडर्ड डिस्ट्रीब्यूशन में एक random मॉड्यूल होता है जिसमें रैंडम नंबर जनरेशन के लिए फ़ंक्शन होते हैं। बेसिक random() फ़ंक्शन 0 और 1 के बीच एक रैंडम फ्लोटिंग पॉइंट नंबर वापस करता है। >>> import random >>> random.random() 0.5204702770265925 उसी मॉड्यूल में randrange() फ

  1. - पायथन फंक्शन के आर्गुमेंट्स की संख्या कैसे पता करें?

    मान लीजिए qux.py नामक एक स्क्रिप्ट निम्नानुसार है: #qux.py def aMethod1(arg1, arg2): pass def aMethod2(arg1,arg2, arg3, arg4, arg5): pass मान लें कि आपके पास इस स्क्रिप्ट की सामग्री तक पहुंच नहीं है, आप दिए गए फंक्शन में आर्गुमेंट्स की संख्या निम्नानुसार पता लगा सकते हैं: पायथन फंक्शन के अंद