python断言判断数字不能为负数
时间: 2024-09-29 14:11:23 浏览: 36
在Python中,你可以使用`assert`关键字来进行断言检查,确保某个条件满足。如果你想要检查一个数字是否为负数,并在不满足时抛出异常,可以这样做:
```python
def check_non_negative(number):
assert number >= 0, "Number cannot be negative"
# 如果number小于0,这个语句不会执行,程序会直接跳转到异常处理部分
print("Number is non-negative")
# 测试函数
check_non_negative(5) # 输出 "Number is non-negative"
check_non_negative(-3) # 抛出异常:AssertionError: Number cannot be negative
```
在这个例子中,`assert number >= 0` 这一行会检查 `number` 是否大于等于0。如果`number`是负数,Python会立即停止执行并触发一个`AssertionError`,显示自定义的消息"Number cannot be negative"。
相关问题
python assert
`assert` 是 Python 中的一个关键字,用于在代码中进行断言。它用于在程序中检查某个条件是否为真,如果该条件不为真,就会抛出 `AssertionError` 异常,从而中止程序的执行。
`assert` 的语法如下:
```python
assert condition, [message]
```
其中 `condition` 表示要进行检查的条件,如果该条件为假,就会抛出异常。`message` 是可选的参数,用于在抛出异常时显示消息。
例如,以下代码使用 `assert` 检查变量 `x` 的值是否为正数:
```python
x = -5
assert x > 0, "x must be positive"
```
如果 `x` 的值为负数,就会抛出如下异常:
```
AssertionError: x must be positive
```
这种断言的使用方式可以帮助程序员在开发过程中及时发现代码中的错误,并加快调试的速度。
python用表格为函数编写测试用例
在Python中,可以使用unittest模块为函数编写测试用例。以下是一个简单的示例:
```python
import unittest
def add_numbers(x, y):
return x + y
class TestAddNumbers(unittest.TestCase):
def test_add_positive_numbers(self):
result = add_numbers(2, 3)
self.assertEqual(result, 5)
def test_add_negative_numbers(self):
result = add_numbers(-2, -3)
self.assertEqual(result, -5)
def test_add_mixed_numbers(self):
result = add_numbers(2, -3)
self.assertEqual(result, -1)
if __name__ == '__main__':
unittest.main()
```
在此示例中,我们定义了一个名为add_numbers的函数,并使用unittest.TestCase创建了一个名为TestAddNumbers的测试类。测试类中包含三个测试方法,分别测试了两个正数相加、两个负数相加和一个正数和一个负数相加的情况。
在每个测试方法中,我们调用add_numbers函数并使用self.assertEqual断言来检查函数的返回值是否符合预期。
在脚本的末尾,我们使用unittest.main()运行测试。如果所有测试都通过,则输出OK,否则输出失败信息。
使用这种方法,可以轻松地为函数编写测试用例,并确保其正确性。
阅读全文