Python 编程笔记(本人出品,必属精品)

12 篇文章 21 订阅

Part.I Introduction

本文是笔者的 Python 编程笔记总博文,会不断丰富内容的,欢迎大家收藏~

在这里插入图片描述

Chap.I 传送门

此部分记录子博文和其他大佬的优秀博文。


基础操作


Python 很强大的功能之一就是它的绘图功能,这也是笔者使用 Python 最最常用的功能之一。之前用Matlab,对图形的绘制用到很熟练,python 其实和 Matlab 差不多,

有关绘图的总结


Python 的一些强大的模块 / 类


一些『轮子』

Chap.II 常识

  • 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 Listappend 方法向列表的尾部添加一个新的元素;extend方法将参数的每个元素都添加到原有的列表中。
  • 注释# 单行注释;''' xx '''""" xx """
  • 代码块折叠#region xx #endregion

Part.II 准备工作

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

  • St4make 编译

  • St5make 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 查看。
    在这里插入图片描述
  • St2:下载好后双击 *.exe 文件,选择自己定制安装、为所有用户安装、安装路径等都可以自己设置、勾选加入系统环境变量等。(具体过程笔者忘记截图了)

Python 之所以如此受欢迎原因之一就是它有很多好用的三方库,下载这些三方库一般用pip指令(windows 用 powershellcmd都行,Linux 用终端),下面是常用的pip指令:

pip -V				# 查看 pip 版本
pip install numpy 	# 示例:安装 numpy
# 偶尔安装会报错 ERROR: Could not install packages due to an OSError,可能是源有问题
pip install numpy -i https://pypi.douban.com/simple # 指定源安装三方库
pip list			# 查看安装的三方库有哪些
py -0p				# 查看 python 的安装路径
python -m site		# 查看和 Python 有关的个各种路径,包括三方库

Chap.II 实现快捷键清屏

当然,这里指的是windows,Python 并没有自带清屏快捷键,网上这招也许是大佬自己搞出来的。有很多文章都讲如何操作的,操作方法大同小异,本质上都是一样的,这里挑了个简洁的,链接参上

大致分为这几步:

  1. Python\Lib\idlelib 下,新建一个 ClearWindow.py 文件(没有时就新建)
  2. Python\Lib\idlelib下修改 config-extensions.def ,在末尾添加如下内容
[ClearWindow]
enable=1
enable_editor=0
enable_shell=1
[ClearWindow_cfgBindings]
clear-window=<Control-Key-l>
  1. 重新打开 Python IDE,在 options 选项中就可以看到增加了Clear shell Window Ctrl+L,即清屏的快捷键为:Ctrl+L。

关于第二步,若改了保存不了的话,可以以管理员的身份打开powershell,然后输入 notepad xx\Python\Lib\idlelib\config-extensions.def 进行修改,之后保存。


Part.III 基础知识

Chap.I 快应用

随机数函数

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):

其他控制语句:

语句含义
breakbreak 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。
continuecontinue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
passpass是空语句,是为了保持程序结构的完整性。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 关于调试

针对的是 Linux 版,Windows 有强大的 IDE。

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

Reference

  1. runoob.com
  2. Python 官网
  3. Python安装教程 - Windows 版
  4. Centos7 安装 Python3 - Linux 版
  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流浪猪头拯救地球

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值