Author : zbzhen, Modified : Fri May 24 09:43:46 2024
首页地址https://kz16.top/na
本文来源https://kz16.top/na/python3
所有的软件都应该只从官网下载,教程也应用以官网的为主!
在python官网https://www.python.org/下载python3,
安装好后,打开cmd
输入python
或者python3
查看python版本
网络慢推荐用淘宝镜像
https://registry.npmmirror.com/binary.html?path=python/
注:如果电脑装有
python2
则用命令python3
注:linux或Mac系统自带python2, 但python2将停止更新,现在统一用python3.
学生账户,肯定是没有root权限的,但是要安装python3科学计算包该怎么办?
为了省事,可以直接安装了anoconda, 这里以python3.7为例子
先去官网找到合适的版本
https://www.anaconda.com/distribution/#linux
可以直接在linux中下载,例如直接在linux命令行中输入
wget https://repo.anaconda.com/archive/Anaconda3-2019.03-Linux-x86_64.sh
这样就可以下载好 Anaconda3-2019.03-Linux-x86_64.sh
然后再输入
bash Anaconda3-2019.03-Linux-x86_64.sh
慢慢看提示,也就是两个操作,回车
和空格
环境变量的配置
在~/.bashrc
文件最后面添加一行代码
PATH=$PATH:/home/yourname/anaconda3/bin/
然后命令行输入
source ~/.profile
或source ~/.bashrc
版本问题的内容源于AI, 没有经过测试
在 Python 中,你可以使用虚拟环境管理工具(如 virtualenv、pyenv 等)来创建和切换虚拟环境,同时也可以使用 pyenv 来管理多个 Python 版本。
使用虚拟环境管理工具创建和切换虚拟环境:
a. 使用 virtualenv
:
# 安装 virtualenv pip install virtualenv # 创建虚拟环境 virtualenv myenv # 激活虚拟环境(Windows) myenv\Scripts\activate # 激活虚拟环境(Linux/Mac) source myenv/bin/activate
b. 使用 pyenv-virtualenv
(需要安装 pyenv
):
# 安装 pyenv 和 pyenv-virtualenv # 具体安装方法可查看 pyenv 的文档 # https://github.com/pyenv/pyenv#installation # 创建虚拟环境 pyenv virtualenv <python_version> myenv # 激活虚拟环境 pyenv activate myenv # 离开虚拟环境 pyenv deactivate
使用 pyenv 管理多个 Python 版本:
# 安装 pyenv # 具体安装方法可查看 pyenv 的文档 # https://github.com/pyenv/pyenv#installation # 安装所需 Python 版本 pyenv install <python_version> # 列出已安装的 Python 版本 pyenv versions # 设置全局 Python 版本 pyenv global <python_version> # 设置本地目录的 Python 版本 pyenv local <python_version>
通过这些方法,你可以很方便地管理不同的 Python 环境和版本。
要在 Python 中创建多个虚拟环境,你可以使用 Python 的内置模块 venv
。以下是创建多个虚拟环境的一般步骤:
安装 Python:确保已经安装 Python,并且可以在命令行中使用 python
命令。
创建虚拟环境:使用 venv
模块创建虚拟环境。你可以指定不同的目录来创建多个独立的环境。
激活虚拟环境:对于每个虚拟环境,需要在使用之前激活它。
下面是具体的步骤:
在命令行中执行以下命令来创建虚拟环境:
python -m venv myenv1 python -m venv myenv2 python -m venv myenv3
这将分别创建三个虚拟环境,分别命名为 myenv1
,myenv2
和 myenv3
。你可以根据需要创建更多的环境。
在 Windows 上:
myenv1\Scripts\activate
在 macOS 和 Linux 上:
source myenv1/bin/activate
这样就激活了名为 myenv1
的虚拟环境。要退出虚拟环境,可以执行以下命令:
deactivate
同样的步骤也适用于 myenv2
和 myenv3
。
在桌面上创建test.py
,写上
# -*- coding: utf-8 -*- print("hello, 您好")
打开终端输入
python test.py
运行结果为hello, 您好
,第一行代码# -*- coding: utf-8 -*-
是为了显示中文。
windows打开当前路径的终端窗口方法:
按紧Shift
键在文件夹的空白处点击鼠标右键,打开powershell
或者用编辑器notepad++打开test.py
文件,鼠标右键点击notepad++窗口的test.py
文件名字选择Open Containing Folder in cmd
Mac打开当前路径的终端窗口方法:
直接拖动要打开的文件夹到终端
打开finder的服务偏好设置, 勾选"新建位于文件夹位置的终端"选项, 以后可以在文件夹图标上右键选择打开到终端.
windows建议用免费且体积很小的Visual Studio Code
推荐用免费跨平台的编辑器Visual Studio Code,官网https://code.visualstudio.com/
windows或deepin系统快捷键Ctrl + Shift +C
可直接打开当前文件夹所在路径的终端
notepad++(https://notepad-plus-plus.org/)免费且体积很小,但它只支持windows,选择下载英文版
缩进是python语法一部分,所以建议把notepad++的Tab 变成空格
Setting -> Preferences -> Language Menu/Table Settings -> 勾选 Repalce by space.
设置快捷键运行参考
https://stackoverflow.com/questions/1702586/how-to-execute-a-python-file-in-notepad
也可以直接使用jupyter notebook
交互运行
一行命令安装
sudo apt update; sudo apt install python3-pip -y; pip install numpy scipy matplotlib pandas jupyter 或采用清华源 sudo apt update; sudo apt install python3-pip -y; pip install numpy scipy matplotlib pandas jupyter -i https://pypi.tuna.tsinghua.edu.cn/simple
如果有python2
则
python3 -m pip install PackageName
只安装过python3
则
pip install PackageName
pip list
可查看已经安装了的所有包名
pip install --upgrade SomePackage
升级包
pip批量安装package
将需要安装的包保存在aa.txt
中
cd
到aa.txt
所在目录,运行:
pip install -r aa.txt
解决速度慢的问题
因为网络原因导致下载慢,
可以在使用pip的时候加参数-i + 网址
例如:
pip install PackageName -i https://pypi.tuna.tsinghua.edu.cn/simple
则使用的是清华源,
其它源:
解决安装报错的问题
先在https://www.lfd.uci.edu/~gohlke/pythonlibs/下载好相应版本的XXX.whl
文件,再在该文件夹下打开终端输入
pip install XXX.whl
前面介绍的常用的python包一般不会出现问题,其它不是很常用的包可能会出问题,例如绘制三维图的mayavi
mayavi的安装顺序
traits
pyface
traitsui
apptools
envisage
pygments
Sphinx
mayavi + vtk //它们是一起的
pyqt5
想在jupyter notebook中显示mayavi三维图需要输入命令
jupyter nbextension install --py mayavi --user
jupyter nbextension enable --py mayavi --user
pip uninstall PackageName
aa.txt
中cd
到aa.txt
所在目录,运行:pip uninstall -r aa.txt
备注:需要卸载的包可从pip freeze
得到
pip freeze # 显示已安装的包名及版本
pip freeze > aa.txt # 将已安装的包名及版本写入aa.txt
# 需要注释的内容
print(1/2) # 0.5 print(1//2) # 0
“”“ 需要注释的内容 ”“”
for i in range(3): print(i) for i, v in enumerate([10,20,30]): print("i = ", i) print("v = ", v)
结果为
0 1 2 i = 0 v = 10 i = 1 v = 20 i = 2 v = 30
缩进是python语法的一部分,冒号后头接缩进,
python不需要声明变量类型,用缩进取代括号,使得python代码非常简洁
大部分编辑器批量右缩进的方法是,选择代码块按Tab
批量左缩进的方法是,选择代码块按Shfit Tab
for i in range(5): if 1 <= i < 3: print(i) elif i/3 == 1: print(i*(-1)) else: print(i+100)
结果为
100 1 2 -3 104
函数可以封装代码块,并且可以重复利用
# file name test1.py def add(a, b): return a + b print(add(1, 3)) # 4
终端输入python test1.py
显示结果为4
# file name test2.py from test1 import add print(add(1, 2)) # 4 3
终端输入python test1.py
显示结果为
4
3
test2.py
的结果会把test1.py
的测试运行一次,为此可以给个判断if __name__ == "__main__":
避免这种不合理现象
# file name test1.py def add(a, b): return a + b if __name__ == "__main__": print(add(1, 3)) # 4
再次在终端输入python test2.py
显示结果为3
小技巧:终端的输入,可以按上方向键,跳到上一次的终端命令,按下方向键,跳到下一次的终端命令,
Tab
键可以补全文件或文件夹名字
把test2.py
该成
# file name test2.py import test1 print(test1.add(1, 2))
运行结果和原来一模一样
匿名函数
f = lambda x, y : x + y
print(f(2, 3)) # 5
python的函数非常强大,它可以接受各种类型参数,同时支持多个不同的对象输出。
例如
def func1(a, b=3): c = a + 1 d = b + 2 return c, d print(func1(4, 1)) # (5, 3) print(func1(4)) # (5, 5)
该函数func1
的参数b
可以缺省,默认值为3
,它返回两个数,
下面给个含参变量的函数例子,其中为参数
def func2(a): def f(x): return a*x + 1 return f g = func2(3) print(g(4)) # 13
类可以封装函数,从而提高代码的利用率和可读性
下面给出例子
# file name classtest1.py class Box(object): def __init__(self, high, length): self.high = high self.length = length def area(self): return self.high * self.length def cir(self): return 2*(self.high + self.length) def getCoord(self, center): """ input center coord return 4 vertex coords 4______3 | | 1------2 """ a, b = center h = 0.5*self.high l = self.length return [a-l, b-h], [a+l, b-h], \ [a+l, b+h], [a-l, b+h] if __name__ == "__main__": box1 = Box(3,2) print(box1.area()) # 6 print(box1.high) # 3 print(box1.getCoord([0, 1])) help(Box.getCoord)
# file name classtest2.py import classtest1 as ct box1 = ct.Box(3,2) print(box1.area()) # 6 print(box1.high) # 3 print(box1.getCoord([0, 1])) # 3 help(ct.Box.getCoord)
import classtest1 as ct
表示把classtest1
重命名为ct
其实这个classtest1.py
可以有多个类或函数,如果想省事,可以选择使用from classtest1 import *
一次性导入classtest1
中的所有的函数或类,但是不太建议使用,建议用下面的命令
from classtest1 import classname1, classname2
在终端输入python classtest1.py
运行结果为
6 3 ([-2, -0.5], [2, -0.5], [2, 2.5], [-2, 2.5]) Help on function getCoord in module __main__: getCoord(self, center) input center coord return 4 vertex coords 4______3 | | 1------2
在终端输入python classtest2.py
运行结果为
6 3 ([-2, -0.5], [2, -0.5], [2, 2.5], [-2, 2.5]) Help on function getCoord in module classtest1: getCoord(self, center) input center coord return 4 vertex coords 4______3 | | 1------2
通过前面的例子,对python的函数或类用有了初步认识,我们知道代码块可以用函数封装,函数可以用类封装,它们都可以放到一个.py
供其它程序引用。多个类又可以集中在一个或多个文件下,当.py
文件多了,我们自然想到的办法是用文件夹管理,我们把这些.py
文件的最外层文件夹称为包,包的子文件夹称为模块。
可参考http://www.runoob.com/python3/python3-module.html
早期版本, 例如3.5, 不支持print(f"{a}")
的格式, 解决方案:
pip install future-fstrings
# -*- coding: future_fstrings -*-
下面列举的这些经典的包,都可以直接google或百度直接找名字,搜索结果第一般第一条就是官网。
下面对python第三方包的简介属于个人看法,仅供参考
numpy是python的一个用于矩阵运算的第三方包
英文官网
https://numpy.org/
中文官网
https://www.numpy.org.cn/
scipy是python的一个用于数值计算的第三方包
官网
https://www.scipy.org/
教程
https://docs.scipy.org/doc/scipy/reference/tutorial/index.html
matplotlib是python的一个用于画图的第三方包
官网
https://matplotlib.org/
sympy是python的一个用于符号运算的第三方包
官网
https://www.sympy.org/en/index.html
文档
https://docs.sympy.org/latest/index.html
pandas是python的一个用于处理表格的第三方包
官网
文档
https://pandas.pydata.org/pandas-docs/stable/
特点:
R, C++, Ruby, julia
等首页地址https://kz16.top/na
本文来源https://kz16.top/na/python3
仅供参考,部分漏洞在所难免
欢迎转载,转载请指明来源,
请勿用于商业
作者:Zhou Bingzhen
2019.11.21