仅对基础知识与语法格式进行整理,无具体使用介绍,适用于完全学习后查漏补缺
python学习环境搭建请看【python】学习环境搭建
注释格式
# 我是单行注释
'''
我是多行注释
'''
常用数据类型 :int float bool str tuple list dict set
##常用命名规则:大驼峰HelloWorld 小驼峰helloWorld 蛇形hello_world
关键字:
def 定义函数 class 定义类
keyword.kwlist 查看python关键字
输入
变量名 = input(‘提示信息’)
输出
#占位方式输出 其中d前面可以加05表示输出五位不够用0填充,
#5表示用空格填充,f前面可以加.3表示输出三位小数`
name, age, weight = 'Tom', 18, 66.6
print('姓名:%s , 年龄:%d 体重:%.1f公斤' % (name, age, weight))
#插值表达式输出
print(f'姓名{name},年龄{age},体重{weight}')
类型转换
int() float() bool() str() tuple() list() dict() set()
流程控制语句
分支结构
if 条件1 : 要执行的语句
elif 条件2: 要执行的语句
else: 要执行的语句
循环结构
for循环
for 变量名 in 容器类型:
循环体
while 循环
初始化条件
while 判断条件:
循环体
控制条件
循环体+else语句 循环体完全执行后会执行else中的语句(不是break结束),反之不会
for 或者 while 条件:
…
else:
…
容器类型 str tuple list dict set
str 字符串 不可变类型
s1='abc'
1.切片格式
字符串变量名[起始索引:结束索引:步长]
注:起始索引从0开始,不写默认为0,结束索引不写默认到结尾,步长为负数时,起始索引默认为-1
如果 起始索引 -> 结束索引的方向 和 步长的方向不一致, 则获取不到数据.
[::-1]为反转字符串
2.常用函数
find() index() rfind() rindex() split() replace() count() len()
list 列表 可变类型
l1=[1,2,3,4,5]
列表的索引也是从0开始,切片与字符串用法一样
tuple 元组 不可变类型
t1 = (1,2,3)
索引和切片同上
dict 字典 可变类型 键具有唯一性
d1 = {1:1,2:2,3:3}
增/改 :字典名[键]= 值
删 : del clear()
查: keys() get(键,默认值) values() items()
set 集合 可变类型 无序 用于列表去重
set1 = {1,2,3}
容器类型公共操作
str,list,tuple: + *
str list tuple dict: in ,not in
推导式/解析式
[i for i in…]
{i:i * 2 for i in…}
{i for i in…}
函数
格式
def 函数名(形参1, 形参2…):
函数体
return 具体返回值
这里要注意理解函数的形参,实参,以及缺省参数,和不定长参数的定义,以及一起使用时的使用顺序
不定长参数: *args接收所有的 位置参数, 封装成: 元组 **kwargs接收所有的 关键字参数, 封装成: 字典
顺序 位置参数 -> 关键字参数 -> 不定长参数( 不定长位置参数 -> 不定长关键字参数)
一定要注意理解参数的位置关系!!!!
文件
格式 : r1 = open(‘文件地址’,‘操作方式’) 操作方式有 r rb w wb a ab 等
读
r1 = open(‘文件地址’,‘r’) 读取字符
r1 = open(‘文件地址’,‘r’) 读取二进制
r1.read() 括号中可以写读取大小,不写默认全部
r1.readline() 读取一行
r1.readlines() 读取多行
写
w1 = open(‘文件地址’,‘w’) 字符写入 (覆盖)
w1 = open(‘文件地址’,‘wb’) 二进制写入(覆盖)
w1 = open(‘文件地址’,‘a’)字符写入 (后续插入)
w1 = open(‘文件地址’,‘ab’)二进制写入 (后续插入)
w1.write(‘要写入的内容’,encoding=‘编码集’)
w1.writelines(容器类型) 一次写入多个值
扩展 with …open()…
with open(‘文件地址’,‘操作方式’) as r1:
os模块 copyfile() 函数可以拷贝文件
包和模块
模块
后缀名为.py的文件,可以写类,变量,功能函数
导入方式
- import 模块名
- import 模块名 as 别名
- from 模块名 import 功能名
- from 模块名 import 功能名 as 别名
- from 模块名 import *
自定义函数模块也采用此导入方式
自定义函数模块
两个属性·__name__
和 ·__all__
__name__
: 在当前模块中打印的是: __main__在调用者模块中打印的是: 被调用者的模块名避免在 调用者中 导包时 自动执行 被调用者的测试代码.
·__all__
只针对于 from 模块名 import * 有效,不写 all 默认会导入当前模块下, 所有的功能., 写__all__了, 则 from 模块名 import * 的之后, 只会导入 all后边列表中, 写的功能如果某个模块中的函数较多, 且常用的函数基本都是固定的, 则可以考虑使用 all属性.
包
从物理上看,包就是一个文件夹,在该文件夹下包含了一个 init.py 文件,该文件夹可用于包含多个模块文件
从逻辑上看,包的本质依然是模块
导入方式
import 包名.模块名
import 包名.模块名.目标
下面需要在__init__.py
文件中添加__all__ = []
,控制允许导入的模块列表
from 包名 import *
from 包名 import 模块名.目标
debug调试
哪里不对点哪里