第一章 Python概述与开发环境安装
1、Python开发环境安装
2、Anaconda安装
选择 just me
不用勾选添加本地环境变量
查看Anaconda环境是否安装成功(查看Anaconda版本号):conda --version
查看目前安装了哪些环境变量:conda info --envs
查看 Anaconda 当前版本以及安装了哪些包:conda list
3、Spyder
3.1 读取文件里面的行数
import sys
import os.path
# 文件目录
dir = os.path.dirname(sys.executable)
# 打开文件进行操作
with open(dir+'\\num.txt', encoding = 'utf-8') as fp:
content = fp.readlines()
# 打印文件内容的类型
print(type(content))
# 打印文件内容
print(content)
# 打印文件所在的目录
print(dir)
# 打印文件里面内容的行数
print(len(content))
结果:
<class 'list'>
['12\n', '6\n', '2\n', '35\n', '11\n', '22\n', '23\n', '11\n', '254\n', '12']
F:\Anaconda
10
4、Jupyter Notebook
# 使用递归
def fib(n):
if n==1 or n==2:
return 1
elif n==0:
return 0
return fib(n-1)+fib(n-2)
# 输出第10个斐波那契数列
print(fib(10))
print(fib(0))
结果:
55
0
5、Python环境管理
5.1 打开管理终端
Windows用户打开“Anaconda Prompt”
macOS和Linux用户打开"Terminal"(终端)
5.2 创建新环境
conda create --name <env_name> <package_name>
注:
env_name
--创建的环境名,建议英文命名,且不加空格,名称两边不加尖括号"<>"package_name
--安装环境中的包名,名称两边不加尖括号"<>"如果要安装指定的版本号, 则只需要在包名后面以=和版本号的形式执行。如:
conda create name python2 python=2.7
,即创建一个名为“python2”的环境,环境中安装版本为2.7的python。如果要在新创建的环境中创建多个包,则直接在
<package_names>
后以空格隔开,添加多个即可。如:conda create -n python3 python=3.7 numpy pandas
,即创建一个名为“python”的环境,环境中安装版本为3.7的python,同时也安装了numpy
和pandas
。默认情况下,新创建的环境会被保存在
/User/<username>/anaconda3/env
目录下,其中<user_name>
为系统当前用户的用户名。
5.3 激活/退出环境
激活:conda activate python3
退出:conda deactivate
5.4 删除环境
conda remove --name python3 --all
6、Python扩展库安装
6.1 添加清华大学的Anaconda镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
# 设置搜索时显示通道地址
conda config --set show_channel_urls yes
conda install numpy
测试
查询可供安装的扩展库版本
conda search --full-name pandas
获取当前环境中已安装的扩展库信息
conda list
6.2 在指定环境中安装包
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
conda activate python3
conda install numpy
6.3 在当前环境中卸载包
conda remove <package_name>
6.4 在指定环境中卸载包
conda remove --name <env_name> <package_name>
7、 Python扩展库导入
建议先导入标准库再导入扩展库对象,只导入确实需要使用的标准库和扩展库对象,提高加载速度,减少打包体积
7.1 import 模块名[as 别名]
使用时需要在对象之前加上模块名作为前缀,即“模块名.对象名”
import math
import random
import posixpath as path
print(math.sqrt(16)) # 计算并输出16的平方根
print(math.cos(math.pi/4)) # 计算余弦值
print(random.choices('abcd', k=8)) # 从字符串'abcd'随机选择8个字符
# 允许重复
print(path.isfile(r'C:Windows\notepad.exe')) #测试指定路径是否为文件
结果:
4.0
0.7071067811865476
['b', 'b', 'd', 'b', 'a', 'd', 'a', 'c']
False
7.2 from 模块名 import 对象名 [as 别名]
不需要模块名作为前缀,导入方式可以减少查询次数,提高访问速度
from math import pi as PI
from os.path import getsize
from random import choice
r = 3
print(round(PI*r*r, 2)) # 计算半径为3的圆面积
print(getsize(r'C:Windows\notepad.exe')) # 计算文件大小,单位为字节
print(choice('Python')) # 从字符串中随机选择一个字符
结果:
28.27
254464
o
7.3 from 模块名 import *
不推荐使用
from itertools import *
characters = '1234'
for item in combinations(characters, 3): # 从4个字符中任选3个组合
print(item, end=' ') # end=' ' 表示输出后不换行
print('\n'+'='*20) # 行号后输出20个等于号
for item in permutations(characters, 3): # 从4个字符中任选3个的排列
print(item, end=' ')
8、Python常用标准库
8.1 字符串
re
:正则表达式。用来判断是否是你指定的特定字符串。
StringIO
:提供以文件形式来读写字符串。
struct
:以二进制字节序列来解释字符串。可以通过格式化参数,指定类型、长度、字节序(大小端)、内存对齐等。
import re
print(re.findall(r'f[a-z]*', 'which foot or hand fell fastest'))
结果:
['foot', 'fell', 'fastest']
如果只需要简单的功能,应该首先考虑字符串,因为简单,易于阅读和调试,如:
print('tea for too'.replace(''too,''two'))
结果:
'tea for two'
8.2 数据类型
datetime
:提供操作日期和时间的类。
collections
:高性能容器数据类型。实现了Python的通用内置容器、字典、列表、集合,和元组专门的数据类型。
pprint
:提供“整洁打印”功能,具有打印任意Python数据结构的能力。
8.3 数学运算
random
:各种分布的伪随机数的生成器。
math
:数学函数。提供了由C标准的数学函数访问。该库函数不适用于复数。
cmath
:为复数提供的数学函数。
operator
: 重载运算符。
math 模块为浮点运算提供了对底层C函数库的访问
import math
print(math.cos(math.pi/4))
print(math.log(1024, 2))
结果:
0.7071067811865476
10.0
random 提供了生成随机数的工具
import random
fruits = random.choice(['apple', 'pear', 'banana'])
x = random.sample(range(100), 10) # 0-100选择不能重复的10个数
y = random.random() # 随机浮点数
z = random.randrange(6) # 从范围0-6中选择随机整数
print(fruits)
print(x)
print(y)
print(z)
结果:
apple
[64, 97, 91, 21, 40, 55, 63, 79, 77, 1]
0.8885638928051524
0
8.4 文件和目录
os.path
:常用路径名操作。
filecmp
:文件和目录的比较。
shutil
:高级的文件操作:支持文件复制和删除。
8.5 操作系统
time
:时间获取和转换,各种与时间相关的函数。
argparse
:命令行选项、参数和子命令的解析器。
io
:提供接口处理的IO流。
logging
: Python的日志工具,提供日志记录的API。
logging.config
:Python日志配置,用于配置日志模块的API。
os
:提供丰富的与MAC,NT,Posix等操作系统进行交互的能力。
sys
:提供访问和维护python解释器的能力。这包括了提示信息,版本,整数的最大值,可用模块,路径钩子,标准错误,标准输入输出的定位和解释器调用的命令参数。
os模块提供了不少与操作系统相关联的函数
import os
print(os.getcwd()) # 返回当前的工作目录
os.chdir(r'C:Users\winner\Python3Learn\Lesson1Code') # 修改当前的工作目录
os.system('mkdir today') # 执行系统命令 mkdir
print(os.getcwd()) # 返回当前的工作目录
建议使用import os
风格而非from os import *
,这样可以保证随操作系统不同而有所变化的os.open()不会覆盖内置函数open()。
在使用os这样的大型模块时,内置的dir()和help()函数非常有用。