python基础语法(十三)

简介: python基础语法(十三)

第三方库

认识第三方库

第三方库就是别人已经实现好了的库, 我们可以拿过来直接使用.

虽然标准库已经很强大了, 但是终究是有限的. 而第三方库可以视为是集合了全世界Python程序猿的智慧

问题来了, 当我们遇到一个需求场景的时候, 如何知道, 该使用哪个第三方库呢?

就需要用到下面几个网站了

当我们确定了该使用哪个第三方库之后, 就可以使用pip来安装第三方库了

使用pip

pip是Python内置的包管理器

所谓包管理器就类似于我们平时使用的手机app应用商店一样.

第三方库有很多, 是不同的人, 不同的组织实现的. 为了方便大家整理, Python 官方提供了一个网站PyPI来手机第三方库

其他大佬写好的第三方库也会申请上传到PyPI上.这个时候就可以方便的使用 pip 工具来下载PyPI上的库了.

pip在我们安装Python的时候就已经内置了. 无需额外安装.

pip是一个可执行程序, 就在Python的安装目录中

打开cmd, 直接输入pip. 如果显示以下帮助信息, 说明pip已经准备就绪

如果最开始按照要求在安装Python的时候勾选了,那么pip就是默认可用的

如果提示

'pip' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

则说明没有正确的把pip加入到PATH中, 可以手动把pip所在的路径加入到 PATH 环境变量中可参考这篇文章(或者卸载重装Python, 记得勾上上述选项, 也许是更简单的办法)

使用以下命令, 即可安装第三方库

pip install [库名]

注意: 这个命令需要从网络上下载, 使用时要保证网络畅通.

安装成功后, 即可使用import导入相关模块, 即可进行使用

注意: 如果使用pip安装完第三方库之后, 在PyCharm中仍然提示找不到对应的模块, 则检查Settings ->Project ->Python Interpreter

看当前Python解释器设置的是否正确. (如果一个机器上安装了多个版本的 Python, 容易出现这种情况)

代码示例: 生成二维码

通过搜索引擎, 确定使用哪个库

搜索可以知道我们需要使用qrcode这个库, 可以用来生成二维码

查看qrcode文档

在PyPI上搜索qrcode==>点击则进入qrcode的详情页==>文档开头描述了如何安装 qrcode==>页面中央位置描述了qrcode库的使用方法

使用pip安装

pip install qrcode[pil]

注意: pip安装的时候可能会有警告, 提示使用的pip版本太低. 这个警告我们不必处理, 不影响我们正常使用

编写代码

按照文档给出的示例, 模仿一段代码

import qrcode
img = qrcode.make('汤老湿真帅')
img.save('qrcode.png')

运行完毕就可以得到一个二维码,使用微信或者其他工具扫码就可以看到里面的内容

所谓二维码, 本质上就是使用黑白点阵表示一个字符串.

我们日常使用的二维码内部一般是一个 URL, 扫码后会自动跳转到对应的地址, 从而打开一个网页

代码示例: 操作exce

读取excel可以使用xlrd模块

修改excel可以使用xlrd模块

此处以xlrd为例, 演示excel的基本操作

需求有如下excel表格 d:/test.xlsx

求100班的同学的平均分

虽然excel自身支持很强大的功能, 也可以求和, 求平均值. 但是如果是稍微复杂的需求, 操作起来可能就没那么方便了

安装 xlrd
pip install xlrd==1.2.0

注意: 此处要指定版本号安装. 如果不指定版本号, 则安装最新版. 最新版里删除了对 xlsx 格式文件的支持

编写代码

使用 open_workbook 方法打开一个excel文件.

使用 xlsx.sheet_by_index(0) 获取到0号标签页.

使用 table.nrows 获取到表格的行数.

使用 table.cell_value(row, col) 获取到表格中 row, col 位置的元素值

import xlrd
# 1. 打开 xlsx 文件
xlsx = xlrd.open_workbook('d:/test.xlsx')
# 2. 获取 0 号标签页. (当前只有一个标签页)
table = xlsx.sheet_by_index(0)
# 3. 获取总行数
nrows = table.nrows
# 4. 遍历数据
count = 0
total = 0
for i in range(1, nrows):
  # 使用 cell_value(row, col) 获取到指定坐标单元格的值.
  classId = table.cell_value(i, 1)
  if classId == 101:
    total += table.cell_value(i, 2)
    count += 1
print(f'平均分: {total / count}')

代码示例: “程序猿鼓励师”

监听键盘按键, 每按键20下, 就自动播放一个音频, 鼓励一下辛苦搬砖的自己

