三天两后晌入门Python(二)
9、控制流语句
Python编程语言提供以下类型的决策语句。
| 编号 | 语句 | 描述 |
|---|---|---|
| 1 | if语句 | 一个if语句由一个布尔表达式,后跟一个或多个语句组成。 |
| 2 | if…else语句 | 一个if语句可以跟随一个可选的else语句,当if语句的布尔表达式为FALSE时,则else语句块将被执行。 |
| 3 | 嵌套if语句 | 可以在一个if或else语句中使用一个if或else if语句。 |
Python编程语言提供以下类型的循环来处理循环需求。
| 编号 | 循环 | 描述 |
|---|---|---|
| 1 | while循环 | 在给定条件为TRUE时,重复一个语句或一组语句。 它在执行循环体之前测试状态。 |
| 2 | for循环 | 多次执行一系列语句,并缩写管理循环变量的代码。 |
| 3 | 嵌套循环 | 可以使用一个或多个循环在while或for循环中。 |
循环控制语句从正常顺序更改执行。 当执行离开范围时,在该范围内创建的所有自动对象都将被销毁。
Python支持以下控制语句。
| 编号 | 控制语句 | 描述 |
|---|---|---|
| 1 | break语句 | 终止循环语句并将执行转移到循环之后的语句。 |
| 2 | continue语句 | 使循环跳过其主体的剩余部分,并立即重新测试其状态以进入下一次迭代。 |
| 3 | pass语句 | 当语法需要但不需要执行任何命令或代码时,Python中就可以使用pass语句,此语句什么也不做,用于表示"占位"的代码,有关实现细节后面再写 |
11、 Python数字
数字数据类型用于存储数值。它们是不可变数据类型。这意味着,更改数字数据类型的值会导致新分配对象。
当为数字数据类型分配值时,Python将创建数字对象。 例如 -
var1 =1var2 =10
可以使用del语句删除对数字对象的引用。del语句的语法是 -
del var1[,var2[,var3[….,varN]]]]
可以使用del语句一次删除单个对象或多个对象。 例如 -
del vardel var_a, var_b
Python支持不同的数值类型 -
int(有符号整数) - 它们通常被称为整数或整数。它们是没有小数点的正或负整数。 _Python 3_中的整数是无限大小的。 Python 2 有两个整数类型 - int和long。 _Python 3_中没有"长整数"。
float(浮点实数值) - 也称为浮点数,它们表示实数,并用小数点写整数和小数部分。 浮点数也可以是科学符号,E或e表示10的幂 -
complex(复数) - 复数是以a + bJ的形式,其中a和b是浮点,J(或j)表示-1的平方根(虚数)。数字的实部是a,虚部是b。复数在Python编程中并没有太多用处。
可以以十六进制或八进制形式表示整数 -
复数由一个a + bj来表示,它是由实际浮点数的有序对组成,其中a是实部,b是复数的虚部。
数字类型转换
Python可将包含混合类型的表达式内部的数字转换成用于评估求值的常用类型。 有时需要从一个类型到另一个类型执行明确数字转换,以满足运算符或函数参数的要求。
- int(x)将x转换为纯整数。
- long(x)将x转换为长整数。
- float(x)将x转换为浮点数。
- complex(x)将x转换为具有实部x和虚部0的复数。
- complex(x, y)将x和y转换为具有实部为x和虚部为y的复数。x和y是数字表达式。
数学函数
Python中包括执行数学计算的函数,如下列表所示 -
| 编号 | 函数 | 描述 |
|---|---|---|
| 1 | abs(x) | x的绝对值,x与零之间的(正)距离。 |
| 2 | ceil(x) | x的上限,不小于x的最小整数。 |
| 3 | cmp(x, y) | 如果 x < y 返回 -1, 如果 x == y 返回 0, 或者 如果 x > y 返回 1。在_Python 3_中已经弃用,可使用return (x>y)-(x<y)代替。 |
| 4 | exp(x) | x的指数,返回e的x次幂 |
| 5 | fabs(x) | x的绝对值。 |
| 6 | floor(x) | 不大于x的最大整数。 |
| 7 | log(x) | x的自然对数(x > 0)。 |
| 8 | log10(x) | 以基数为10的x的对数(x > 0)。 |
| 9 | max(x1, x2,…) | 给定参数中的最大值,最接近正无穷大值 |
| 10 | min(x1, x2,…) | 给定参数中的最小值,最接近负无穷小值 |
| 11 | modf(x) | 将x的分数和整数部分切成两项放入元组中,两个部分与x具有相同的符号。整数部分作为浮点数返回。 |
| 12 | pow(x, y) | x的y次幂 |
| 13 | round(x [,n]) | x从小数点舍入到n位数。round(0.5)结果为 1.0, round(-0.5) 结果为 -1.0 |
| 14 | sqrt(x) | x的平方根(x > 0)。 |
随机数函数
随机数字用于游戏,模拟,测试,安全和隐私应用。 Python包括以下通常使用的函数。
| 编号 | 函数 | 描述 |
|---|---|---|
| 1 | choice(seq) | 来自列表,元组或字符串的随机项目。 |
| 2 | randrange ([start,] stop [,step]) | 从范围(start, stop, step)中随机选择的元素。 |
| 3 | random() | 返回随机浮点数r(0 <= r < 1) |
| 4 | seed([x]) | 设置用于生成随机数的整数起始值。在调用任何其他随机模块功能之前调用此函数,返回None。 |
| 5 | shuffle(lst) | 将列表的项目随机化到位置。 返回None。 |
| 6 | uniform(x, y) | 返回随机浮点数 r (x <= r < y)。 |
三角函数
随机数字用于游戏,模拟,测试,安全和隐私应用。 Python包括以下通常使用的函数。
| 编号 | 函数 | 描述 |
|---|---|---|
| 1 | acos(x) | 返回x的弧余弦值,以弧度表示。 |
| 2 | asin(x) | 返回x的弧线正弦,以弧度表示。 |
| 3 | atan(x) | 返回x的反正切,以弧度表示。 |
| 4 | atan2(y, x) | 返回atan(y / x),以弧度表示。 |
| 5 | cos(x) | 返回x弧度的余弦。 |
| 6 | hypot(x, y) | 返回欧几里得规范,sqrt(x*x + y*y) |
| 7 | sin(x) | 返回x弧度的正弦。 |
| 8 | tan(x) | 返回x弧度的正切值。 |
| 9 | degrees(x) | 将角度x从弧度转换为度。 |
| 10 | radians(x) | 将角度x从角度转换为弧度。 |
数学常数
该模块还定义了两个数学常数 -
| 编号 | 常量 | 描述 |
|---|---|---|
| 1 | pi | 数学常数pi |
| 2 | e | 数学常数e |
12、Python字符串
Python将单引号与双引号相同。创建字符串和向一个变量赋值一样简单。 例如 -
var1 ='Hello World!'var2 ="Python Programming"
1.访问字符串中的值
Python不支持字符类型; 字符会被视为长度为1的字符串,因此也被认为是一个子字符串。
要访问子串,请使用方括号的切片加上索引或直接使用索引来获取子字符串。 var2 ="Python Programming"print("var2[1:5]: ", var2[1:5])# 切片加索引
2.更新字符串
可以通过将变量分配给另一个字符串来"更新"现有的字符串。 新值可以与其原值相关或完全不同的字符串。 例如 -var1 ='Hello World!'print("Updated String :- ", var1[:6]+'Python')
3.转义字符
下表是可以用反斜杠表示法表示转义或不可打印字符的列表。单引号以及双引号字符串的转义字符被解析。
| 反斜线符号 | 十六进制字符 | 描述/说明 |
|---|---|---|
| \a | 0x07 | 铃声或警报 |
| \b | 0x08 | 退格 |
| \cx | Control-x | |
| \C-x | Control-x | |
| \e | 0x1b | Escape |
| \f | 0x0c | 换页 |
| \M-\C-x | Meta-Control-x | |
| \n | 0x0a | 新一行 |
| \nnn | 八进制符号,其中n在0.7范围内 | |
| \r | 0x0d | 回车返回 |
| \s | 0x20 | 空格 |
| \t | 0x09 | 制表符 |
| \v | 0x0b | 垂直制表符 |
| \x | 字符x | |
| \xnn | 十六进制符号,其中n在0 |
4.字符串特殊运算符
假设字符串变量a保存字符串值'Hello',变量b保存字符串值'Python',那么 -
| 运算符 | 说明 | 示例 |
|---|---|---|
| + | 连接 - 将运算符的两边的值添加 | a + b 结果为 HelloPython |
| * | 重复 - 创建新字符串,连接相同字符串的多个副本 | a*2 结果为 HelloHello |
| [] | 切片 - 给出指定索引中的字符串值,它是原字符串的子串。 | a[1] 结果为 e |
| [:] | 范围切片 - 给出给定范围内的子字符串 | a[1:4] 结果为 ell |
| in | 成员关系 - 如果给定字符串中存在指定的字符,则返回true | 'H' in a 结果为 1 |
| not in | 成员关系 - 如果给定字符串中不存在指定的字符,则返回true | 'Y' not in a 结果为 1 |
| r/R | 原始字符串 - 抑制转义字符的实际含义。原始字符串的语法与正常字符串的格式完全相同,除了原始字符串运算符在引号之前加上字母"r"。 "r"可以是小写(r)或大写(R),并且必须紧靠在第一个引号之前。 | print(r'\n') 将打印 \n ,或者 print(R'\n') 将打印 \n,要注意的是如果不加r或R作为前缀,打印的结果就是一个换行。 |
| % | 格式 - 执行字符串格式化 |
5.字符串格式化运算符
以下是可以与%符号一起使用的完整符号集列表
| 编号 | 格式化符号 | 转换 |
|---|---|---|
| 1 | %c | 字符 |
| 2 | %s | 在格式化之前通过str()函数转换字符串 |
| 3 | %i | 带符号的十进制整数 |
| 4 | %d | 带符号的十进制整数 |
| 5 | %u | 无符号十进制整数 |
| 6 | %o | 八进制整数 |
| 7 | %x | 十六进制整数(小写字母) |
| 8 | %X | 十六进制整数(大写字母) |
| 9 | %e | 指数符号(小写字母'e') |
| 10 | %E | 指数符号(大写字母'E' |
| 11 | %f | 浮点实数 |
| 12 | %g | %f和%e |
| 13 | %G | %f和%E |
其他支持的符号和功能如下表所列 -
| 编号 | 符号 | 功能 |
|---|---|---|
| 1 | * | 参数指定宽度或精度 |
| 2 | - | 左对齐 |
| 3 | + | 显示标志或符号 |
| 4 | <sp> | 在正数之前留空格 |
| 5 | # | 根据是否使用"x"或"X",添加八进制前导零('0')或十六进制前导'0x'或'0X'。 |
| 6 | 0 | 使用零作为左边垫符(而不是空格) |
| 7 | % | '%%'留下一个文字"%" |
| 8 | (var) | 映射变量(字典参数) |
| 9 | m.n. | m是最小总宽度,n是小数点后显示的位数(如果应用) |
6.三重引号
Python中的三重引号允许字符串跨越多行,包括逐字记录的新一行,TAB和任何其他特殊字符。
三重引号的语法由三个连续的单引号或双引号组成。
7.Unicode字符串
在_Python 3_中,所有的字符串都用Unicode表示。在_Python 2_内部存储为8位ASCII,因此需要附加'u'使其成为_Unicode_,而现在不再需要了。
内置字符串方法
Python包括以下内置方法来操作字符串 -
| 编号 | 方法 | 说明 |
|---|---|---|
| 1 | capitalize() | 把字符串的第一个字母转为大写 |
| 2 | center(width, fillchar) | 返回使用fillchar填充的字符串,原始字符串以总共width列为中心。 |
| 3 | count(str, beg = 0,end = len(string)) | 计算字符串中出现有多少次str或字符串的子字符串(如果开始索引beg和结束索引end,则在beg~end范围匹配)。 |
| 4 | decode(encoding = 'UTF-8',errors = 'strict') | 使用编码encoding解码该字符串。 编码默认为默认字符串encoding。 |
| 5 | encode(encoding = 'UTF-8',errors = 'strict') | 返回字符串的编码字符串版本; 在错误的情况下,默认是抛出ValueError,除非使用'ignore'或'replace'给出错误。 |
| 6 | endswith(suffix, beg = 0, end = len(string)) | 确定字符串或字符串的子字符串(如果启动索引结束和结束索引结束)都以后缀结尾; 如果是则返回true,否则返回false。 |
| 7 | expandtabs(tabsize = 8) | 将字符串中的制表符扩展到多个空格; 如果没有提供tabize,则默认为每个制表符为8个空格。 |
| 8 | find(str, beg = 0 end = len(string)) | 如果索引beg和结束索引end给定,则确定str是否在字符串或字符串的子字符串中,如果找到则返回索引,否则为-1。 |
| 9 | index(str, beg = 0, end = len(string)) | 与find()相同,但如果没有找到str,则引发异常。 |
| 10 | isalnum() | 如果字符串至少包含1个字符,并且所有字符均为数字,则返回true,否则返回false。 |
| 11 | isalpha() | 如果字符串至少包含1个字符,并且所有字符均为字母,则返回true,否则返回false。 |
| 12 | isdigit() | 如果字符串只包含数字则返回true,否则返回false。 |
| 13 | islower() | 如果字符串至少包含1个字母,并且所有字符均为小写,则返回true,否则返回false。 |
| 14 | isnumeric() | 如果unicode字符串只包含数字字符,则返回true,否则返回false。 |
| 15 | isspace() | 如果字符串只包含空格字符,则返回true,否则返回false。 |
| 16 | istitle() | 如果字符串正确"标题单词首字母都大写",则返回true,否则返回false。 |
| 17 | isupper() | 如果字符串至少包含一个可变大小写字符,并且所有可变大小写字符均为大写,则返回true,否则返回false。 |
| 18 | join(seq) | 将序列seq中的元素以字符串表示合并(并入)到具有分隔符字符串的字符串中。 |
| 19 | len(string) | 返回字符串的长度 |
| 20 | ljust(width[, fillchar]) | 返回一个空格填充的字符串,原始字符串左对齐到总共width列。 |
| 21 | lower() | 将字符串中的所有大写字母转换为小写。 |
| 22 | lstrip() | 删除字符串中的所有前导空格 |
| 23 | maketrans() | 返回在translate函数中使用的转换表。 |
| 24 | max(str) | 从字符串str返回最大字母字符。 |
| 27 | replace(old, new [, max]) | 如果给定max值,则用new或最多最大出现替换字符串中所有出现的旧字符(old)。 |
| 28 | rindex( str, beg = 0, end = len(string)) | 与index()相同,但在字符串中向后搜索。 |
| 29 | rjust(width,[, fillchar]) | 返回一个空格填充字符串,原始字符串右对齐到总共宽度(width)列。 |
| 30 | rstrip() | 删除字符串的所有尾随空格。 |
| 31 | split(str= | 根据分隔符str(空格,如果没有提供)拆分字符串并返回子字符串列表; 如果给定,最多分割为num子串。 |
| 32 | splitlines( num=string.count('\n')))") | 全部拆分字符串(或num)新行符,并返回每行的列表,并删除新行符。 |
| 33 | startswith(str, beg=0,end=len(string)) | 确定字符串或字符串的子字符串(如果给定起始索引beg和结束索引end)以str开头; 如果是则返回true,否则返回false。 |
| 34 | strip([chars]) | 对字符串执行lstrip()和rstrip() |
| 35 | swapcase() | 反转在字符串中的所有字母大小写,即小写转大写,大写转小写。 |
| 36 | title() | 返回字符串的标题版本,即所有单词第一个字母都以大写开头,其余的都是小写的。 |
| 37 | translate(table, deletechars= | 根据转换表STR(256个字符),除去那些在del字符串转换字符串。 |
| 38 | upper() | 将字符串中的小写字母转换为大写。 |
| 39 | zfill(width) | 返回原始字符串,左边填充为零,总共有宽度(width)字符; 对于数字zfill()保留给定的任何符号(少于一个零)。 |
| 40 | isdecimal() | 如果unicode字符串只包含十进制字符,则返回true,否则返回false。 |