PYTHON 120道题目详解(55-57)

55.Python中如何使用sqlite3模块创建数据库、表和执行查询操作?

在Python中,你可以使用sqlite3模块来创建和管理SQLite数据库。SQLite是一个轻量级的关系型数据库,它不需要单独的服务器进程或系统配置,并且可以与Python程序集成在一起。

以下是一个简单的示例,展示了如何使用sqlite3模块创建数据库、表和执行查询操作:

import sqlite3
# 连接到SQLite数据库
# 如果数据库不存在,它将被创建
# 如果数据库已存在,它将被打开
conn = sqlite3.connect('example.db')
# 创建一个游标对象
cursor = conn.cursor()
# 创建一个表
cursor.execute('''
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER
)
''')
# 插入一些数据
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("Alice", 25))
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("Bob", 30))
# 提交事务
conn.commit()
# 执行查询操作
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
# 打印查询结果
for row in rows:
print(row)
# 关闭连接
conn.close()

在这个示例中,我们首先导入了sqlite3模块,然后使用sqlite3.connect()函数连接到SQLite数据库。如果数据库文件example.db不存在,它将被创建。如果它已经存在,它将被打开。

接下来,我们创建了一个游标对象,并使用cursor.execute()方法执行SQL语句来创建表、插入数据和执行查询操作。在这个示例中,我们创建了一个名为users的表,并插入了两条数据。

注意,在插入数据时,我们使用了参数化查询(?作为占位符),这是为了防止SQL注入攻击。

最后,我们提交了事务(conn.commit()),执行了查询操作,并打印了查询结果。在完成所有操作后,我们使用conn.close()方法关闭了数据库连接。

可以根据自己的需要修改和扩展这个示例,例如,添加更多的表、字段和查询语句。

56.Python中如何使用PIL(Pillow)库进行图像处理和操作?

Python的Pillow库(也被称为PIL,即Python Imaging Library)是一种非常方便的图像处理工具。下面是一些基本的使用步骤和示例:

首先,需要安装Pillow库。在命令行中输入以下命令进行安装:

pip install pillow

安装完成后,可以在Python环境中导入并使用它。以下是一些基本的操作:

  1. 打开图片:

from PIL import Image
img = Image.open("picture.jpg")
img.show()

这段代码会打开当前目录下的 "picture.jpg" 图片,并显示出来。

  1. 转换图像格式并保存:

from PIL import Image
img = Image.open("picture.jpg")
img.save("result.png")

这段代码将 "picture.jpg" 转换为PNG格式,并保存为 "result.png"。

  1. 创建缩略图:

from PIL import Image
img = Image.open("picture.jpg")
img.thumbnail((128, 128))
img.save("result.jpg")

这段代码会创建一个最大边长为128像素的缩略图,并保存为 "result.jpg"。

  1. 获取图像属性:

from PIL import Image
img = Image.open("picture.jpg")
print(img.format, img.size, img.mode)

这段代码会打印出图像的格式、大小和模式。

此外,Pillow库还支持许多其他的图像处理操作,如图像的大小转换,图像旋转,任意的仿射变换,直方图方法(允许你展示图像的一些统计特性)等。你可以查阅Pillow的官方文档,以获取更多详细的信息和使用示例。

注意:在处理图像时,一定要确保你有权使用和处理这些图像,避免侵犯他人的版权。

57.Python中如何使用unittest库进行单元测试和编写测试用例?

在Python中,unittest库是一个内置的库,用于进行单元测试。它提供了一系列的类和方法来帮助您编写和组织测试用例,运行测试,并报告结果。下面是如何使用unittest库进行单元测试和编写测试用例的基本步骤:

  1. 导入unittest模块:首先,需要导入unittest模块。

import unittest
  1. 编写测试用例:创建一个类,继承自unittest.TestCase,然后在该类中编写测试方法。测试方法的名称通常以test_开头。

class MyTestCase(unittest.TestCase):
def test_something(self):
self.assertEqual(1 + 1, 2)

在上面的例子中,test_something是一个测试方法,使用self.assertEqual()来断言1 + 1的结果是否等于2。
3. 运行测试:有几种方法可以运行unittest测试

* **使用命令行**:如果测试文件是`test_my_module.py`,可以在命令行中运行`python -m unittest test_my_module`。
* **使用unittest.main()**:在测试文件的底部添加`if __name__ == '__main__': unittest.main()`,然后直接运行该文件。
```
python`if __name__ == '__main__':
unittest.main()`
```
* **使用测试套件**:可以创建一个测试套件,然后将测试用例添加到套件中,最后运行套件。
```
python`suite = unittest.TestSuite()
suite.addTest(MyTestCase('test_something'))
runner = unittest.TextTestRunner()
runner.run(suite)`
```

4. 添加更多的测试和设置:您可以根据需要添加更多的测试方法,每个方法都应该以test_开头。还可以使用setUp()tearDown()方法在每个测试方法之前和之后执行一些操作。

class MyTestCase(unittest.TestCase):
def setUp(self):
# 这个方法会在每个测试方法之前执行
self.some_variable = 10
def tearDown(self):
# 这个方法会在每个测试方法之后执行
pass
def test_something(self):
self.assertEqual(self.some_variable, 10)
  1. 使用断言方法unittest.TestCase类提供了许多断言方法,用于检查测试中的条件是否满足。一些常见的断言方法有assertEqual()assertTrue()assertFalse()assertIs()assertIsNone()assertIsNotNone()等。

通过遵循上述步骤,您可以使用unittest库在Python中编写和运行单元测试。

注意:在实际的项目中,通常会将测试用例放在单独的文件中,并按照某种约定命名(例如,以test_开头的文件名)。这样做有助于组织代码,并使得运行测试变得更加容易。

另外,为了获得更好的测试报告和更高级的测试功能,您还可以考虑使用unittest的扩展库,如pytestpytest提供了更简洁的语法,更灵活的测试发现机制,以及更丰富的插件生态系统。

但是,请注意,我在这里提供的是关于unittest库的基本信息,而不是pytest。如果您对pytest感兴趣,可以查阅相关文档以获取更多信息。

希望这可以帮助您开始使用unittest进行单元测试!

更新: 如果您希望使用unittest.main()来运行测试,并且希望它能够自动发现所有的测试用例,您应该确保所有的测试类都是以Test开头的,并且所有的测试文件都是以test_开头的。这样,当您运行unittest.main()时,它将自动查找和运行所有符合条件的测试用例。

你可能感兴趣的:(IT,python)