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