——雁丘
Python运算符、函数与模块和程序控制结构
- 关于本专栏
- 一 运算符
- 1.1 位运算符
- 1.1.1 按位取反
- 1.1.2 按位与
- 1.1.3 按位或
- 1.1.4 按位异或
- 1.1.5 左移位
- 1.2 关系运算符
- 1.3 运算顺序
- 1.4 运算方向
- 二 函数与模块
- 2.1 内建函数
- 2.2 库函数
- 2.2.1 标准库函数
- 2.2.3 第三方库
- 2.3 包
- 2.4 标识符
- 2.4.1 标识符命名的规则
- 2.4.2 标识符命名的常用方法
- 三 程序控制结构
关于本专栏
关于Python
安装与环境变量配置请查看本专栏文章Python安装与环境变量配置傻瓜式教程(2023年9月)
关于Pycharm
的安装部署和基本使用请查看本专栏文章Python解释器和Pycharm的傻瓜式安装部署
一 运算符
Pyihon 提供了四种类型的运算符:算术运算符、位运算符、关系运算符、逻辑运算符。Python 可以处理很大的数,这一特点常常可以降低程序设计的难度。
Pyihon 运算符 | |||||
---|---|---|---|---|---|
类别 | 运算符 | 功能 | 说明 | 优先级 | 目数 |
/ | () | 括号 | 改变运算顺序 | 0 | / |
算术运算符 | ** | 乘方 | 一般省略不写 | 1 | 双目 |
+ | 正号 | 一般省略不写 | 2 | 单目 | |
- | 负号 | -10 | 2 | ||
位运算符 | ~ | 按位取反 | ~x=-(x+1) | 3 | |
算术运算符 | * | 乘号 | 4 | 双目 | |
/ | 除号 | 4 | |||
// | 整除 | 5//2=2 | 4 | ||
% | 取余 | 5%2=1 | 4 | ||
+ | 加号 | 5 | |||
- | 减号 | 5 | |||
位运算符 | << | 左移位 | 16<<4=16*2*2*2*2 | 7 | 双目 |
>> | 右移位 | 16>>3=16/2/2/2 | |||
& | 与 | 64&15=0 | |||
| | 或 | 64|15=79 | |||
^ | 异或 | 64^15=78 | |||
关系运算符 | < | 小于 | 8 | 双目 | |
> | 大于 | ||||
<= | 小于等于 | ||||
>= | 大于等于 | ||||
== | 等于 | ||||
!= | 不等于 | ||||
逻辑运算符 | not | 非 | 9 | 双目 | |
and | 与 | 10 | |||
or | 或 | 11 |
1.1 位运算符
位运算就是按整数的二进制位进行的运算,运算对象必须是标准的char
和 int
数据类型。
1.1.1 按位取反
按位取反是对操作数的各位二进制值取反,即0变1,1变0。得到原码的反码。
例如:5按位取反结果为-6
~00000101 /十进制 5/
11111010 /十进制-6(二进制为补码)/
按位取反的出现与计算机中负数的表示有关
1.1.2 按位与
按位与是双目运算符,参加运算的两个操作数按二进制位进行“与”运算。类似于数学中“交集”。例如:15&3的结果为3。
00001111
&00000011
00000011
1.1.3 按位或
按位或是双目运算符,参加运算的两个操作数按二进制位进行“或”运算。类似于数学中“并集”。例如:15|32的结果为47。
00001111
|00100000
00101111
1.1.4 按位异或
按位异或也是双目运算符,参加运算的两个操作数按二进制位进行“异或”运算。例如:15^3的结果为12。
利用按位异或可以很容易判断两个数的对应二进制位是相同还是相异,结果为0表示相同,结果为1表示相异。
00001111
^00000011
00001100
1.1.5 左移位
将第一操作数的每一位向左平移第二操作数指定的位数,右边空位补0,左边移出去的位丢弃。例如:15及其左移1位、2位、3位的二进制补码如下表所示。
可见,利用左移位可以快速地实现整数的乘法运算,每左移一位相当于乘以2,左移n位就相当于乘以2n,非常有利于算法的硬件实现。
(6)右移位
将第一操作数的每一位向右平移第二操作数指定的位数,右边移出去的位丢弃。当第一操作数为有符号数时,左边空位补符号位上的值,这种移位称为算术移位;当第一操作数为无符号数时,左边空位补0,这种移位称为逻辑移位。例如:15和-15分别进行右移1位、2位、3位的二进制补码如下表所示
可见,利用右移位可以快速地实现整数的除法运算,每右移一位相当于除以21,右移n位相当于除以2n,非常有利于算法的硬件实现。
1.2 关系运算符
关系(Relational)运算是用来比较两个操作数的值的运算,比较的结果是一个逻辑值
比较字符串时则是按 第一个符号的ASCIT码值,如果相同则比较下一位
1.3 运算顺序
按照优先级从低到高计算
总体上的优先级顺序为: 算术运算符 > 位运算符 > 关系运算符 > 逻辑运算符,但按位取反运算符_
的优先级位于算术运算符的正负号+
、-
和乘方**
之间。
1.4 运算方向
除了关系运算符的运算顺序是从左往右,其他均是从右往左
二 函数与模块
一个能解决大规模问题的程序通常会被分解成若千功能模块,这些功能模块被称为函数。使用函数通常可以使程序的结构更简洁易懂,可以提高程序的可读性和可复用性,Python 中的雨数包括内建函数、标准库函数,第三方库和用户自定义函数。
2.1 内建函数
内建函数就是不需要进行外部导人就能直接使用的函数,可以使用函数 dir(__builtins__)
查看。下列为 Python 3.6 中的所有内建函数:
Python 常用初级内建函数 | |
---|---|
函数名 | 功能 |
abs() | 返回数字的绝对值 |
bool() | 转换为布尔类型(若没有参数,返回 false) |
int() | 转换为整数 |
float() | 转换为浮点数 |
cmplex() | 转换为复数 |
str() | 转换为字符串 |
bin() | 返回一个整数二进制表示。 |
otc() | 返回一个整数 八进制表示。 |
hex() | 返回一个整数十六进制表示。 |
round() | 返回统计学的四舍六入五凑偶 |
type() | 返回参数的数据类型 |
id() | 返回对象的身份标识 |
all() | 判断给定的元组或列表是否都为 True(空元组、空列表返回值为 True) |
any() | 判断给定的元组或列表是否有 True空元组、空列表返回值为 True) |
ascii() | 返回字符串(非 ASCII 字符转化为转义字符) |
help() | 查询该函数的帮助信息 |
2.2 库函数
2.2.1 标准库函数
除了内建函数外, Python 还提供了标准库函数,需要先导入模块再使用函数,每个库有相关的一些函数。使用dir(模块名)
查看该模块所有函数
- 导入一个模块
>>> import math # 导入math模块
>>> math.floor(3.5) # 使用math模块的向下取整函数
3
- 导入多个模块
>>> import math ,os ,operator
- 只导入模块中一个函数
from...import...
>>> from math import floor
>>> math.floor(3.5) # 使用math模块的向下取整函数
3
优点:无需再写math.
,用from math import *
可以导人 math 模块中的所有属性和函数。
- 利用
as
在导入时为模块增加别名,例如import numpy as np
表示导人numpy
模块并为其取一个别名np
,后续模块名numpy
均可用np
表示。
2.2.3 第三方库
第三方库提前下载后相当于标准库函数
可以在 PyPI 页面上搜索和安装、发布 Python 第三方库(模块)
安装其中的第三方库官方推荐使用Python 库管理工具 pip
,只要将第三方库下载到本地然后进行安装即可。
举例
安装安卓自动测试库atx
,步骤为:
- Python 官网下载文件 get-pip.py(目前 Python IDE 中一般都预装了 pip,不需要另外载和安装,直接使用第3步安装即可)
- 在命令提示符方式下运行如下命令安装 pip。
python get-pip. py
3 使用 pip 安装 atx 第三方库。
pip install atx
2.3 包
包是由模块和子包组成的一个应用程序执行环境,是一个有层次的文件目录结构
>>> import A. C. cl
>>> A. C. cl. foo(123)
或者
>>> from A. C. cl import foo
>>> foo( 123)
A
是最顶层的包,C
是它的子包,而 c1
是子包 C
中的模块。
2.4 标识符
在 Python 程序中,我们对于变量、方法、类、用户自定义函数等等可以由用户起名字,这些名字,我们把它统一的称之为标识符。
2.4.1 标识符命名的规则
- 内容限定:只能用
- 英文
- 中文(不建议)
- 数字(不能用于开头)
- 下划线
_
- 大小写敏感
- 不可使用关键字
2.4.2 标识符命名的常用方法
-
遵循“见名知意”原则,在每一处逻辑断点处标识,两种方法:
windows风格,驼峰命名法:大写字母标记逻辑断点,如mathGrades
;
unix风格,下划线法: 下划线标记逻辑断点,如math_grades
。 -
变量中的英文字母全部小写