Вход | Регистрация

Въпроси за четвърта задача

  • Питайте, ние я отговорим, я не...

    14.05.2010
  • unit_converter(a, b, c) и резултат от функцията върху която ще се прилага x, колко трябва да е резултата след конвертиране (няма да е ax + b + c)???

    16.05.2010
  • @Филип Янков Май unit_converter или ще приема само 2 аргумента, или трябва да е нещо от рода на ax^2 + bx + c

    Общия случай е следния: A0(x^n) + A1(x^(n-1)) + A2(x^(n-2)) ... + A(n-1)x + An

    16.05.2010 (променeно 16.05.2010)
  • Откъде получаваш c? Заданието е само за най-просто линейно преобразуване: ax+b.

    17.05.2010 (променeно 17.05.2010)
  • Тук се получи малко обърквация.

    Като всеки добър декоратор, и този трябва позволява декорираната функцията да има произволен брой и вид аргументи.

    Предполагам някои са го разбрали като функцията unit_converter да има произволен брой и вид аргументи. В задачата се иска декорираНата, а не декорираЩата =>

    1)unit_converter си има само 2 аргумента

    2)функцията, която декорираме с unit_converter, трябва да може да използва произволен брой и вид аргументи(в примера това е celsius_function()).

    Все пак е добре да се потвърди от Алек и питонския скуад.

    17.05.2010 (променeно 17.05.2010)
  • @Георги да, прав си. ДекорираЩата функция е unit_converter() и трябва да има само 2 аргумента и да връща декоратор (unit_converter(a,b)(func)). ДекорираНата функция (celsius_function() в заданието) може да има произволни аргументи.

    17.05.2010 (променeно 17.05.2010)
  • Защо в теста имаме decorated(val = 18.0)? decorated = unit_converter(1.8, 32)(celsius_function)

    Не ми е ясно откъде идва това val, пък и теста ми гърми с TypeError: decorated() got an unexpected keyword argument 'val'

    18.05.2010
  • Сбъркала си някъде. decorated трябва да е модифицирания вариант на celsius_function и следователно трябва да приема аргументите на celsius_function.

    18.05.2010
  • Приема. Аз по-скоро си мислех, че проблема е в самата думичка val= . Ако я махна и оставя само самата стойност 18, теста ми минава... :P

    18.05.2010
  • Елена, припомни си какво прави **kwargs!

    18.05.2010
  • Искам да попитам какво ще е поведението на функцията is_prime(), ако и се подаде float число - изключение или false?

    23.05.2010
  • При float is_prime() връща False.

    23.05.2010
  • Наглият въпрос-"Това,че връща False,за всеки float,капан ли е?".

    23.05.2010
  • Не. По дефиниция простите числа са цели. Да си затворим очите за is_prime(2.0) - няма да го тестваме.

    По принцип можем да направим проверка от типа на if int(number) != number:, но фокуса на задачата не е в това.

    23.05.2010 (променeно 23.05.2010)
  • За testNegative() и testNonNumber() по колко теста да се правят?

    24.05.2010
  • "поведението на is_prime() при числа (is_prime() ще хвърли exception)" Това значи, че трябва да бъде тествано с неща различни от числа(testNonNumber()) или "is_prime() при числа ... ще хвърли exception"?

    testRandom(), желае се от нас да напишем функция is_prime()(с друго име), при 10000 случайни числа, но в какъв интервал? И това значи ли, че за всяко генерирано число трябва да се проверява за True or False от is_prime(), и функцията ни?

    24.05.2010
  • @Иван Севастоянов 1-2 са достатъчни за всяко

    @Атанас Анастасов Грешка, извинявам се. Правилното е "is_prime() хвърля exception при аргументи, различни от числа."

    Идеята на testRandom() е точно да напишете ваша функция my_is_prime() и да сравните за 10,000 произволни числа резултата на my_is_prime() и is_prime(). Интервалът е без значение.

    24.05.2010
  • Трябва ли да се генерират отрицанията на полета, които не са методи. Примерно дали

    class Foo():
        def __init__(self, nice):
            self.nice = nice

    има поле not_nice

    26.05.2010 (променeно 26.05.2010)
  • При testRandom() само int-ове ли трябва да генерираме или измежду тях може да има и float?

    26.05.2010
  • @Габриела : Мисля ,че казаха за числата ,че трябва да са естествени... Някой може ли да даде малък hint към реализацията на NegativeMetaDynamic ?

    26.05.2010
  • Хмм, погледни в последните две лекции

    26.05.2010 (променeно 26.05.2010)
  • Я кажете:

    1. Трябва ли домашното, т.е. p10.py, да рънва теста, ако се пусне от command prompt-а?

    2. Защо assertRaises се държи неприлично с мен? Вашия is_prime коректно си вдига Exception, аз коректно му казвам на assertRaises да очаква Exception, а вместо да pass-не, ми дава ERROR?!!

    ======================================================================
    ERROR: testNonNumber (__main__.IsPrimeTest)
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "S:\Dumbledore\maths\_term\python\p10.py", line 38, in testNonNumber
        self.assertRaises(Exception, is_prime('villain'))
      File "S:\Dumbledore\maths\_term\python\p10sample.py", line 9, in is_prime
        raise Exception
    Exception
    26.05.2010 (променeно 26.05.2010)
  • Thumbs_up

    @Светлин Анков Може би си забелязал, ама в техния пример има една ламбда...

    26.05.2010
  • @Никола Петров: не, само методи.

    @Останалите: каквото ви отговориха е вярно.

    26.05.2010
  • Не бях забелязъл изобщо. 10x: и един едноточков палец за теб!

    Нов проблем: нещо с метакласовете не става:

    Traceback (most recent call last):
      File "S:\Dumbledore\maths\_term\python\p10.py", line 88, in <module>
        twenty = Comparer(20)
    TypeError: object.__new__() takes no parameters

    Като се сърди на:

    return type.__new__(clazz, name, bases, dict(negated))
    26.05.2010 (променeно 26.05.2010)