Python精简知识点-北京航空航天大学

目录

一、Python基础知识

1.整数(int)与浮点数(float)

2.字符串(str)

3.列表(list)

4.选择结构(if-elif-else) 

5.循环结构(for、while)

三、数据结构与算法

1.栈与队列

2.枚举与递归

3.贪心与DP


一、Python基础知识

1.整数(int)与浮点数(float

变量的声明: Python 中变量在使用前或使用时必须先赋值,未经使用的变量不能出现在赋值号 “=” 的右
端。
可以多个变量同时赋相同值

或多个变量赋不同值 

常用两种数字类型:整数( int )、浮点数( flfloat
数字间的运算符 + -( 可做负号或减号 ) * / //( 整除号 ) %( 取余号 ) **( 取幂 )
对于相同精度都数字类型,结果一般也为同一精度,例如整数与整数作 + - * // % 运算结果仍为整数。但
是对于除法,整数与整数间作除法得浮点数。
对于不同精度的数字进行运算,结果为更高精度的数字,例如整数与浮点数运算结果为浮点数。
小技巧:发挥取余和整除运算的特殊性质。利用 n%10 可以获得 n 的个位, (n%100) //10 可获得十位。
n//100 可以获得 n 的前 x 位。同时运用整除和取余可以获得一个数字特定位数上的数字,强烈建议在想要
获取数字特定位数时使用数字运算而非转化为字符串的索引、切片。

 

数字间的比较运算符 < ,> ,<= ,>= ,== ,!= 。返回值为布尔值 True False ,常用在 if 语句和 while 语句的判
断条件。
此外,关于 Python 中浮点数精度问题,由于计算机中储存数字均用二进制储存,而有些十进制小数无法
用有限的二进制小数表示,但是计算机实际运算时只会截取无限位数的前几十位,所以会造成一个小数的十进制结果与二进制结果不等价,就会出现如下的情况。

 

常用函数 abs bin pow round max min str

 

2.字符串(str

创建一个字符串 a="abc123"
字符串有正向递增 ( 第一位为 0) 和反向递减索引 ( 倒数第一位为 -1)
索引、切片 ( 有返回值,不改变原字符串 )

 

字符串的运算 + *(有返回值,不改变原字符串)

 转义字符

 

成员运算符in,返回True False

 

格式化字符串 可以用 % 方法或 format 方法(补充前置 0 这些操作也可以通过字符串的加法与乘法来进行)

 

部分字符串函数
list ord chr replace split lower

3.列表(list

Python中的列表为广义表,即表中所含的元素类型不唯一,但我们常把它当作狭义表来使用。  

 

列表的索引与切片同字符串,但是索引获得的数据类型为对应位置元素类型,切片获得的数据类型为列
表。
列表 + *( 乘法 ) in 等同字符串中操作
修改列表元素 a[0]=b 注意不要超出索引
从列表删除同一元素的方法

列表初始化

 

列表的输出

 

列表函数:append count pop remove reverse sort index

 

4.选择结构(if-elif-else) 

选择结构主要包含 if elif 以及 else 的用法 在使用这些语句时记得行末加上 ':'
对于 if elif 的嵌套
因此一旦遇到 elif ,可以立刻将其属于前一个 if
对于 else ,同理,一个 if-else if-elif-else 结构,仅会有一个出口运行程序
如果想多次单独判断多次输出结果,请多次使用 if

5.循环结构(forwhile

循环结构主要包含 while 语句和 for 语句。在使用这些语句时注意行末加上 ':'
对于 while 语句,一定注意 while 的循环条件(在 while 的循环条件里不要出现 len ()函数,因为每次使
len 函数都会遍历一遍列表(字符串),会导致很多次重复计算,最好先赋值 l=len() ,再用 l 判断

for 语句
for语句一般有两种实现形式,但是其本质是一样的

continue break

 

最后,由于 Python 中没有类似 c 语言的大括号来囊括需要运行的语句,因此缩进对于语句的归属尤为重要缩进通常为 一个tab (四个空格)或直接四个空格,用来表达语句的所属关系

补充:关于选择结构与循环结构中 while 循环的判断条件。
正常来说, if elif while 后应该跟一个布尔表达式,表达式的结果是 True False ,想要用多个表达式共同判断可以用and or 以及加括号等方式,此外,数字也可以作为判断条件, 0 表示 False ,非 0 表示True。因此也可以这么写:

三、数据结构与算法

数据结构与算法部分的理解与应用较前一部分 Python 基础知识在难度上有较大的跨越,建议在理解大致
原理,理解典型例题的基础上再做一些练习。

1.栈与队列

栈:后进先出,单边操作
入栈,可以使用列表的 append 操作直接添加到列表尾,出栈可以使用 pop(-1) ,而且因为 pop 函数有返
回值,所以需要对出栈的元素做一些操作(比如输出)时可以用 x=l.pop(-1) 接收其值,当然也可以不接
收。
队列:先进先出,两端操作
入队,可以使用 append 直接添加到列表尾,出队可以使用 pop(0) ,或 x=l.pop(0)
实现栈的方法: 1. 定义类 2. 使用列表模拟
栈与队列的概念和操作相对好理解,但是做题时一般会有较多问题。

2.枚举与递归

枚举:把所有可能性的结果一一列举出来,并一一判断是否可行,属于一种较为简单、常用的方法。
枚举的好处:一般由几个 for 循环 + 判断语句构成,程序相对好写,但是效率不高,只能处理只能暴力找
答案的问题。
递归:函数调用自己的方法称为递归。递归函数的设计包含很重要的三个要素,递归状态,边界条件和
状态转移。在调用递归函数时,一般默认这个函数已经完成了它的功能。
例如:斐波那契数列,走楼梯

 

 走楼梯问题描述:每次可以上一层、也可以上两层台阶,那么上到第n层有几种走法。

回溯:也成为试探,一般是从问题的某一种状态出发搜索这种状态的所有解,搜索完毕则再从另一种情
况除法找解。
例如:八皇后问题

3.贪心与DP

贪心:局部最优达到全局最优,在每一次选择时均选择最好的。
一般来说,贪心都需要进行排序,然后每次选择最优的解决方式。
DP :把问题分解成若干个相互关联的子问题,先求解子问题,再通过子问题的解得出原问题的解。动
态规划包含三个要素:阶段,状态与状态转移方程。

 

 

 

 

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值