This action will force synchronization from 陈钦/30-Days-Of-Python-zh_CN, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
PIP是Python第三方库管理器,我们可以通过 pip 来安装不同的Python包。 包是一个Python模块,可以包含一个或多个模块或其他包。即可以安装到应用程序中的一个或多个模块就是一个包。 在实际的编程中,我们不必去编写每一个实用程序,很多有别人已经封装好的,我们可以导入到程序中直接使用。
如果你是通过程序安装的python环境,那么默认pip已经在其中了,让我们打开终端查看:
>pip --version
pip 21.1.1 from c:\programdata\python38\lib\site-packages\pip (python 3.8)
如你所见, 我当前使用的 pip 版本是 21.1.1。如果你到其他版本数字都证明,pip已经被安装,可以正常使用。
让我们检查一下Python社区中用于不同编码的一些包。注意,这些演示只是想让你知道有很多包可以用于不同的应用程序,并不展开讲解。
让我们首先来安装一个叫 numpy 的包。它是机器学习和数据科学社区中最受欢迎的软件包之一。
NumPy是使用Python进行科学计算的基本包。它还包括:
> pip install numpy
Successfully installed numpy-1.24.2
当你看到提示successfully的字样表示安装成功,事实上可能你本地已经有了此包,你可以通过 pip uninstall numpy
先卸载,然后再体验安装过程。
包numpy安装成功后,让我们看下如何使用:
> python
Python 3.8.10 (tags/v3.8.10:3d8993a, May 3 2021, 11:48:03) [MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> numpy.version.version
'1.24.2'
>>> list = [1,2,3,4,5]
>>> np_arr = numpy.array(list)
>>> np_arr
array([1, 2, 3, 4, 5])
>>> len(np_arr)
5
>>> np_arr * 2
array([ 2, 4, 6, 8, 10])
>>> np_arr + 2
array([3, 4, 5, 6, 7])
>>>
Pandas是一个BSD许可开放源码库,为Python编程语言提供高性能、易于使用的数据结构和数据分析工具。让我们安装比numpy更高级的 pandas :
> pip install pandas
终端上练习导入和使用
> python
>>> import pandas as pd
>>> df = pd.Series(0, index=['1', '2', '3', '4'])
>>> print(df)
1 0
2 0
3 0
4 0
dtype: int64
本节不细化关于numpy或pandas内置函数功能,在这里我们仅尝试学习如何安装软件包以及如何导入它们。如果需要,我们将在其他部分讨论不同的包。
接下来,让我们导入一个网页浏览器模块,它可以帮助我们打开任何网站。我们不需要安装这个模块,因为它已经在Python 3中默认安装了。例如,如果你想在任何时间打开任意数量的网站,或者如果你想安排一些事情,你可以利用 webbrowser 模块。
import webbrowser
# url列表
url_lists = [
'http://www.python.org',
'https://github.com/QiCodeCN'
]
# 浏览器通过标签页打开
for url in url_lists:
webbrowser.open_new_tab(url)
如果您希望不再保留已安装的包,您可以使用以下命令删除它们。
pip uninstall packagename
查看我们机器上已安装的包。我们可以用 pip list 命令。
pip list
Package Version
--------------------- -----------
anyascii 0.3.1
appdirs 1.4.4
... 省略 ...
查看包的详细信息,可以使用show + 包名
pip show packagename
比如查看上边安装好的pandas包详细
>pip show pandas
Name: pandas
Version: 1.5.2
Summary: Powerful data structures for data analysis, time series, and statistics
Home-page: https://pandas.pydata.org
Author: The Pandas Development Team
Author-email: pandas-dev@python.org
License: BSD-3-Clause
Location: c:\programdata\python38\lib\site-packages
Requires: python-dateutil, numpy, pytz
Required-by: TTS
上边是列了基本的信息,如果你想看更多信息,请加上参数 --verbose
>pip show --verbose pandas
Name: pandas
Version: 1.5.2
Summary: Powerful data structures for data analysis, time series, and statistics
Home-page: https://pandas.pydata.org
Author: The Pandas Development Team
Author-email: pandas-dev@python.org
License: BSD-3-Clause
Location: c:\programdata\python38\lib\site-packages
Requires: pytz, python-dateutil, numpy
Required-by: TTS
Metadata-Version: 2.1
Installer: pip
Classifiers:
Development Status :: 5 - Production/Stable
Environment :: Console
Intended Audience :: Science/Research
License :: OSI Approved :: BSD License
Operating System :: OS Independent
Programming Language :: Cython
Programming Language :: Python
Programming Language :: Python :: 3
Programming Language :: Python :: 3 :: Only
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
Topic :: Scientific/Engineering
Entry-points:
[pandas_plotting_backends]
matplotlib = pandas:plotting._matplotlib
当我们代码稳定稳定后,通常代码迁移时候,需要获取Python项目依赖包的安装列表,以便别人能够快速安装。这个列表要包括需要安装什么包、以及包的版本。通常我们输出到 requirements.txt 文件中。
> pip freeze > requirements.txt
注意:freeze默认是python环境所有包,如果想仅保持单独项目的,尽量使用虚拟环境。下边命令演示了如何根据requirements一键安装。
> pip install -r requirements.txt
到目前为止,您已经熟悉了如何读取或写入本地计算机上的文件。但有时,我们想从一个网站读取信息,比如从url或API。
API是应用程序接口的缩写。它是一种在服务器之间交换结构化数据的方法,主要是为json数据。要打开一个网络连接,我们需要一个名为 requests 的包——它允许打开一个网络连接并实现CRUD(创建、读取、更新和删除)操作。在本节中,我们将只讨论CRUD的读取和获取部分。
同样首先安装 requests 模块包:
> pip install requests
我们可以了解它的 get, status_code, headers, text 和 json 方法:
让我们读取一个txt文件从这个网址中 https://www.w3.org/TR/WD-html40-970708/html40.txt
import requests # 导入模块
url = 'https://www.w3.org/TR/WD-html40-970708/html40.txt' # 定义要读取的地址变量
response = requests.get(url) # 请求地址并获取返回数据
print(response)
print(response.status_code) # 打印状态, success:200
print(response.headers) # 头信息
print(response.text) # 查看所返回的数据文本 注意如果地址无法访问时候内容是404
import requests
url = 'https://v0.yiketianqi.com/api?unescape=1&version=v91&appid=43656176&appsecret=I42og6Lm&ext=&cityid=&city=' # 国内可访问天气接口
response = requests.get(url)
print(response)
print(response.status_code)
weather = response.json()
print(weather)
两个请求中最后一个直接可以获取json对象。但如果不是JSON数据类型返回,我们通常都使用text获取,然后再根据需要进行转换或者处理。
我们根据一些标准将大量的文件组织在不同的文件夹和子文件夹中,这样我们就可以很容易地找到和管理它们。如你所知,一个模块可以包含多个对象,比如类、函数等。一个包可以包含一个或多个相关模块。包实际上是一个包含一个或多个模块文件的文件夹。因此,如果我们开发的是一个通用的项目,我们可以自己的包用于自己或者他人使用。让我们以创建一个名为 mypackage 的包为例,使用以下步骤:、
# mypackage/arithmetics.py
# arithmetics.py
def add_numbers(*args):
total = 0
for num in args:
total += num
return total
def subtract(a, b):
return (a - b)
def multiple(a, b):
return a * b
def division(a, b):
return a / b
def remainder(a, b):
return a % b
def power(a, b):
return a ** b
# mypackage/greet.py
# greet.py
def greet_person(firstname, lastname):
return f'{firstname} {lastname}, welcome to 30DaysOfPython Challenge!'
最终包的文件夹结构应该是这样的:
─ mypackage
├── __init__.py
├── arithmetic.py
└── greet.py
现在让我们打开python交互式shell并尝试使用自定义包:
30DaysOfPython-zh-CN > python
>>> from mypackage import arithmetics
>>> arithmetics.add_numbers(1, 2, 3, 5)
11
>>> arithmetics.subtract(5, 3)
2
>>> arithmetics.multiple(5, 3)
15
>>> arithmetics.division(5, 3)
1.6666666666666667
>>> arithmetics.remainder(5, 3)
2
>>> arithmetics.power(5, 3)
125
>>> from mypackage import greet
>>> greet.greet_person('Mega', 'Qi')
'Mega Qi, welcome to 30DaysOfPython Challenge!'
>>>
从上边的例子中可以看出,我们的包可以正常的工作。文件夹包含一个名为 init 空文件(py的特殊文件——它存储包的内容)。如果我们将 init.py 放在包文件夹中,python会将其识别为包。init.py 从其模块中公开指定的资源,以便导入到其他python文件中。一个空的__init__.py文件使所有函数在导入包时都可用。总而言之 init.py 对于被 Python 识别为包的文件夹是必不可少存在。
数据库
Web开发
HTML爬虫
XML 语言
GUI桌面程序
数据分析,数据科学和机器学习
Network:
🌕 你一直在进步,到目前为止你已经成功学习20节内容。真棒!
受限制于练习的海外地址可能服务访问,本篇内容没有明确的练习题,请选择通过搜索引擎学习和练习一些库。
🎉 CONGRATULATIONS ! 🎉
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。