概述
文章目录
- Part.I 准备工作
- Chap.I 下载安装
- Chap.II 实现快捷键清屏
- Chap.III 概念汇编 & 注意事项
- Part.II 基础知识
- Chap.I 快应用
- Chap.II 输入输出
- Chap.III 条件与循环语句
- Chap.IV 关于文件
- Chap.V 关于调试
- Chap.VI 迭代器与生成器
- Part.III 常用功能实现
- Chap.I 大佬的轮子
- Chap.II 自己实现的功能
- Chap.III 问题 & 解决方案
- Reference
Part.I 准备工作
Chap.I 下载安装
Windows 的下载安装可以看下面的快应用,也可以看 Ref.3
;Linux 下的安装可以参考 Ref.4
,也可以参考下面的操作。
Linux 压缩包版安装步骤:
-
St1:从官网上下载源码包,比如https://www.python.org/downloads/release/python-386/ 下载
-
St2:将压缩包放到想安装的目录下,然后终端cd到此目录下,之后
tar -zxvf Python-3.8.6.tgz
解压缩 -
St3:
./configure --prefix=/Adirectory
注意,这里的Adirectory
是一个目录的名字(可省,这就是默认安装了),比如:/usr
,意思是将该软件安装在/usr
下面,执行文件就会安装在/usr/bin
(而不是默认的/usr/local/bin
),资源文件就会安装在/usr/share
(而不是默认的/usr/local/share
) -
St4:
make
编译 -
St5:
make install
-
St6:设置环境变量,在
.bash_profile
文件中加入:export PATH=$PATH:/yourdirectory/bin
这个和上面St3的Adirectory
是一样的。
Windows Installer 版安装步骤
- St1:从官网上下载 Installer 版,一般都是 64-bit,32-bit 的电脑估计很少人用了,AMR64 是指 ARM 公司推出的一种 64位 CPU 架构,而 x64/64-bit 是Intel 公司推出的一种 64 位 CPU 架构。可以在
cmd
里面键入systeminfo
查看。
- 下载好后双击*.exe
文件,选择自己定制安装、为所有用户安装、安装路径等都可以自己设置、勾选加入系统环境变量等。(具体过程笔者忘记截图了)
Python 之所以如此受欢迎原因之一就是它有很多好用的三方库,下载这些三方库一般用pip
指令(windows 用 powershell
或cmd
都行,Linux 用终端),下面是常用的pip
指令:
pip -V # 查看 pip 版本
pip install numpy # 示例:安装 numpy
pip list # 查看安装的三方库有哪些
py -0p # 查看 python 的安装路径
Chap.II 实现快捷键清屏
当然,这里指的是windows,Python 并没有自带清屏快捷键,网上这招也许是大佬自己搞出来的。有很多文章都讲如何操作的,操作方法大同小异,本质上都是一样的,这里挑了个简洁的,链接参上
大致分为这几步:
1.在PythonLibidlelib下,新建一个ClearWindow.py文件(没有时就新建)
2.PythonLibidlelib下修改config-extensions.def ,在末尾添加如下内容
关于第二步,若改不了的话,可以以管理员的身份打开powershell,然后输入 notepad xxPythonLibidlelibconfig-extensions.def
进行修改,之后保存。
Chap.III 概念汇编 & 注意事项
- Anaconda 指的是一个开源的 Python 发行版本,其包含了conda、Python等180多个科学包及其依赖项。 因为包含了大量的科学包,Anaconda 的下载文件比较大(约 531 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。
- 虚拟环境是一个将不同项目所需求的依赖分别放在独立的地方的一个工具,它给这些工程创建虚拟的
Python
环境。它解决了“项目X依赖于版本1.x,而项目Y需要项目4.x”的两难问题,而且使你的全局site-packages
目录保持干净和可管理。 - Windows 安装 Python,一般下载 EXE,即『Windows installer (64-bit)』安装包。然后安装的时候,要注意勾选加入系统环境变量;Windows 的话最好为所有用户安装。
- 当 python2 和 python3 共存时,一般 python 指 python2,想用python3 需用命令
python3
。 - Python List:
append
方法向列表的尾部添加一个新的元素;extend
方法将参数的每个元素都添加到原有的列表中。 - 注释:
#
单行注释;''' xx '''
或""" xx """
- 代码块折叠:
#region xx #endregion
Part.II 基础知识
Chap.I 快应用
这部分记录一下笔者本篇博客的分博客和其他优秀的博客:
- VS 2015 配置 Python
- VSCode 搭建 Python 环境
- Python 格式化输出
- Python 常用符号含义 + 常用数学函数
- Python 数据类型及其相互转换
- Python List 操作笔记(里面有一些子博客,主要是对三维列表的操作)
- Python 函数使用
- Python 跨文件调用函数
- Python 如何用 shell 调用脚本中的函数+参数传递
Python 很强大的功能之一就是它的绘图功能,这也是笔者使用 Python 最最常用的功能之一。之前用Matlab,对图形的绘制用到很熟练,python 其实和 Matlab 差不多,下面是一些总结
- Python 各种画图(这个是绘图的主博客,有关绘图的里面基本都可以找到)
- Python 常用线型 + 点符号 + 颜色汇总
- Python 中图例 Legend 的调整
- Python 修改 x/y ticks
- Python 绘图字体控制 + 文字在图片中的位置调整
- Python 让多图排版更加美观
- Python 箱型图的绘制并提取特征值
下面是Python的一些强大的模块 / 类:
- Python 导入模块
- Python 之 subprocess 调用其他程序模块
- Python 之 Logging 日志记录模块
- Python 之 argparse 解析命令行参数模块
- Python 之 xml.etree.ElementTree 解析 xml 模块
- Python 之 subprocess 调用程序运行指令
随机数函数
import random
函数 | 描述 |
---|---|
choice(seq) | 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。 |
randrange ([start,] stop [,step]) | 从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1 |
random() | 随机生成下一个实数,它在[0,1)范围内。 |
seed([x]) | 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。 |
shuffle(lst) | 将序列的所有元素随机排序 |
uniform(x, y) | 随机生成下一个实数,它在[x,y]范围内。 |
Chap.II 输入输出
python 简单的输入输出如下:
>>> a=input('please input the value of a: ')
please input the value of a: 12
>>> print(a)
12
当你想知道一个变量的值是多少时,可能会对它是整型还是长整型感兴趣。这可以通过两种机制来实现,实际上是值被转换为字符串的两种机制。可以通过以下两个函数来使用这两种机制:一是通过str
函数,它会把值转换为合理形式的字符串,以便用户可以理解,而repr
会创建一个字符串,它以合法的Python表达式的形式来表示值。下面是一些例子
>>> 'hello world!'
'hello world!'
>>> print('hello world!')
hello world!
>>> print(repr('hello world!'))
'hello world!'
>>> print(str('hello world!'))
hello world!
关于两个input (input 和 raw_input) ,假设有这样一个脚本:
name = input( "what is your name? ")
print "He11o. " + name + " !"
------------------
What is your name? "Gumby"
#输入需加引号,用raw_input()则不需
He11o. Gumby!
++++++++++++++++++++++++++++
>>input( "Enter a number: ")Enter a number: 3
3
>>>raw_input( "Enter a number: ")Enter a number: 3
'3'
raw_input 会把所有数据当作原始输入存放在字符串中。也就是说,使用这俩input的时候,可以按照如下规则:input 对值进行操作,raw_input 对字符串进行操作。
'''
跨行书写字符串,当然最后也得用'''
将其引起来。普通字符串也可以跨行(换行的时候加个)。如果一行之中最后一个字符是反斜线
,那么,换行符本身就“转义”了,也就是被忽略了。
>>> print('C:nowhere')
C:
owhere
>>> print(r'C:nowhere')
C:nowhere
原始字符串,其最后一个字符不可以是反斜杠
格式化输出见上面。
Chap.III 条件与循环语句
Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。
A. 条件判断 - if 语句
if condition_1:
statement_block_1
elif condition_2:
statement_block_2
else:
statement_block_3
- Python 中用 elif 代替了 else if,所以if语句的关键字为:if – elif – else。
- 每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。
- 使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
- 在Python中没有switch – case语句。
B. 循环语句 - while
while 判断条件(condition):
执行语句(statements)……
while … else :在条件语句为 false 时执行 else 的语句块。
while <expr>:
<statement(s)>
else:
<additional_statement(s)>
C. 循环语句 - for
for <variable> in <sequence>:
<statements>
else:
<statements>
python 中使用 for 循环的几种方式:
# c 是 lst 中的元素
for c in lst:
# 使用 range,
for i in range(n):
# 使用 enumerate, i 和 x 分别是索引和 lst 中的值
for i,x in enumerate(lst):
# 使用 zip 可以获取多个 lst 的值
for x,y in zip(lst1,lst2):
其他控制语句:
语句 | 含义 |
---|---|
break | break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。 |
continue | continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环。 |
pass | pass是空语句,是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句。 |
Chap.IV 关于文件
1、open函数用来打开文件,语法如下:open(name[, mode[, buffering]])
其使用文件名(name)作为一个强制参数,模式(mode)和缓冲(buffering)参数都是可选的。
1)open 函数中模式参数常用值
值 | 描述 |
---|---|
'r' | 读模式 ,默认参数 |
'x' | 写模式,新建一个文件,如果该文件已存在则会报错。 |
'w' | 写模式 |
'a' | 追加模式 |
'b' | 二进制模式(可添加到其他模式中使用) |
'+' | 读/写模式(可添加到其他模式中使用) |
注:
'b'
模式改变处理文件的方法。一般来说,Python 假定处理的是文本文件(包含字符)。若要处理二进制文件,那么应该在模式参数中增加'b'
,例如'rb'
。
2)open函数的第3个参数(可选)控制着文件的缓冲。如果参数是0(或者是False),IO(输入/输出)就是无缓冲的(所有的读写操作都直接针对硬盘)﹔如果是1(或者是True),IO就是有缓冲的(意味着Python使用内存来代替硬盘,让程序更快,只有使用flush或者close时才会更新硬盘上的数据。大于1的数字代表缓冲区的大小(单位是字节),-1(或者是任何负数)代表使用默认的缓冲区大小。
读写简单示例:
# write
f=open('somefile.txt','w')
f.write('Hello, ')
f.write('World!')
f.close();
-----------------------
# read
f=open('somefile.txt','r');
f.read(4) #读取4个字符
f.read() #读取剩下的字符
f.close()
2、seek 函数来随机访问,seek函数的一般用法为:seek(offset[, whence])
这个方法把当前位置(进行读和写的位置)移动到由offset 定义的位置。
offset:从开始位置的偏移量,也就是代表需要移动偏移的字节数。
whence:给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。
tell()
返回当前游标在文件中的位置。
3、读写行
file.readline()
读取单独的一行(从当前位置开始直到一个换行符出现,也读取这个换行符。file.readline(5)
读取这一行中前五个字符。file.readlines()
读取一个文件中所有行并将其作为列表返回。
writelines
方法和readlines
相反:传给它一个字符串的列表(实际上任何序列或者可迭代的对象都行),它会把所有的字符串写人文件(或流)。注意,程序不会增加新行,需要自己添加。没有writeline方法,因为能使用write
。
Chap.V 关于调试
1 在所需要调试的地方加入如下代码:
import pdb
pdb.set_trace()
2 调试代码常用命令:
命令 | 含义 |
---|---|
break / b | 设置断点 |
command / c | 继续执行程序 |
list / l | 查看当前行的代码段 |
step / s | 进入函数 |
return / r | 执行代码直到从当前函数返回 |
exit / q | 中止并退出 |
next / n | 执行下一行 |
pp | 打印变量的值 |
help | 帮助 |
Chap.VI 迭代器与生成器
这块参考:https://www.runoob.com/python3/python3-iterator-generator.html
迭代器
迭代是Python最强大的功能之一,是访问集合元素的一种方式。
- 迭代器是一个可以记住遍历的位置的对象。
- 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。(人生如棋,我当为卒,可谁曾见我后退一步!)
- 迭代器有两个基本的方法:iter() 和 next()。
- 字符串,列表或元组对象都可用于创建迭代器:
>>> list=[1,2,3,4]
>>> it = iter(list) # 创建迭代器对象
>>> print (next(it)) # 输出迭代器的下一个元素
1
>>> print (next(it))
2
>>>
- 迭代器对象可以使用常规for语句进行遍历:
#!/usr/bin/python3
list=[1,2,3,4]
it = iter(list) # 创建迭代器对象
for x in it:
print (x, end=" ")
----------------------------
1 2 3 4
- 也可以使用 next() 函数:
#!/usr/bin/python3
import sys # 引入 sys 模块
list=[1,2,3,4]
it = iter(list) # 创建迭代器对象
while True:
try:
print (next(it))
except StopIteration:
sys.exit()
-------------------------
1
2
3
4
生成器
- 使用了 yield 的函数被称为生成器(generator)。
- 跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。
- 在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。
- 调用一个生成器函数,返回的是一个迭代器对象。
以下实例使用 yield 实现斐波那契数列:
#!/usr/bin/python3
import sys
def fibonacci(n): # 生成器函数 - 斐波那契
a, b, counter = 0, 1, 0
while True:
if (counter > n):
return
yield a
a, b = b, a + b
counter += 1
f = fibonacci(10) # f 是一个迭代器,由生成器返回生成
while True:
try:
print (next(f), end=" ")
except StopIteration:
sys.exit()
-----------------------------
0 1 1 2 3 5 8 13 21 34 55
Part.III 常用功能实现
这块记录一下一些小功能的实现。
Chap.I 大佬的轮子
笔者收集的大佬们分享的『轮子』如下:
- Python绘制樱花
Chap.II 自己实现的功能
- 求两个小数的“最小公倍数”;这个小功能的实现过程,对我而言是一个美好的回忆。为什么这么讲呢?保密hhh
- Allan 方差计算方法实现
Chap.III 问题 & 解决方案
这部分是笔者使用 Python 过程中所遇到的问题以及得到的解决方案。
避免 VisibleDeprecationWarning
警告的方法:
import warnings
warnings.filterwarnings("ignore", category=Warning)
Python 内部的 line.split()
函数只支持一种分隔符输入,使用re.split()
函数可以指定多个分隔符分割字符串,下面是一个示例。
import
re.split(r'[;,s]',line)
split_list = list(filter(None, re.split(r'[.,!#$?%^]', text)))
注:
- 第二行中
s
:表示空格,第二行指定了三种分隔符;
、,
和空格 - 第三行可以去除分割后的空串。
分割文件绝对路径,获得字符串中的文件路径和文件名
tmp = os.path.split(file) # tuple
path = tmp[0]
file = tmp[1]
得到的是一个列表,有俩元素,第一个是文件路径,第二个是文件名
Reference
- runoob.com
- Python 官网
- Python安装教程 - Windows 版
- Centos7 安装 Python3 - Linux 版
最后
以上就是直率导师为你收集整理的Python 编程笔记(本人出品,必属精品)Part.I 准备工作Part.II 基础知识Part.III 一些功能实现&大佬的轮子的全部内容,希望文章能够帮你解决Python 编程笔记(本人出品,必属精品)Part.I 准备工作Part.II 基础知识Part.III 一些功能实现&大佬的轮子所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复