Skip to content
This repository has been archived by the owner on Oct 16, 2019. It is now read-only.

firsf task #5

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 20 additions & 12 deletions homework/tests.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
import math

def test_even_fucntion():
"""
Необходимо реализовать функцию even_filter, которая получает неограниченное количество аргументов
и возвращает из них только четные.
"""

def even_filter(*args):
pass
res = []
for count in args:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Итератор будет идти не по индексам списка, а по значениям. Т.е. тут не for count in args, а for arg in args.
Если там окажутся не idx + 1, как в тесте, а [1, 9, 3, 4, 5, 2, 10], то код сломается.

if args[count-1]%2==0:
res.append(args[count-1])
return res

assert even_filter(1, 2, 3, 4, 5, 6) == [2, 4, 6]

Expand All @@ -16,7 +22,9 @@ def test_increment_decorator():
декрорируемую функцию.
"""
def increment_derocator(func):
pass
def decor(val):
return func(val)+1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+ 1 нужно внутри функции - т.е. не к результату функции, а к аргументу.
Также в python принято операторы обрамлять + с каждой из сторон: func(val) + 1

return decor

@increment_derocator
def returner(value):
Expand All @@ -25,27 +33,27 @@ def returner(value):
assert returner(1) == 2



def test_point_segment_class():
"""
Дано: есть класс Point, описывающий точку на плоскости. Необходимо закончить класс Segment, описывающий отрезок,
принимающий на вход 2 точки и позволяющий посчитать его длину.
Модуль с математическими функциями называется math, документация по нему находится здесь:
https://docs.python.org/3/library/math.html?highlight=math#module-math
"""

"""
class Point():
def __init__(self, x, y):
self.x = x
self.y = y



class Segment():
def __init__(self, p1, p2):
pass

self.p1 = p1
self.p2 = p2

def length(self):
return 0

sq1 = (self.p1.x - self.p2.x)**2
sq2 = (self.p1.y - self.p2.y)**2
return math.sqrt(sq1 + sq2)

p1 = Point(0, 0)
p2 = Point(3, 4)
assert Segment(p1, p2).length() == 5.0
Expand Down