<jupyter_start><jupyter_text>Types of Arguments

- **Default Arguments**

    In this, you can give the default value to a parameter while defining a function which it will take **if the value is not passed** while calling the function<jupyter_code>def add(a=3,b=9):
    print(a+b)

add(2)
add(2,7)
add()<jupyter_output>11
9
12<jupyter_text>- **Keyword Arguments**

    These are the values you can give to parameters **while calling the function**

    The special thing here is that the **order of the keyword arguments does not matter** as long as the **identifiers** are correct<jupyter_code>def inc(a,b,c):
    print(a+1,b+1,c+1)

inc(2,3,4)
inc(b=4,a=2,c=5)<jupyter_output>3 4 5
3 5 6<jupyter_text>- **Arbritrary Arguments(Args)**

    These are used to store an **unknown number** of arguments. 

    Whatever arguments are received are stored in a **tuple**<jupyter_code>def mult(*num):
    for i in num:
        print(i*5,end=" ")

mult(2,3)
print("\n")
mult(2,3,4,5,6)<jupyter_output>10 15 

10 15 20 25 30<jupyter_text>- **Keyword Arbitrary Arguments(Kwargs)**

  These are used to store an **unknown number** of keyword arguments but with each argument having keywords assigned to them. 
  
  The keyword arguments are stored in the form of a **dictionary**.<jupyter_code>def login(**details):
    print("Username:",details["username"],"Password:",details["password"])

login(username="Arjun",password="<PASSWORD>")<jupyter_output>Username: Arjun Password: <PASSWORD>
{'fraction_non_alphanumeric': 0.12692050768203073, 'fraction_numerical': 0.03139612558450234, 'mean_word_length': 4.828793774319066, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 15, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '4', 'dir': 'jupyter-structured-clean-dedup', 'id': '581995', 'license': 'MIT', 'n_tokens_mistral': 528, 'n_tokens_neox': 499, 'n_words': 163, 'path': 'functions/3)types_of_args.ipynb', 'repo_name': 'qprogramming-net/cbse-xii', 'size': '1487'}