Python入门
2024-03-14 11:29:58 12 举报AI智能生成
Python是一种广泛应用于web开发、数据分析、机器学习等领域的编程语言。其简洁易懂的语法和丰富的库资源,使得开发者能够快速上手并实现强大的功能。Python的入门学习主要包括理解Python的基础语法、数据类型、函数和面向对象编程等概念。同时,通过实际操作,如编写Python脚本、使用Python库进行数据分析等,可以加深对Python的理解和掌握。此外,还可以学习如何使用Python开发web应用、进行机器学习等高级技能。
笔记
八股文
模版推荐
作者其他创作
大纲/内容
脚本语言
解释型语言
没有编译环节
交互式语言
提示符环境 >>> 后可以直接执行代码<br>
面向对象语言
封装、继承、多态
特点
广泛且丰富的库
可移植性
可扩展和可嵌入
自动内存管理
动态类型
自动识别类型
GUI编程
基础语法
<font color="#ff0f0f">源码由 UTF-8 编码</font>
注释
#
单行语句多行写
\
多行语句单行写
;
打印不换行
( 变量 , end=" " )
条件语句结束
:
<font color="#ff0f0f">基本数据类型</font>
不可变数据
数字[Number]、字符串[String]、元组[Tuple]<br>
数字类型
int
float
boolean
<font color="#ff0f0f">python中布尔是数字类型、能与数字相加</font>
True = 1
False = 0
complex/复数
实部和虚部(用 j 或 J来表示)的数组成
强转 --> complex(x,y || x)
进制
二进制--0b 八进制--0o 十六进制--0x
bin(二进制) oct(八进制) hex(十六进制)
数学函数
abs(绝对值) ceil(向上取整) fabs(以浮点数返回绝对值) floor(向下取整)
log( x , y ) log10( x , y )
返回 x 以 y 为底的对数
modf(x)<br>
返回 x 的整数和小数部分
pow( x , y )
次幂
round( x , y )
四舍五入、y表示保留几位
sqrt( x )
x的平方根
随机数函数
choice( x )<br>
随机挑选一个元素
randrange( start , stop )<br>
从指定范围内获取一个元素
random()<br>
随机生成
shuffle( x )
排序
uniform( x , y)
随机生成下一个实数、在 x 和 y 范围内
seed()
随机生成器的种子
三角函数
acos(x) <br>
x的反余弦弧度值
asin(x)
x的反正余弦弧度值
astan(x) <br>
x的反正切弧度值
astan2( x , y )
给定的 X 及 Y 坐标值的反正切值
cos(x)
x的弧度的余弦值
hypot(x, y)
返回欧几里德范数
sin(x)
返回的x弧度的正弦值
tan(x)
返回x弧度的正切值
degrees(x)
将弧度转换为角度
radians(x)
将角度转换为弧度
数字常量<br>
pi<br>
圆周率
e
常量、自然常数
运算符
简单
+ - * /(返回浮点) //(返回整数、往小取) % **(幂)
赋值<br>
对比 java 多了 **= //= :=(赋值和返回赋值的值)
位<br>
&(且) |(或) ^(相同则0,不相同则1) ~(取反) >>(二进制右移) <<(二进制左移)
逻辑<br>
and or not(取反)
成员
in not in<br>
身份
is is not
字符串类型--str
"
单行
"""
多行
*
字符串重复
f
字符串嵌套表达式、有点java中aviator工具的味道、<font color="#ff0f0f">注意你需要有这个变量</font>
格式
f"{表达式}"
+
拼接
索引方式(左闭右开)
从左至右 0
从右至左 -1
<font color="#000000">截取</font>
<font color="#ff0f0f">变量 [ 头下标 : 尾下标 : 步长 ]</font>
转义字符<br>
\
续行符
r 放前面、不会发生转义失效
\a
响铃
\b
退格
\000
空格
\n
换行
\v
纵向制表符
\t
横向制表符
\r
回车
加载进度
\f
换页
\yyy
八进制
\xyy
十六进制
内建函数
capitalize() 首字符大写 、 center() 、 isalnum() 、 isalpha() 、 isdigit() 、 isspace() 、 istitle() 、 isupper() 、 join(seq)<br>isnumeric() 、 islower() 、 count() 、 bytes.decode() 、 encode() 、 endswith() 、 expandtabs() 、 find() 、 index()<br>
len(string) 、 ljust() 、lower() 、lstrip() 、maketrans() 、 min(str) 、 max() 、 replace() 、 rfind() 、 rindex() 、rjust() 、 rstrip() 、split() 、splitlines() 、 startswith() 、 strip() 、 swapcase() 、title() 、translate() 、upper() 、zfill (width) 、isdecimal()<br>
元组(相当于java中的数组)
格式
名称 = ( 元素 , ......)
可不同类型、可重复、元素不可改变
<font color="#ff0f0f">区分可变和不可变、看内存地址</font><br>
元组可以包含可变列表
一个元素、后面需要跟逗号、否则默认整数
截取
<font color="#ff0f0f">列表名 [ 头下标 : 尾下标 : 步长 (负数、逆向读取) ]</font>
+
连接
函数
len() max() min() tuple()<br>
<font color="#000000">类型判断</font>
type( x )
不会认为子类是一种父类类型
isinstance( x , 类型 )
会认为子类是一种父类类型
删除
<font color="#ff0f0f">del 对象名 或 某个索引值</font>
类型转换
类型( x )
可变数据
列表[List]、集合[Set]、字典[Dictionary]<br>
列表(相当于java中的list集合)
格式
名称 = [ 元素 , ...... ]
可不同类型、可重复、元素可改变、有序、有索引
截取
<font color="#ff0f0f">列表名 [ 头下标 : 尾下标 : 步长 (负数、逆向读取) ]</font>
案例:翻转字符串
+
列表连接
*
列表重复
方法
append() 、 count() 、 extend(追加一个序列) 、 index() 、 insert() 、 pop(移除第一个) 、 remove() 、 reverse() 、 sort() 、 clear() 、 copy()<br>
集合Set(相当于java中的set集合)
格式
名称 = { v , ...... }
名称 = set( [ 元素 ] )
<font color="#ff0f0f">可用于创建空集合</font>
可不同类型、不可重复、元素可改变、无序、无索引
运算
- ( 差集 ) 、 | (或、并集) 、 & (并、交集) 、^ ( 不同时存在 )
方法
add() 、 clear() 、 copy() 、 difference() 、 difference_update() 、 discard() 、intersection() 、 intersection_update() 、isdisjoint() 、issuperset() 、pop() 、remove() 、 symmetric_difference() 、symmetric_difference_update() 、union() 、update() 、len()<br>
字典(相当于Java中Map)
格式
<font color="#ff0f0f">空字典创建</font>
名称 = { k: v , ...... }<br>
dist()
内置函数
名称( [ (key,value) , ...... ] )
可不同类型key、key唯一、无序
函数
len() str() type()
方法
formkeys() 、 key in dict 、 get() 、 items() 、keys() 、setdefault(key, default=None) 、dict.update(dict2) 、dict.values() 、pop(key[,default]) 、popitem()
byte类型
不可变的二进制序列、用于处理图像文件、视频音频等
类型
整数值(0~255)
比较类型必须整数比较
格式
名称 = b" 值 "
类型转换
名称 = bytes( 元素 , encoding = 编码格式 )<br>
数据类型转换
隐式转换(默认转)
显示转换(强转)
repx() --> 转表达式
eval() --> 计算字符串中有效python表达式、并返回对象<br>
frozenset() --> 转不可变集合<br>
解释器
脚本式编程
python3 脚本文件
Jython
为java平台设计的python解释器、可以把python代码编译成java字节码执行<br>
Cpython
C开发的<br>
入门
input( 显示语句 )
相当于java new Scanner(System.in)
键盘录入
pass
等待键盘中断
条件控制<br>
相当于java中 if elseif else
if 条件: 执行语句 elif 条件: 执行语句 else 执行语句
相当于java中 switch case default
match 条件: case 值 : 执行语句 case _ : 执行语句
case 可以跟多个值,用 | 隔开
循环控制
相当于java中 while(){}|
while 条件 : 执行语句 else : 执行语句
相当于java中 for(){}
for 变量 in 条件 : 循环体 else : 执行语句
<font color="#ff0f0f">用于遍历数组、列表、集合等迭代对象</font>
range( x, y , z )<br>
连续自增 x开始 y结束 z步长<br>
enumerate()
同时拿到 k,v 的值
zip()
同时遍历多个集合
sorted()<br>
遍历一个已排序的
同java
break
结束循环
continue
跳过本次循环
推导式
迭代集合 将变量迭代传入给表达式 <font color="#ff0f0f">表达式和变量名称得相同(除字典推导式)</font>
列表推导式
列表对象 = [ 返回值 for 变量 in 列表 if 条件 ]<br>
字典推导式
字典对象 = { 返回值 k:v for key in 字典 if 条件 }
集合推导式
集合变量 = { 返回值 for v in 集合 if 条件 }
元组推导式
元组变量 = ( 返回值 for 变量 in 元组 if 条件 )
返回对象是生成器、必须强转tuple
迭代器和生成器
迭代器
相当于java迭代器 Iterable
1. iter() <br>
创建迭代器对象
2.next()
输出迭代器下一个元素
StopIteration<br>
用于标记迭代得完成、防止无限循环的情况<br>
生成器
yield
用于暂停和恢复函数
执行函数会将 yield 后面的值进行返回
生成器函数返回的是迭代器函数
函数
相当于java中的方法
def 函数名( 参数 ) :
不定长参数<br>
函数中的参数前面加 *
参数默认转成元组
函数中的参数前面加 **
参数默认转成字典
可以单独出现 * 参数
参数默认转成关键字参数
默认参数
函数中的参数后面赋值
多个参数
不用指定顺序
但传参需要给参数后面赋值
关键字参数
传参需要给参数后面赋值
强制位置参数
/<br>
指明函数形参必须使用指定位置参数、不能使用关键字参数的形式
递归函数
匿名函数
使用 lambda 来创建函数
格式
函数名 = lambda 参数 : 函数体<br>
搭配使用<br>
filter() 、 map() 、 reduce()<br>
格式
函数名 = reduce( lambda 参数 : 函数体 , 迭代对象 )<br>
return
不带参数值的 return 语句返回 None<br>
模块
<font color="#ff0f0f">import</font>
导入整个模块
import 模块
导入模块中单个或多个函数
form 模块 import 函数名 , 函数名 ......
as
取别名
每个模块都有一个__name__属性,当其值是'__main__'时,表明该模块自身在运行,否则是被引入
dir()
可以找到模块内定义的所有名称
输入和输出
输出格式<br>
str()
函数返回一个用户易读的表达形式
repr()
产生一个解释器易读的表达形式
rjust()<br>
字符串靠右、左边填充空格
ljust() || center()<br>
返回新的字符串
zfill()<br>
数字字符串左边填充0
<font color="#ff0f0f">.format()</font>
跟在字符串后面、格式化
格式
字{x}符{x}串.format( 变量 , 变量 )
字符串中空号为数字<br>
指定变量的位置
后面可以跟 0 : xf || xd
f 表示保留小数
d 表示宽度<br>
数字还可以跟 [ ] 找索引
字符串中空号为关键字
变量得赋值给参数名 <br>
前面两个可以组合使用
!a (使用 ascii()) !s (使用 str()) !r (使用 repr())
读和写文件
f = open( file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None )<br>
file: 必需,文件路径(相对或者绝对路径)。
mode:文件的模式
buffering: 设置缓冲
encoding: 一般使用utf8
errors: 报错级别
newline: 区分换行符
closefd: 传入的file参数类型
opener: 设置自定义开启器,开启器的返回值必须是一个打开的文件描述符。
f . write()<br>
写
如果不是字符串、需要转换 str()
f . writelines()<br>
写多行
f . close()
关闭
f . read( size )
指定数量
f . readline()
一行
f . readlines()
所有行
可以用 for 循环
f . tell()
返回当前的指针的位置
f . seek( offset , from)
offset:移动的位置<br>
form:从哪里开始
0:起始 1:当前 2:末尾<br>
f . flush()
刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入
f . fileno()
返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上
f . isatty()
如果文件连接到一个终端设备返回 True,否则返回 False
f . truncate([size])
从文件的首行首字符开始截断,截断文件为 size 个字符、截断之后后面的所有字符被删除
pickle 模块<br>
实现了基本的数据序列和反序列化
序列化:将程序中运行的对象信息保存到文件中去,永久存储。
反序列化:能够从文件中创建上一次程序保存的对象
错误和异常
捕获异常
try:<br> 正常代码逻辑<br> raise KeyboardInterrupt #无论在任何情况下都会执行的清理行为<br>except 错误类型:<br> 执行语句<br>except 错误类型:<br> 执行语句<br>else:<br> 没有错误、执行语句<br>finally:<br> 无论如何执行的语句<br>
异常在 else 抛出,会在finally执行完毕后 在抛出异常
抛出异常<br>
raise Exception("异常语句")
自定义异常类
继承 Exception
断言
<font color="#ff0f0f">assert</font><br>
语法格式
assert 条件表达式 等价于 if not expression : raise AssertionError
紧跟参数
assert 表达式 , 语句 等价于 if not expression : raise AssertionError(arguments)
with 关键字
with open("myfile.txt") as f:<br> for line in f:<br> print(line, end="")
等价于
file = open('./test_runoob.txt', 'w')<br>try:<br> file.write('hello world')<br>finally:<br> file.close()
<font color="#000000">面向对象</font>
类
语法格式
class 类名
方法
语法格式
def 对象名
私有
def __对象名
属性
私有
__属性名
def _init_()
构造方法
self
类似于 java中 this 关键字
<font color="#ff0f0f">类方法必须包含参数 self, 且为第一个参数 、名称不是固定的</font>
继承
语法格式
class 类名( 父类 )
多继承
class 类名( 父类 , 父类 )
不同模块
class 类名( 模块名 . 父类 )
方法重写
两个类具有继承关系、并且都有同名的方法
super( 父类 , 子类实例) . 重写方法
引用父类
方法重载
同类中、方法名相同、参数不同
专有方法
__del__ : 析构函数,释放对象时使用
__repr__ : 打印,转换
__setitem__ : 按照索引赋值
__getitem__: 按照索引获取值
__len__: 获得长度
__cmp__: 比较运算
__call__: 函数调用
__add__: 加运算
__sub__: 减运算
__mul__: 乘运算
__truediv__: 除运算
__mod__: 求余运算
__pow__: 乘方
命令空间和作用域
global<br>
语法格式
global 变量
局部变量修改全局变量、需要内部声明
nonlocal
语法格式
nonlocal 变量
局部变量往上提升一层作用域、该层并非全局
标准库
文件通配符
glob
提供了一个函数用于从目录通配符搜索中生成文件列表
数据压缩
zlib
性能度量
timeit
doctest
扫描模块并根据程序中内嵌的文档字符串执行测试
unittest
不像 doctest容易使用、可以在一个独立的文件里提供一个更全面的测试集
实例
Collect
Get Started
Collect
Get Started
Collect
Get Started
Collect
Get Started
评论
0 条评论
下一页