Python入门必看
Python入门及基础
Python - 开源通用的脚本编程语言
开源 通用
计算机
处理器 CPU
存储器 内存/硬盘
I/O设备
编程语言
机器语言 0101010
低级语言(汇编) add 3 5
高级语言 跨平台
编译型 把文本代码转成二进制可执行文件
C/C++ Go
解析型 运行解析型实时解析文本代码(脚本语言)
shell javascript NodeJs
编译解析型 将文本代码转二进制代码(不可执行), 再使用解析型解析二进制代码运行
java python php C#
Python的发展史
http://120.76.144.128/python
学习编程语言的流程:
熟悉编程语言的发展史
搭建编程语言的开发环境(安装解析器或编译器 编辑器)
编写hello程序 -> 代码编辑流程及代码执行流程
变量 -> 数据类型
运算符(操作符) -> 表达式 -> 语句
流程控制语句 -> 顺序/分支/循环 -> if/while/for
函数 -> 打包代码
数组 -> 复合类型
类和对象 -> 面向对象的编程思想
系统编程
文件I/O 进程及进程间通讯 网络
Python开发环境
官网: python.org
提供下载python源代码和查看官方手册
中文官方手册:
http://usyiyi.cn/translate/python_352/index.html
安装: sudo apt install python3 -y
python 对应python版本2 2020停止维护
python3 对应python版本3
测试:
python --version
python3 --version
编辑Python代码: vim hello.py
print("hello world")
运行Python代码:
python3 hello.py
直接运行python代码文件:
在python代码文件第一行指定python解析器路径
#!/usr/bin/python3
更通用的写法(不管python3放在哪,只要在PATH变量中存在):
#!/usr/bin/env python3
Python交互开发模式
交互开发模式用于测试和调试
运行python3可进入交互开发模式(ctrl + D退出)
推荐交互模式使用ipython3, 好处谁用谁知道
安装:
pip3工具是python模块或包管理工具
安装pip3工具: sudo apt install python3-pip -y
通过pip3工具安装ipython3:
pip3 install ipython
ipython3的功能:
颜色显示用于区分
直接可运行shell命令
补全功能强大
查看帮助简单
Python程序如何执行:
Python是属于编译解析型的脚本语言
为了提高Python执行效率, Python解析会将*.py文件编译成字节码(二进制)
再给Python虚拟机(PVM)去解析字节码运行
变量
Python变量是动态类型, 根据值的类型才能确定变量的类型
Python变量定义时必须赋初始值
标识符:
内置标识符
自定义标识符: 变量名 函数名 类名…
定义变量/变量赋值
变量名 = 值
多目标赋值:
变量1 = 变量2 = 变量3 = 值
元组赋值:
变量1, 变量2, 变量3 = 变量值1, 变量值2, 变量值3
访问变量
变量名
删除变量
del 变量名
变量的值存储于内存
Python变量赋值一切都是引用赋值
变量名只是符号与值的内存地址绑定
获取变量的地址: id函数
变量命名规范:
严格区分大小写
数字 字母 特殊符合组合(个别特殊符号可以组合 如: 下划线)
但不能以数字和特殊符号开头(下划线除外)
如果不了解下划线的特殊意义不推荐使用
Python3支持中文但不建议使用中文命名(容易引发乱码问题)
不能与Python关键词重名
查看Python关键词有哪些:
import keyword
print(keyword.kwlist)
Python提供常用的数据结构(值的类型)
数字
整型 int
浮点型 float
复数
字符串 str/repr
布尔型 bool(Ture/False)
列表 list [,]
元组 tuper (,)
字典 dict {:, }
集合 set {,}
NoneType None
获取变量的类型: type函数
操作符
算术操作符 + - * / % ** //
比较操作符 > >= < <= == !=
10 < b < 100
赋值操作符 =
增强赋值操作符 += -= *= /= %= **= //= &= |= ^= <<= >>=
逻辑操作符 and or not
位操作符(数字) & | ^ << >> ~
成员操作符 in/not in
身份操作符 is/is not
根据操作符类型:
单目运算符/一元运算符(只针对一个值操作) ~ - +
双目运算符/二元运算符(必须左值和右值存在)
三目运算符/三元运算符(if else写在一行, 赋值使用)
b = 0 if a > 10 else 1
Python语句语法
Python程序由多个逻辑行组成
物理行: 人眼看到的行为物理行(行尾必须终止符的字符序列)
windows: \r\n
Unix: \n
MacOS: \r
逻辑行: 包含一个或多个物理行
多个物理行连接一个逻辑行:
显式连接 \
不推荐使用显示连接
隐式连接 所有括号 (推荐使用小括号)
一个物理行包含多个逻辑行(不建议使用):
a = 34 ; print(a)
空白行: 交互模式代表一段代码的结束
注释: #代表注释符
从注释符开始后面的内容为注释
注释符针对物理行生效
分隔符: , () {} [] : ; @ =
缩进
Python中标识代码块强制使用缩进对齐来区别(其它语言使用{}来区别)
如果缩进没有对齐会报语法错误
Tab和空格为缩进前导符
Tab键在不同平台下解析不同
Tab ==> 9
空格 ==> 32
一定要确定是使用Tab还是空格, 一般文本编辑器都提供Tab转换成空格
空格:
html/css 2个空格
其它所有 4个空格
简单的I/O函数
input 输入
s = input([“输入提示符”])
返回用户输入的字符串
print 输出
print(变量, [...], sep=' ', end='\n', flush=False)
sep 控制前面输出多个变量之间分隔符
end 控制输出终止符
flush 是否刷新缓冲区(默认为行缓冲)
流程控制
分支 if
if 条件:
条件成立执行的代码块
if 条件:
条件成立执行的代码块
else:
条件不成立执行的代码块
if 条件1:
条件1成立执行的代码块
elif 条件2:
条件2成立执行的代码块
elif 条件3:
条件3成立执行的代码块
...
else:
以上条件都不成立执行的代码块
三目运算符: 赋值使用
if a > 10:
s = 1
else:
s = 0
s = 1 if a > 10 else 0
循环 while
while 条件:
条件成立执行的循环体代码块
循环控制语句:
break 退出循环
continue 跳过本次循环
空语句
pass 没有任何意义,只是占位使用
生成一个范围的数字 range
返回可迭代对象(生成器对象)
range(10) 生成0 - 9
range(1, 10) 生成1 - 9
range(-10, 10) 生成-10 - 9
range(1, 10, 2) 生成1 3 5 7 9
range(10, 1, -1) 生成10 9 8 7 6 5...
for 迭代对象的结构
for 迭代变量 in 可迭代对象:
print(迭代变量)
模拟循环(次数固定推荐使用for循环):
for i in range(10):
print(i)
延时
import time
time.sleep(1) 延时一秒
time.sleep(0.1) 延时100毫秒
函数 - 打包代码
一段代码要在多个地方使用, 就要使用函数(不要复制代码)
函数定义:
def 函数名(形参列表...):
函数要打包的代码
函数调用:
函数名(实参列表...)
变量的类型:
局部变量 在函数内部定义的变量, 只能在函数内部使用
全局变量 在函数外部定义的变量, 全局使用
在函数内部修改全局变量必须使用global声明
函数的参数:
函数的参数是以逗号为分隔符,可以传递任意个
在函数内部定义变量不能在函数外部访问
实参个数必须与形参数一致
函数调用时实参变量的值赋给形参变量, 修改形参变量不影响实参变量
函数的返回值
默认情况下函数执行到最后一条代码也会退出, 并且返回None
return 退出函数
例:
def out(s):
print("hello: ", s, sep='')
out("world")
库 -> 模块
python中模块就是一个*.py文件, 通过import导入python文件
代码规范
缩进对齐 使代码具有层次感
空行 使代码具有段落感
import代码块上下加空行
函数实现下面加两个空行
方法实现下面加一个空行
流程控制语句上下加空行
变量定义之间建议加空行
空格 使代码更清晰
双目操作符两边加空格
逗号后面必须加空格
括号后面不能加空格
函数参数赋值的等于号两边不能加空格
折行 使代码更容易维护(提高代码可读性)
一行代码量不能超过80个字符
容易超过80个字符的情况:
条件表达式 用括号括起来, 在逻辑运算符前面折行
字符串 用小括号括起来分段
函数参数 在逗号后面折行
三目操作符 改写成if语句
命名规范 提高代码可读性
python调试 - pdb模块
python3 -m pdb hello.py
进入hello.py调试交互模式
pdb命令
q 退出
h/? 获取帮助
h 列表pdb所有命令
h q 获取q命令的帮助
l 列出python源代码 (默认列出11行代码,再按l继续列出接下来的代码)
l 10 列出第10行源代码及上下各5行代码
单目调试:
b 设置断点
b 3 给第3行源代码设置断点
c 让程序运行到断点停止
n 下一行, 会跳过函数
s 下一步,会进入函数
p 打印变量的值
p a, b 打印a和b的值
vim操作补充
批量缩进 > <
自动排版 =
文件浏览器 F7
回车 直接打开
t vim标签
gt/gT vim标签切换
快速定位
,,f
,,j
,,k
,,w
注释
,cs 批量注释
,cc 单行注释
,cu 取消注释
跨终端vim复制(依赖/tmp/kyo.vim文件)
"y 复制
"p 粘贴
高亮单词 #
再按n/N进行切换定位
取消高亮 :noh
命令组合:
dw 删除单词
d^ 删除光标到行首字符位置
vip 选取一段代码
V10j 选取当前行及向下10行
xp 交换两个字符位置
di" 删除光标所在双引号包含的内容
vim命令历史操作界面: ,u
插入79个-/=作为分隔符
,kl
,kg
折叠
空格 自动折叠
zM 折叠所有可折叠内容
zR 打开所有折叠内容
去除window换行: cM
去除行尾空白字符: ,ws
打开Python文件自动生成主代码, 将以下代码复制到~/.vimrc.local文件里:
function! KyoPythonEntry()
if getfsize(GetFileName()) != -1
return
endif
call setline(1, [’#!/usr/bin/env python3’, ‘’,
‘def main():’, ’ pass’, ‘’,
‘if name == “main”:’, ’ main()’])
return setpos(’.’, [bufnr(’%’), 4, 4])
endfunction
autocmd FileType python call KyoPythonEntry()
上一篇: C语言笔记—用梯形法求定积分
下一篇: C语言笔记——用梯形法求定积分