﻿ Python: Compute the square of first N Fibonacci numbers, use map function and generate a list of the numbers - w3resource

# Python: Compute the square of first N Fibonacci numbers, use map function and generate a list of the numbers

## Python map: Exercise-10 with Solution

Write a Python program to compute the square of the first N Fibonacci numbers, using the map function and generate a list of the numbers.

Fibonacci numbers:

From Wikipedia,
In mathematics, the Fibonacci numbers, commonly denoted Fn, form a sequence, called the Fibonacci sequence, such that each number is the sum of the two preceding ones, starting from 0 and 1. That is,

F0 = 0,   F1 = 1,

and

Fn = Fn - 1 + Fn - 2,

for n > 1.

The beginning of the sequence is thus:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144,....

Sample Solution:

Python Code :

``````import itertools
n = 10
def fibonacci_nums(x=0, y=1):
yield x
while True:
yield y
x, y = y, x + y
print("First 10 Fibonacci numbers:")
result = list(itertools.islice(fibonacci_nums(), n))
print(result)
square = lambda x: x * x
print("\nAfter squaring said numbers of the list:")
print(list(map(square, result)))
``````

Sample Output:

```First 10 Fibonacci numbers:
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

After squaring said numbers of the list:
[0, 1, 1, 4, 9, 25, 64, 169, 441, 1156]
```

Python Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

﻿

## Python: Tips of the Day

Kwargs:

**kwargs and *args are function arguments that can be very useful.

They are quite underused and often under-understood as well.

Let's try to explain what kwargs are and how to use them.

• While *args are used to pass arguments at an unknown amount to functions, **kwargs are used to do the same but with named arguments.
• So, if *args is a list being passed as an argument, you can think of **kwargs as a dictionary that's being passed as an argument to a function.
• You can use arguments as you wish as long as you follow the correct order which is: arg1, arg2, *args, **kwargs. It's okay to use only one of those but you can't mix the order, for instance, you can't have: function(**kwargs, arg1), that'd be a major faux pas in Python.
• Another example: You can do function(*args,**kwargs) since it follows the correct order.
• Here is an example. Let's say satelites are given with their names and weight in tons in dictionary format. Code prints their weight as kilograms along with their names.
```def payloads(**kwargs):
for key, value in kwargs.items():
print( key+" |||", float(value)*100)
payloads(NavSat1 = '2.5', BaysatG2 = '4')
```

Output:

```NavSat1 ||| 250.0
BaysatG2 ||| 400.0```

Since the function above would work for any number of dictionary keys, **kwargs makes perfect sense rather than passing arguments with a fixed amount.

```def payloads(**kwargs):
for key, value in kwargs.items():
print( key+" |||", float(value)*100)

sats={"Tx211":"3", "V1":"0.50"}
```Tx211 ||| 300.0