[Вопрос решен] задание питон.5. Нужно вывести первые n строк треугольника...

задание питон.5. Нужно вывести первые n строк треугольника Паскаля. В этом треугольнике на вершине и по бокам стоят единицы, а каждое число внутри равно сумме двух расположенных над ним чисел.

Необходимо написать тесты к данной функции. В тесте нужно проверить на ввод вещественного числа, целого числа, ввод строки, задание отрицательного значения, задания значения 0, задания очень большого значения (например: 1000). Для написания тестов используем pytest или unittest.

(1) Смотреть решение

Ответ нейросети AfinaAI

Привет!​ В этой статье я хотел бы поделиться с вами своим личным опытом использования функции на питоне для вывода первых n строк треугольника Паскаля․ Основываясь на своем опыте‚ я также расскажу вам‚ как можно написать тесты для этой функции с использованием фреймворков pytest или unittest․Для начала‚ давайте посмотрим на саму функцию‚ которую мы будем тестировать⁚

python
def pascal_triangle(n)⁚
triangle []
for i in range(n)⁚
row [1] * (i 1)
if i > 1⁚
for j in range(1‚ i)⁚
row[j] triangle[i-1][j-1] triangle[i-1][j]
triangle․append(row)
return triangle

Это достаточно простая функция‚ которая использует циклы для создания треугольника Паскаля․ Каждая строка треугольника имеет длину‚ равную ее номеру‚ и все значения внутри строки вычисляются как сумма двух чисел‚ находящихся выше․ Результатом работы функции является двумерный массив‚ представляющий треугольник Паскаля․Теперь мы можем перейти к написанию тестов․ Ваше задание состоит в проверке функции на различных типах входных данных‚ таких как вещественные числа‚ целые числа‚ строки‚ а также на ввод отрицательного значения‚ нуля и очень большого значения․С помощью фреймворка pytest ваши тесты можно написать следующим образом⁚

python
import pytest

def test_pascal_triangle⁚
# Ввод вещественного числа
with pytest․raises(TypeError)⁚
pascal_triangle(2․5)

# Ввод целого числа
assert pascal_triangle(5) [[1]‚ [1‚ 1]‚ [1‚ 2‚ 1]‚ [1‚ 3‚ 3‚ 1]‚ [1‚ 4‚ 6‚ 4‚ 1]]

# Ввод строки
with pytest․raises(TypeError)⁚
pascal_triangle(‘5’)
# Ввод отрицательного значения
assert pascal_triangle(-2) []

# Ввод значения 0
assert pascal_triangle(0) []

# Ввод очень большого значения
assert len(pascal_triangle(1000)) 1000

Здесь мы используем функцию `test_pascal_triangle`‚ которая содержит все тесты для функции `pascal_triangle`․ Мы используем утверждения `assert`‚ чтобы проверить‚ что функция возвращает ожидаемый результат для каждого типа входных данных․ Мы также используем `pytest․raises` для проверки на возникновение исключения в случаях‚ когда это ожидается․Если вам больше нравится использовать фреймворк unittest‚ то тесты будут выглядеть немного иначе⁚

Читайте также  Выделите в предложениях лексические и стилистические ошибки, исправьте их. 1. Поэма эта является пиком в творчестве поэта. 2. Рисунки получились немного неудачливые. 3. Такой прием обработки наиболее эффектен в наших условиях. 4. Вскрытие рек еще больше увеличило уровень воды. 5. Председательствует на заседании профессор, только что защитивший ученую степень. 6. В 1918 году началась гражданская интервенция. 7. На этой-то вечеринке он и начал за ней флиртовать. 8. Он мне с апогеем рассказывал об этом. 9. Писатель играл большое значение в литературе конца века. 10. Я забыл поставить роспись в ведомости.

python
import unittest
class PascalTriangleTestCase(unittest․TestCase)⁚
def test_float_input(self)⁚
self․assertRaises(TypeError‚ pascal_triangle‚ 2․5)

def test_integer_input(self)⁚
self․assertEqual(pascal_triangle(5)‚ [[1]‚ [1‚ 1]‚ [1‚ 2‚ 1]‚ [1‚ 3‚ 3‚ 1]‚ [1‚ 4‚ 6‚ 4‚ 1]])

def test_string_input(self)⁚
self․assertRaises(TypeError‚ pascal_triangle‚ ‘5’)

def test_negative_input(self)⁚
self․assertEqual(pascal_triangle(-2)‚ [])

def test_zero_input(self)⁚
self․assertEqual(pascal_triangle(0)‚ [])

def test_large_input(self)⁚
self․assertEqual(len(pascal_triangle(1000))‚ 1000)

Здесь мы создаем класс `PascalTriangleTestCase`‚ который наследуется от `unittest․TestCase`․ Затем мы определяем несколько методов‚ каждый из которых содержит отдельный тест․ Мы используем методы утверждений‚ такие как `assertRaises` и `assertEqual`‚ чтобы проверить‚ что функция возвращает ожидаемый результат․
В обоих случаях‚ как вы можете видеть‚ мы проверяем наличие исключения при вводе вещественного числа и строки с использованием `raises`․ Для остальных тестов мы проверяем‚ что результат работы функции соответствует ожидаемому значению с использованием функций `assertEqual` или `assert`․
Я надеюсь‚ что эта статья помогла вам понять‚ как написать тесты для функции вывода первых n строк треугольника Паскаля на питоне․ Используя фреймворки pytest или unittest‚ вы можете убедиться в корректности работы вашей функции на различных типах входных данных․ Удачи!​

AfinaAI