安装第三方依赖

pynput 用于监听键盘按键. 注意版本不要用最新.

playsound 用于播放音频

pip install pynput==1.6.8
pip install playsound==1.2.2

准备音频文件

此处准备了一个 ding.mp3 放到和 py 代码同级目录中

编写代码

使用 from import 的格式直接导入模块中的指定对象/函数.

使用 keyboard.Listener 监听键盘按键. 其中 on_release 会在释放按键时被调用.

使用 listener.start 启动监听器. 为了防止程序直接退出, 使用 listener.join 让程序等待用户按键.

使用 count 计数, 每隔 10 次, 调用 playsound 播放音频文件.

from pynput import keyboard
from playsound import playsound
count = 0
def on_release(key):
  print(key)
  global count
  count += 1
  if count % 10 == 0:
    playsound('ding.mp3')
listener = keyboard.Listener(
    on_release=on_release)
listener.start()
listener.join()

改进代码

上述代码在执行过程中, 会感觉到播放音频会导致按键卡顿. 可以使用多线程解决这个问题.

使用 threading.Thread 引入多线程类.

使用 Thread 的构造函数来构造一个线程. target 表示线程要执行的任务, args 表示 target中要调用函数的参数.

使用 Thread.start() 启动线程

from pynput import keyboard
from playsound import playsound
from threading import Thread
count = 0
def on_release(key):
  print(key)
  global count
  count += 1
  if count % 10 == 0:
    t = Thread(target=playsound, args=('ding.mp3',))
    t.start()
    #playsound('ding.mp3')
listener = keyboard.Listener(
    on_release=on_release)
listener.start()
listener.join()
目录
相关文章
|
3天前
|
数据采集 人工智能 自然语言处理
python语言的基础语法
严格来说python是先编译成字节码,然后再解释执行的一门语言。
13 7
|
5天前
|
Java C语言 C++
Python基础语法
Python基础语法
11 1
|
6天前
|
JSON 数据格式 索引
python之JMESPath:JSON 查询语法库示例详解
python之JMESPath:JSON 查询语法库示例详解
16 0
|
5天前
|
存储 Python
Python进阶语法之推导式
本章是对自己学完基础语法后,学习python进阶语法推导式过程中,自己的一些理解和看法,因为自己从刚开始第一次看看不懂,到学习一段时间后,通过积累再次看这里的知识点发现自己有了新的理解,这次将这部分知识学完了,剩下就是通过练习来达到熟练了.本章的推导式,包含列表推导式,字典推导式,集合与元组推导式这四种.主要是对python进阶语法推导式,的练习与理解,同时也提高了自己对代码的简化和运行的能力的提高,也是在这次学习中,我发现学习代码更多需要的是对基础和知识的积累,当眼界与思维突破瓶颈,看之前难以理解的事物发现变的容易去使用和理解了.
|
6天前
|
Java 开发者 索引
Python基础语法:类笔记
本篇博文是把自己在学习python类的过程中自己理解和笔记,一点一点总结的写出出来,做一个总结,加深对面向对象编程的理解。
|
5天前
|
Python
python中的语法错误
【4月更文挑战第23天】
21 3
|
5天前
|
测试技术 API 持续交付
【专栏】Python在自动化测试与单元测试中的应用,强调其简洁语法和丰富库的优势
【4月更文挑战第27天】本文探讨了Python在自动化测试与单元测试中的应用,强调其简洁语法和丰富库的优势。文章分为三部分:首先,阐述自动化测试的重要性及Python的易学性、库支持、跨平台和社区支持;其次,介绍了Python的Unittest标准测试框架和Pytest第三方框架的特点与用法;最后,讨论了Web UI和API自动化测试实践,并提出持续集成、测试金字塔等最佳实践。Python为软件开发的测试环节提供了强大支持,帮助构建更稳定的系统。
|
6天前
|
Python
Python从入门到精通——1.2.2学习基础语法和数据类型之控制结构
Python从入门到精通——1.2.2学习基础语法和数据类型之控制结构
|
6天前
|
机器学习/深度学习 存储 数据挖掘
Python从入门到精通——学习基础语法和数据类型 1.2.1变量、整数、浮点数、字符串、布尔值、列表、元组、字典和集合。
Python从入门到精通——学习基础语法和数据类型 1.2.1变量、整数、浮点数、字符串、布尔值、列表、元组、字典和集合。
|
6天前
|
存储 Python
Python从入门到精通——1.2.3学习基础语法和数据类型之函数定义和调用
Python从入门到精通——1.2.3学习基础语法和数据类型之函数定义和调用