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

पायथन में फ़ंक्शन कैसे लिखें जो किसी भी तर्क को स्वीकार करते हैं

समस्या

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

समाधान

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

# Sample function to find the average of the given numbers
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}")

# Call the function with two numbers
define_average(1, 2)

आउटपुट

*** The average for the given numbers 1.5


# Call the function with more numbers
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 - <class 'dict'>
*** Type of titles post conversion - <class 'str'>


'The player - Roger Federer from Switzerland has Grandslams : 20 AND ATP : 103'

यहाँ ऊपर के उदाहरण में, player_titles एक ऐसा शब्दकोश है जिसमें पारित खोजशब्द तर्क होते हैं।

यदि आप ऐसा फ़ंक्शन चाहते हैं जो किसी भी संख्या में स्थितीय और कीवर्ड-केवल तर्कों को स्वीकार कर सके, तो * और ** का एक साथ उपयोग करें

def func_anyargs(*args, **kwargs):
print(args) # A tuple
print(kwargs) # A dict

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


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

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

  1. पायथन यादृच्छिक संख्या कैसे उत्पन्न करता है?

    पायथन के मानक वितरण में एक यादृच्छिक मॉड्यूल है जिसमें यादृच्छिक संख्या पीढ़ी के लिए कार्य हैं। बेसिक रैंडम () फ़ंक्शन 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 यह मानते हुए कि आपके पास इस स्क्रिप्ट की सामग्री तक पहुंच नहीं है, आप दिए गए फ़ंक्शन में तर्कों की संख्या निम्नानुसार पा सकते हैं ए