﻿ Python: Find the ration of positive numbers, negative numbers and zeroes in an array of integers - w3resource

# Python: Find the ration of positive numbers, negative numbers and zeroes in an array of integers

## Python map: Exercise-12 with Solution

Write a Python program to find the ratio of positive numbers, negative numbers and zeroes in an array of integers.

Total number of elements in the give array = n
Ratio:
Positive numbers (n1) : Negative numbers(n2) : Zeroes(n3)
= n1/n : n2/n : n3/n

Sample Solution:

Python Code :

``````from array import array

def plusMinus(nums):
n = len(nums)
n1 = n2 = n3 = 0

for x in nums:
if x > 0:
n1 += 1
elif x < 0:
n2 += 1
else:
n3 += 1

return round(n1/n,2), round(n2/n,2), round(n3/n,2)

nums = array('i', [0, 1, 2, -1, -5, 6, 0, -3, -2, 3, 4, 6, 8])
print("Original array:",nums)
nums_arr = list(map(int, nums))
result = plusMinus(nums_arr)
print("Ratio of positive numbers, negative numbers and zeroes:")
print(result)
nums = array('i', [2, 1, 2, -1, -5, 6, 4, -3, -2, 3, 4, 6, 8])
print("\nOriginal array:",nums)
nums_arr = list(map(int, nums))
result = plusMinus(nums_arr)
print("Ratio of positive numbers, negative numbers and zeroes:")
print(result)
``````

Sample Output:

```Original array: array('i', [0, 1, 2, -1, -5, 6, 0, -3, -2, 3, 4, 6, 8])
Ratio of positive numbers, negative numbers and zeroes:
(0.54, 0.31, 0.15)

Original array: array('i', [2, 1, 2, -1, -5, 6, 4, -3, -2, 3, 4, 6, 8])
Ratio of positive numbers, negative numbers and zeroes:
(0.69, 0.31, 0.0)
```

Python Code Editor:

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

Next: Write a Python program to count the same pair in two given lists. use map() function.

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