mirror of https://github.com/01-edu/public.git
Michele Sessa
2 years ago
committed by
Michele
3 changed files with 97 additions and 0 deletions
@ -0,0 +1,34 @@
|
||||
from numerical_operations_the_return import * |
||||
import sys |
||||
|
||||
sys.path.append('/jail/app/student') |
||||
|
||||
|
||||
def test_modulo(): |
||||
assert modulo(100, 50) == 0 |
||||
assert modulo(11, 5) == 1 |
||||
assert modulo(27, 20) == 7 |
||||
assert modulo(3.5, 0.5) == 0 |
||||
assert modulo(3.5, 1.5) == 0.5 |
||||
assert modulo(0, 2) == 0 |
||||
assert modulo(20, 0) == 0 |
||||
|
||||
|
||||
def test_divide(): |
||||
assert divide(100, 50) == 100 / 50 |
||||
assert divide(11, 5) == 11 / 5 |
||||
assert divide(27, 20) == 27 / 20 |
||||
assert divide(3.5, 0.5) == 7 |
||||
assert divide(3.5, 1.5) == 3.5 / 1.5 |
||||
assert divide(0, 2) == 0 |
||||
assert divide(20, 0) == 0 |
||||
|
||||
|
||||
def test_integer_division(): |
||||
assert integer_division(100, 51) == 1 |
||||
assert integer_division(11.0, 5.0) == 2 |
||||
assert integer_division(27.0, 20.0) == 1 |
||||
assert integer_division(3.5, 0.5) == 7 |
||||
assert integer_division(3.5, 1.5) == 2 |
||||
assert integer_division(0, 2) == 0 |
||||
assert integer_division(20, 0) == 0 |
@ -0,0 +1,19 @@
|
||||
def modulo(a, b): |
||||
if b == 0: |
||||
return 0 |
||||
else: |
||||
return a % b |
||||
|
||||
|
||||
def divide(a, b): |
||||
if b == 0: |
||||
return 0 |
||||
else: |
||||
return a / b |
||||
|
||||
|
||||
def integer_division(a, b): |
||||
if b == 0: |
||||
return 0 |
||||
else: |
||||
return a // b |
@ -0,0 +1,44 @@
|
||||
## Numerical operation: the return! |
||||
|
||||
### Instructions |
||||
|
||||
Create a file `numerical_operations_the_return.py` containing the following functions: |
||||
|
||||
- `modulo(a, b)` |
||||
- `divide(a, b)` |
||||
- `integer_division(a, b)` |
||||
|
||||
We assume that `a` and `b` are numbers (`int` or `float`). |
||||
|
||||
> In case of a division by zero or modulo zero your functions should return `0`. |
||||
|
||||
### Usage |
||||
|
||||
Here is a possible `test.py` to test your functions: |
||||
|
||||
```python |
||||
import numerical_operations_the_return |
||||
|
||||
print(numerical_operations_the_return.modulo(10, 3)) |
||||
print(numerical_operations_the_return.divide(10, 3)) |
||||
print(numerical_operations_the_return.divide(10, 0)) |
||||
print(numerical_operations_the_return.integer_division(10, 3)) |
||||
``` |
||||
|
||||
```bash |
||||
$ python test.py |
||||
1 |
||||
3.3333333333333335 |
||||
0 |
||||
3 |
||||
$ |
||||
``` |
||||
|
||||
### Hints |
||||
|
||||
- Some operations will panic in special cases (like division by zero), it is very important to always account for those cases and handle them properly in order to avoid bugs. |
||||
- In `Python 2` a division with two integers will return an integer, in `Python 3` it will return a float. We assume you are using `Python 3`, in case you want to force the `Python 3` behavior you can cast one of the operands to float like so: `float(a)`. |
||||
|
||||
### References |
||||
|
||||
- [conditions](https://www.w3schools.com/python/python_conditions.asp) |
Loading…
Reference in new issue