Мы поможем в написании ваших работ!
ЗНАЕТЕ ЛИ ВЫ?
|
file: test_Sieve.py import Sieve, sets import unittest
Содержание книги
- res = int(open('a.txt').read()) / int(open('c.txt').read()) print res
- Исключения можно возбуждать и из программы. Для этого служит оператор raise. Заодно
- print "Обработка гарантированно завершена"
- В этих литералах записано число 10 print 10, 012, 0xA, 10L
- Подтип целочисленного типа для"канонического"обозначения логических величин.Два значения:True(истина)и False(ложь) -вот и все,что принадлежит этому типу.Как уже
- s2 = 'строка2\nс переводом строки внутри' s3 = """строка3
- lst2 = [x**2 for x in range(10) if x % 2 == 1] lst3 = list("abcde")
- Del s[i:j:d] Удаление элементов среза из последовательности
- присваивается значение по ключу
- список или списковое включение
- Перед фактическим выполнением операции вычисляются нужные для нее операнды.
- Убрать связь имени с объектом можно с помощью оператора del. В этом случае,если
- Стиль программирования-дополнительные ограничения,накладываемые на структуру
- При импорте можно изменить имя,с которым объект будет связан,с помощью as.В первом
- digits = re.compile("\d+") print argv[0], environ
- Help on built-in function len: len(...)
- Сравнение двух значений.Результат:отрицательный,ноль или
- Функции для доступа к внутренним структурам
- Функции для работы с атрибутами
- Выход из программы. Можно передать числовой код
- наименьшее целое,большее или равное x
- Размешивает элементы изменчивой последовательности s на
- locale.setlocale(locale.LC_ALL, None)
- quot;""Модуль для вычисления простых чисел от 2 до N """
- gt;>> profile.run("Sieve.primes(100000)")
- file: test_Sieve.py import Sieve, sets import unittest
- Sieve - Модуль для вычисления простых чисел от 2 до N
- Взаимодействие с операционной системой
- chmod(path, mode) Устанавливает режим доступа к path в значение mode.Режим доступа
- использовать константы из модуля stat,например stat.ST_MTIME
- Модуль tempfile. Import tempfile. F = tempfile. Temporaryfile(). F. Write("0"*100) # записывается сто символов 0 F. Seek(0) # уст. Указатель на начало файла. Print len(f. Read()) # читается до конца файла и вычисляется длина. Обработка текстов.
- mydata = ("abc", 12, [1, 2, 3]) output_file = open("mydata.dat", "w") p = pickle.Pickler(output_file) p.dump(mydata)
- Эта категория модулей имеет применение только для конкретных операционных систем и семейств операционных систем.Довольно большое число модулей в стандартной поставке
- Поддержка Internet. Форматы данных
- Лекция#3:Элементы функционального
- Функциональная программа. Функция: определение и вызов
- Лучше всего рассмотреть синтаксис определения функции на нескольких примерах.После
- args - список аргументов в порядке их указания при вызове return max(args), min(args)
- def mylist(val, lst=[]): lst.append(val) return lst
- Функции как параметры и результат
- gt;>> print range(1, 10)
- Частный случай применения map()-использование None в качестве первого аргумента.В
- return reduce(lambda x, y: x + y, lst, start)
- Итераторы можно применять вместо последовательности в операторе for. Более того,внутренне оператор for запрашивает от последовательности ее итератор. Объект
- def forit(mystate=[]): if len(mystate) < 3: mystate.append(" ")
- Функции itertools.imap(), itertools.starmap() и itertools.ifilter()
- lst = map(lambda x: math.sin(x*.4), range(30))
- quot;""Итератор последовательности Фибоначчи до N"""
- for line in (l.replace("- ", " - ") for l in open("input.dat")): print line
- print subtract(3, 2) subtract_from_3 = curry(subtract, 3) print subtract_from_3(2)
Модуль unittest
При разработке программного обеспечения рекомендуется применять так называемые регрессионные испытания.Для каждого модуля составляется набор тестов,по возможности таким образом,чтобы проверялись не только типичные вычисления,но и"крайние", вырожденные случаи, чтобы испытания затронули каждую ветку алгоритма хотя бы один раз.Тест для данного модуля(написанный сразу после того,как определен интерфейс модуля)находится в файле test_Sieve.py:
# file: test_Sieve.py import Sieve, sets import unittest
class TestSieve(unittest.TestCase):
def setUp(self): pass
def testone(self):
primes = Sieve.primes(1) self.assertEqual(primes, sets.Set())
def test100(self):
primes = Sieve.primes(100)
self.assert_(primes == sets.Set([2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47,
53, 59, 61, 67, 71, 73, 79, 83, 89, 97]))
if __name__ == '__main__': unittest.main()
Тестовый модуль состоит из определения класса,унаследованного от класса unittest.TestCase,в котором описывается подготовка к испытаниям(метод setUp)и сами испытания--методы,начинающиеся на test.В данном случае таких испытаний всего два:в первом испытывается случай N=1,а во втором--N=100.
Запуск тестов производится выполнением функции unittest.main().Вот как выглядят успешные испытания:
$ python test_Sieve.py
..
----------------------------------------------------------------------
Ran 2 tests in 0.002s OK
В процессе разработки перед каждым выпуском все модули прогоняются через регрессионные испытания,чтобы обнаружить,не были ли внесены ошибки.Однако
никакие тесты в общем случае не могут гарантировать безошибочности сложной программы.При дополнении модулей тесты также могут быть дополнены,чтобы отразить изменения в проекте.
Кстати,самPythonи его стандартная библиотека имеют тесты для каждого модуля-они находятся в каталоге test в месте,где развернуты файлы поставкиPython,и являются
частью пакета test.
|