信息复习笔记-Python基础
本文最后更新于:2 年前
我们首先来复习Python基础。
1.编程环境
编程是使用集成开发环境(IDE)。一般包括代码编辑器、调试器和图形用户界面工具。
解析:Python 开发包自带的 IDE 是 IDLE 。而 PyCharm 和 Eclipes 等则是第三方公司开发的专业级的 Python IDE 。
2.Python 常见数据类型
Python 常用数据类型有整型(int)、实型(float)、字符串型(str)和 布尔型(boolean)。
解析:
1 |
|
3.Python 的基本运算与表达式
①基本运算:算术运算、关系运算和逻辑运算三大类。
②表达式:变量、常量、运算符和圆括号等按一定的规则组合构成一个表达式。
解析:算术运算
算术运算符 | 说明 |
---|---|
+ | 加法,2+3为5 |
- | 减法,3-2为1 |
* | 乘法,2×3.0为6.0 |
/ | 除法,4/2为2.0 |
% | 除余,5%2为1 余数计算公式:1 = 5 - 5 // 2 * 2 |
** | 幂次,2**3为8 |
// | 向下取整(即去掉小数点及其之后的所有值), 5//2为2 |
注意:①只要运算对象间有实型数据的,最后的运算结果也是一个实型。例如上面的 2*3.0 的结果不是 6 而是 6.0 。② / 的运算结果是实型。例如上面的 4/2 的结果不是 2 而是 2.0 。
关系运算 如果关系成立,返回True,否则返回False
关系运算符 | 说明 |
---|---|
> | 比较左侧值是否大于右侧值 |
>= | 比较左侧的值是否大于或等于右侧的值 |
< | 比较左侧值是否小于右侧值 |
<= | 比较左侧的值是否小于或等于右侧的值 |
== | 比较两个对象的值是否相等 |
!= | 比较两个对象的值是否不相等 |
注意: 当对字符串进行比较(逐位比较)时,实际上比较的是字符串的编码。
逻辑运算
逻辑运算符 | 含义 | 基本格式 | 说明 |
---|---|---|---|
and | 逻辑与运算,等价于数学中的“且” | a and b | 当 a 和 b 两个表达式都为真时,a and b 的结果才为真,否则为假。 |
or | 逻辑或运算,等价于数学中的“或” | a or b | 当 a 和 b 两个表达式都为假时,a or b 的结果才是假,否则为真。 |
not | 逻辑非运算,等价于数学中的“非” | not a | 如果 a 为真,那么 not a 的结果为假;如果 a 为假,那么 not a 的结果为真。相当于对 a 取反。 |
4.变量与赋值
①变量:在程序运算过程中变量的值可以改变。为了能对变量进行访问需要对变量进行命名。在 Python 中,变量名可以包括字母、数字、下划线组成,但不能以数字开头,而且字母区分大小写,同时不能使用保留字。
②赋值运算符:“=” “-=” “+=” “*=” “/=” “%=” 等。
解析:Python 保留字 见下表,加下划线的保留字是我们已经学过的。
保留字 | 说明 |
---|---|
and | 逻辑与操作,用于表达式运算 |
as | 用于转换数据类型 |
assert | 用于判断变量或条件表达式的结果 |
async | 用于启用异步操作 |
await | 用于异步操作中等待协程返回 |
break | 中断循环语句的执行 |
class | 定义类 |
continue | 继续执行下一次循环 |
def | 定义函数或方法 |
del | 删除变量或序列的值 |
elif | 条件语句,与 if、else 结合使用 |
else | 条件语句,与 if、else 结合使用;也可用于异常或循环语句 |
except | 包含捕获异常后的处理代码块,与 try、finally 结合使用 |
False | 含义为“假”的逻辑值 |
finally | 包含捕获异常后的始终要调用的代码块,与 try、except 结合使用 |
for | 循环语句 |
from | 用于导入模块,与 import 结合使用 |
global | 用于在函数或其他局部作用域中使用全局变量 |
if | 条件语句,与 elif、else 结合使用 |
import | 导入模块,与 from 结合使用 |
in | 判断变量是否在序列中 |
is | 判断变量是否为某个类的实例 |
lambda | 定义匿名函数 |
None | 表示一个空对象或是一个特殊的空值 |
nonlocal | 用于在函数或其他作用域中使用外层(非全局)变量 |
not | 逻辑非操作,用于表达式运算 |
or | 逻辑或操作,用于表达式运算 |
pass | 空的类、方法或函数的占位符 |
raise | 用于抛出异常 |
return | 从函数返回计算结果 |
True | 含义为“真”的逻辑值 |
try | 测试执行可能出现异常的代码,与 except, finally 结合使用 |
while | 循环语句 |
with | 简化 Python 的语句 |
yield | 从函数依次返回值 |
5.字符串、列表和字典
①字符串:字符串常用单引号、双引号或三引号表示;字符串是不可变对象(即不能对字符串的某一位置进行赋值而改变字符串);通过索引来访问字符串的字符;通过切片操作可以获得字符串的一个子串。
②列表:用方括号“[]”表示,元素之间用逗号“,”分隔;由0个或多个元素组成的序列,其中的元素可以是数字、字符串、其他列表等混合类型的数据;列表的大小是可变的,可以根据需要扩大或缩小;列表中的元素可通过索引来定位。
③字典:字典可包含多个元素,每个元素包含两部分内容:键和值;键常用字符串或数值表示,值可以是任意类型的数据;键和值两者一一对应,且每个键只能对应一个值;字典中的元素是没有顺序的,引用元素时以键为索引。
解析:字符串切片实践 格式为:字符串名[ start : end : step ],step 缺省时默认为 1,start 缺省时,默认为 0。
1 |
|
控制台输出
列表切片实践 格式为:list[i:j:k],i 为起始位置索引(包含),默认为0,j为终止位置索引(不含),默认至序列尾;k为切片间隔,默认为1。i,j,k使用默认值时可省略。
1 |
|
控制台输出
字典格式为 d = {key1:value1,key2:value2,···}
6.顺序结构的程序实现
①顺序结构的程序代码执行方式是自上而下、依次执行的。
②在 Python 中,“#”后面的内容为注释,主要对代码说明,并不执行。
③Python 常见的内建函数
函数 | 描述 |
---|---|
print(x) | 输出x的值 |
input() | 获取用户输入 |
int(object) | 将字符串和数字转换成整型 |
float(object) | 将字符串和数字转换成实型 |
str(x) | 将x转换成字符串 |
abs(x) | 返回x的绝对值 |
help() | 提供交互式帮助 |
len(seq) | 返回序列的长度 |
chr(x) | 返回x对应的字符 |
ord(x) | 返回x对应的 ASCII 值 |
round(x[,n]) | 对x进行四舍五入(如果给定n,就将数x转换为小数点后有n位的数) |
max(s,[,args…]) | 返回序列的最大值(如果给定多个参数,则返回给定参数中的最大值) |
min(s,[,args…]) | 返回序列的最小值(如果给定多个参数,则返回给定参数中的最小值) |
7.Python 的缩进
①Python 中对缩进有严格要求,可以根据缩进来判断语句的从属关系。
②一般将语句块缩进4个空格。
8.循环结构的程序实现
①for 语句的格式
1 |
|
for 语句通过遍历序列中的元素实现循环,并通过序列的元素数量来控制循环次数。
②while 语句的格式
1 |
|
while循环时,首先判断条件是不是真,如果为真,执行一次循环体,再次判断条件是不是真,如果仍为真,那么再执行一次循环体,依次类推,直到条件为假时退出 while 语句。
③range 函数
range 函数由三个参数(起始值、终值、步长)来决定序列中元素的个数和范围。终值不能取到。
④break 语句
break 语句用来强行退出循环。
9.函数与模块
①定义函数的语法
1 |
|
②模块导入
import 语句或 from-import 语句。
一、Python 的基本运算优先级
1.算术运算符
运算符 | ** | * | / | // | % | + | - |
---|---|---|---|---|---|---|---|
优先级 | 1 | 2 | 2 | 2 | 2 | 3 | 3 |
2.关系运算符
运算符 | > | < | >= | <= | == | != | in |
---|---|---|---|---|---|---|---|
优先级 | 4 | 4 | 4 | 4 | 4 | 4 | 5 |
3.逻辑运算符
运算符 | not | and | or |
---|---|---|---|
优先级 | 6 | 7 | 8 |
注意:数字越大,优先级越低,优先级相等时,按照自左向右的顺序执行。
二、常见的赋值方法
赋值方法 | 含义 |
---|---|
a,b = 1,0 | 将数值 1 赋值给变量 a ,将数值 0 赋值给变量 b |
a,b = ‘ab’ | 将字符 ‘a’ 赋值给变量 a,将字符 ‘b’ 赋值给变量 b |
a=b=c=22 | 将数值 22 分别赋给变量 a,b,c |
[ a , b ] = [ 10 , 20 ] | 将数值 10 赋值给 a,将数值 20 赋值给 b |
三、函数与模块
1.math 模块中的常用常数与函数 使用时需要导入(import math)
名称 | 含义 |
---|---|
math.e | 自然常数e |
math.pi | 圆周率Π |
math.ceil(x) | 对x向上取整,比如x=1.2,返回2 |
math.floor(x) | 对x向下取整,比如x=1.2,返回1 |
math.pow(x,y) | 指数运算,得到x的y次方 |
math.log(x) | 对数,默认基底为e |
math.sin(x) | 正弦函数,返回自变量为x下的函数值,下同 |
math.cos(x) | 余弦函数 |
math.tan(x) | 正切函数 |
math.degrees(x) | 弧度转换成角度 |
math.radians(x) | 角度转换成弧度 |
2.random 模块中的常用函数 使用时需要导入(import random)
名称 | 含义 |
---|---|
random.random() | 随机生成一个[0,1)范围内的实数 |
random.uniform(a,b) | 随机生成一个[a,b]范围内的实数 |
random.randint(a,b) | 随机生成一个[a,b]范围内的整数 |
random.choice(seq) | 从序列的元素中随机挑选一个元素,比如:random.choice(range(10)),从0到9中随机挑选一个整数 |
random.sample(seq,k) | 从序列中随机挑选k个元素 |
random.shuffle(seq) | 将序列的所有元素随机排序 |
四、枚举算法
①基本思想:把问题所有可能的解一一列举,然后判断每一个列举出的可能解是不是正确的解。
②三个主要环节:枚举解(循环语句),筛选解(条件判断),输出解(或统计解的个数)。
③枚举算法的优化:尽可能缩小解的列举范围。
解析:枚举算法实践 找出x的所有乘积对
1 |
|
控制台输出 (因数不分顺序)
对上述算法进行优化
1 |
|
优化后的算法的运行时间竟压缩到了原算法运行时间的0.03187%,当x非常大时,效果将更加明显。
— 【参考资料 —— 《五三》和 网络文献】
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!