文章目录
- Python
-
- 第一章:Python介绍
-
- [1.1 概述](#1.1 概述)
- [1.2 环境部署](#1.2 环境部署)
- [1.3 开发工具](#1.3 开发工具)
- [1.4 Python模块](#1.4 Python模块)
-
- [1.4.1 安装模块](#1.4.1 安装模块)
- [1.4.2 pip镜像源设置](#1.4.2 pip镜像源设置)
- 第二章:Python基础
-
- [2.1 代码格式](#2.1 代码格式)
- [2.2 标识符和关键字](#2.2 标识符和关键字)
- [2.3 变量和数据类型](#2.3 变量和数据类型)
- [2.4 课堂练习](#2.4 课堂练习)
-
- [2.4.1 打印购物票](#2.4.1 打印购物票)
- [2.4.2 蚂蚁森林](#2.4.2 蚂蚁森林)
- [2.5 数字类型](#2.5 数字类型)
-
- [2.5.1 整型](#2.5.1 整型)
- [2.5.2 浮点类型](#2.5.2 浮点类型)
- [2.5.3 复数类型](#2.5.3 复数类型)
- [2.5.4 布尔类型](#2.5.4 布尔类型)
- [2.5.5 数字类型转换](#2.5.5 数字类型转换)
- [2.6 运算符](#2.6 运算符)
-
- [2.6.1 算数运算符](#2.6.1 算数运算符)
- [2.6.2 赋值运算符](#2.6.2 赋值运算符)
- [2.6.3 比较运算符](#2.6.3 比较运算符)
- [2.6.4 逻辑运算符](#2.6.4 逻辑运算符)
- [2.6.5 成员运算符](#2.6.5 成员运算符)
- [2.6.6 位运算](#2.6.6 位运算)
- [2.6.7 运算符优先级](#2.6.7 运算符优先级)
- [2.7 总结](#2.7 总结)
- 第三章:流程控制
-
- [3.1 条件语句](#3.1 条件语句)
-
- [3.1.1 if语句](#3.1.1 if语句)
- [3.1.2 if-else语句](#3.1.2 if-else语句)
- [3.1.3 if-elif-else语句](#3.1.3 if-elif-else语句)
- [3.1.4 if嵌套](#3.1.4 if嵌套)
- [3.2 课堂练习](#3.2 课堂练习)
-
- [3.2.1 猜数字](#3.2.1 猜数字)
- [3.3 循环语句](#3.3 循环语句)
-
- [3.3.1 while语句](#3.3.1 while语句)
- [3.3.2 for语句](#3.3.2 for语句)
- [3.3.3 循环嵌套](#3.3.3 循环嵌套)
- [3.4 实训案例](#3.4 实训案例)
-
- [3.4.1 逢七拍手游戏](#3.4.1 逢七拍手游戏)
- [3.5 跳转语句](#3.5 跳转语句)
-
- [3.5.1 break语句](#3.5.1 break语句)
- [3.5.2 continue 语句](#3.5.2 continue 语句)
- [3.6 本章小结](#3.6 本章小结)
- 第四章:字符串
-
- [4.1 字符串介绍](#4.1 字符串介绍)
- [4.2 格式化字符串](#4.2 格式化字符串)
-
- [4.2.1 使用%格式化字符串](#4.2.1 使用%格式化字符串)
- [4.2.2 使用format()方法格式化字符串](#4.2.2 使用format()方法格式化字符串)
- [4.2.3 使用f-string格式化字符串](#4.2.3 使用f-string格式化字符串)
- [4.3 实训案例](#4.3 实训案例)
-
- [4.3.1 进制转换](#4.3.1 进制转换)
- 4.4字符串的常见操作
- [4.5 实例案例](#4.5 实例案例)
-
- [4.5.1 敏感词替换](#4.5.1 敏感词替换)
- [4.6 本章小结](#4.6 本章小结)
- 第五章:组合数据类型
-
- [5.1 认识组合数据类型](#5.1 认识组合数据类型)
- [5.2 列表](#5.2 列表)
-
- [5.2.1 创建列表](#5.2.1 创建列表)
- [5.2.2 访问列表元素](#5.2.2 访问列表元素)
- [5.2.3 添加元素](#5.2.3 添加元素)
- [5.2.4 元素排序](#5.2.4 元素排序)
- [5.2.5 删除元素](#5.2.5 删除元素)
- [5.2.6 列表推导式](#5.2.6 列表推导式)
- [5.2.7 成绩录入系统](#5.2.7 成绩录入系统)
- [5.3 元组](#5.3 元组)
- [5.4 实例案例](#5.4 实例案例)
-
- [5.4.1 神奇魔方](#5.4.1 神奇魔方)
- [5.5 集合](#5.5 集合)
- [5.6 字典](#5.6 字典)
-
- [5.6.1 创建字典](#5.6.1 创建字典)
- [5.6.2 字典的访问](#5.6.2 字典的访问)
- [5.6.3 字典元素的添加和修改](#5.6.3 字典元素的添加和修改)
- [5.6.4 字典元素的删除](#5.6.4 字典元素的删除)
- [5.6.5 字典推导式](#5.6.5 字典推导式)
- [5.7 实训案例](#5.7 实训案例)
- [5.8 本章小结](#5.8 本章小结)
- [第六章 函数](#第六章 函数)
-
- [6.1 函数概述](#6.1 函数概述)
- [6.2 函数的定义和调用](#6.2 函数的定义和调用)
-
- [6.2.1 定义函数](#6.2.1 定义函数)
- [6.2.2 调用函数](#6.2.2 调用函数)
- [6.3 函数参数传递](#6.3 函数参数传递)
- [6.4 函数的返回值](#6.4 函数的返回值)
- [6.5 变量作用域](#6.5 变量作用域)
-
- [6.5.1 局部变量和全局变量](#6.5.1 局部变量和全局变量)
- [6.5.2 global和nonlocal关键字](#6.5.2 global和nonlocal关键字)
- [6.6 实例案例](#6.6 实例案例)
-
- [6.6.1 角谷猜想](#6.6.1 角谷猜想)
- [6.7 特殊形式的函数](#6.7 特殊形式的函数)
-
- [6.7.1 递归函数](#6.7.1 递归函数)
- [6.7.2 匿名函数](#6.7.2 匿名函数)
- [6.8 项目案例-学生管理系统](#6.8 项目案例-学生管理系统)
- [6.9 本章小结](#6.9 本章小结)
- 第七章:文件与数据格式化
-
- [7.1 文件概述](#7.1 文件概述)
- [7.2 文件的基础操作](#7.2 文件的基础操作)
-
- [7.2.1 文件的打开与关闭](#7.2.1 文件的打开与关闭)
- [7.2.2 文件的读写](#7.2.2 文件的读写)
- [7.2.3 文件的定位读写](#7.2.3 文件的定位读写)
- [7.3 文件与目录管理](#7.3 文件与目录管理)
- [7.4 实训案例](#7.4 实训案例)
-
- [7.4.1 信息安全策略-文件备份](#7.4.1 信息安全策略-文件备份)
- [7.5 数据维度](#7.5 数据维度)
-
- [7.5.1 基于维度的数据分类](#7.5.1 基于维度的数据分类)
- [7.5.2 一维数据和二维数据的存储与读写](#7.5.2 一维数据和二维数据的存储与读写)
- [7.5.3 多维数据的格式化](#7.5.3 多维数据的格式化)
- [7.6 本章小结](#7.6 本章小结)
- 第八章:面向对象
-
- [8.1 面向对象概述](#8.1 面向对象概述)
- [8.2 类的定义与使用](#8.2 类的定义与使用)
-
- [8.2.1 类的定义](#8.2.1 类的定义)
- [8.2.2 对象的创建与使用](#8.2.2 对象的创建与使用)
- [8.3 类的成员](#8.3 类的成员)
-
- [8.3.1 属性](#8.3.1 属性)
- [8.3.2 方法](#8.3.2 方法)
- [8.3.3 私有成员](#8.3.3 私有成员)
- [8.4 特殊方法](#8.4 特殊方法)
-
- [8.4.1 构造方法](#8.4.1 构造方法)
- [8.4.2 析构方法](#8.4.2 析构方法)
- [8.6 封装](#8.6 封装)
- [8.7 继承](#8.7 继承)
-
- [8.7.1 单继承](#8.7.1 单继承)
- [8.7.2 多继承](#8.7.2 多继承)
- [8.7.3 重写](#8.7.3 重写)
- [8.8 多态](#8.8 多态)
- [8.10 实例](#8.10 实例)
- [8.12 本章小结](#8.12 本章小结)
- [第九章 异常](#第九章 异常)
-
- [9.1 异常概述](#9.1 异常概述)
-
- [9.1.1 异常示例](#9.1.1 异常示例)
- [9.1.2 异常类型](#9.1.2 异常类型)
-
- 1)NameError
- 2)IndexError
- [3) AttributeError](#3) AttributeError)
- 4)FileNotFoundError
- [9.2 异常捕获语句](#9.2 异常捕获语句)
-
- [9.2.1 try-except语句捕获异常](#9.2.1 try-except语句捕获异常)
- [9.2.2 异常结构中的else子句](#9.2.2 异常结构中的else子句)
- [9.2.3 异常结构中的finally子句](#9.2.3 异常结构中的finally子句)
- [9.3 抛出异常](#9.3 抛出异常)
- [9.4 自定义异常](#9.4 自定义异常)
- [9.5 本章小结](#9.5 本章小结)
-
- [9.2.2 异常结构中的else子句](#9.2.2 异常结构中的else子句)
- [9.2.3 异常结构中的finally子句](#9.2.3 异常结构中的finally子句)
- [9.3 抛出异常](#9.3 抛出异常)
- [9.4 自定义异常](#9.4 自定义异常)
- [9.5 本章小结](#9.5 本章小结)
Python
第一章:Python介绍
1.1 概述
1.2 环境部署
1.3 开发工具
1.4 Python模块
1.4.1 安装模块
刚才编写的Python程序只有极少的代码,实现的功能非常简单。随着程序复杂度的提高,代码量会同步增长,这时若还是在一个文件中编写代码,代码的维护就会越来越困难。为了保证代码的可维护性,开发人员通常将一些功能性代码放在其他文件中,这样用于存放功能性代码的文件就是模块 。作为一种强大且便捷的编程语言,Python自然支持以模块的形式组织代码。Python内置了一些标准模块 ,Python的使用者也贡献了丰富且强大的第三方模块;标准模块可以直接导入与使用,第三方模块则需先行安装。
Python内置的pip工具(安装Python3.12时会自动安装该工具)可以非常方便地安装Python第三方模块,该工具可在命令行中使用,语法格式如下:
python
pip install 模块名
python
pip install pygame
解决超时报错:
原因:国内镜像源未设置,需要配置pip.in
1.4.2 pip镜像源设置
python
python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
生成pip.ini文件后,再编辑添加镜像源
bash
[global]
timeout=40
index-url=http://mirrors.aliyun.com/pypi/simple/
extra-index-url=
https://pypi.tuna.tsinghua.edu.cn/simple/
http://pypi.douban.com/simple/
http://pypi.mirrors.ustc.edu.cn/simple/
[install]
trusted-host=
pypi.tuna.tsinghua.edu.cn
mirrors.aliyun.com
pypi.douban.com
pypi.mirrors.ustc.edu.cn
检查安装是否成功
bash
pip list
第二章:Python基础
2.1 代码格式
可提升代码的可读性,与其他语言不同,Python代码的格式是Python语法的组成之一,不符合格式规范的Python代码无法正常运行。
2.1.1 注释
1)单行注释
以"#"开头,用于说明当前行或之后代码的功能。单行注释既可以单独占一行,也可以位于标识的代码之后,与标识的代码共占一行。
bash
# 单行注释,打印Hello,Python
print("Hello,Python")
建议:为了确保注释的可读性,Python官方建议"#"后面先添加一个空格,再添加相应的说明文字;若单行注释与代码共占一行,注释和代码之间至少应有两个空格。
2)多行注释
由三对双引号或单引号包裹的语句,主要用于说明函数或类的功能。因此多行注释也被称为说明文档。
python
...
height = input("请输入您的身高(单位为米):")
print("您的身高:",height)
weight = input("请输入您的体重(单位为公斤):")
print("您的体重:",weight)
bmi = float(weight)/(float(height)*float(height))
print("您的BMI指数:",bmi)
if bmi < 18.5:
print("您的体重过轻!")
if bmi >= 18.5 and bmi <24.9:
print("正常范围,继续保持!")
if bmi >= 24.9 and bmi <29.9:
print("您体重过重!")
if bmi >= 29.9:
print("该减肥了!")
'''
2.1.2 缩进
Python代码的缩进可以通过Tab键控制,也可使用空格控制。空格是Python3首选的缩进方法,一般使用4个空格表示一级缩进;**Python3不允许混合使用Tab和空格。**示例如下
python
if True:
print ("True")
else:
print ("False")
print ("False")
代码缩进量的不同会导致代码语义的改变,Python语言要求同一代码块的每行代码必须具有相同得缩进量。程序中不允许出现无意义或者不规范的缩进,否则运行时会产生错误。示例如下
python
if True:
print ("True")
else:
print ("False")
print ("hello")
上面最后一行代码的缩进量不符合规范,程序在运行后会出现错误,具体如下:
python
File "F:\PycharmProjects\pythonProject1\pycode\mygame.py", line 5
print ("hello")
^
IndentationError: unindent does not match any outer indentation level
2.1.3 语句换行
Python官方建议每行代码不超过79个字符,若代码过长应该换行。Python会将圆括号、中括号和大括号中的行进行隐式连接,我们可以根据这个特点实现过长语句的换行显示。
python
string = ("Python是一种面向对象、解释型计算机程序设计语言,"
"由Guido van Rossum于1989年底发明。"
"第一个公开发行版发行于1991年,"
"Python源代码同样遵循GPL(GNU General Public License)协议。")
注意:原本由圆括号、中括号和大括号包裹的语句在换行时不需要另外添加圆括号
python
number = ["one","two",
"three","four"]
print(number)
2.2 标识符和关键字
在程序中表示一些事物,开发人员需要自定义一些符号和名称,这些符号和名称叫做标识符。 Python中的标识符需要遵守一定的规则。
命名规则:
1)标示符由字母、下划线和数字组成,且数字不能开头。
2)Python中的标识符是区分大小写的。例如,tom和Tom是不同的标识符。
3)Python中的标识符不能使用关键字 。
为了规范命名标识符,关于标识符的命名提以下建议:
1)见名知意。(姓名:name;年龄:age)
2)常量名使用大写的单个单词或由下画线连接的多个单词(ORDER_LIST_LIMIT)。
3)模块名、函数名使用小写的单个单词或由下画线连接的多个单词(low_with_under)。
4)类名使用大写字母开头的单个或多个单词。(Cat,Dog,Person)
关键字是Python已经使用的、不允许开发人员重复定义的标识符。Python3中一共有35个关键字,每个关键字都有不同的作用。
python
import keyword
print(keyword.kwlist)
python
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

获取命令字声明
python
import keyword
print(help("for"))
python
The "for" statement
*******************
The "for" statement is used to iterate over the elements of a sequence
(such as a string, tuple or list) or other iterable object:
for_stmt: "for" target_list "in" starred_expression_list ":" suite
["else" ":" suite]
2.3 变量和数据类型
2.3.1 变量
变量:用拉丁字母表示的,值不固定的数据。
程序在运行期间用到的数据会被保存在计算机的内存单元中,为了方便存取内存单元中的数据,Python使用标识符来标识不同的内存单元,如此,标识符与数据建立了联系。

标识内存单元的标识符又称为变量名,Python通过赋值运算符"="将内存单元中存储的数值与变量名建立联系,即定义变量,具体语法格式如下:变量 = 值
将内存单元中存储的数据100与变量名data建立联系,如下所示
python
date = 100
2.3.2 数据类型
根据数据存储形式的不同,数据类型分为基础的数字类型和比较复杂的组合类型,其中数字类型又分为整型、浮点型、布尔类型和复数类型;组合类型分为字符串、列表、元组、字典等。

1)数字类型
Python内置的数字类型有整型(int)、浮点型(float)、复数类型(complex)和布尔类型(bool),其中int、float和complex分别对应数学中的整数、小数和复数;bool类型比较特殊,它是int的子类,只有True和False两种取值。
python
整型: 0 101 -239 False True
浮点型: 3.1415 4.2E-10 -2.334E-9
复数类型: 3.12+1.2.3j -1.23-93j
布尔类型: True False
2)字符串
字符串是一个由单引号、双引号或者三引号包裹的、有序的字符集合。
python
使用单引号包含: 'Python123¥'
使用双引号包含: "Python3*&%"
使用三引号包含: '''Python s1 ~(())'''
3)列表
列表是多个元素的集合,它可以保存任意数量、任意类型的元素,且可以被修改。Python中使用"[]"创建列表,列表中的元素以逗号分隔。
python
[1, 2, 'hello']
4)元祖
元组与列表的作用相似,它可以保存任意数量与类型的元素,但不可以被修改。Python中使用"()"创建元组,元组中的元素以逗号分隔
python
(1,2,'hello')
5)集合
集合与列表和元组类似,也可以保存任意数量、任意类型的元素,不同的是,集合使用"{}"创建,集合中的元素无序且唯一。
python
{'apple', 'orange', 1}
6)字典
字典中的元素是"键(Key):值(Value)"形式的键值对,键不能重复。Python中使用"{}"创建字典,字典中的各元素以逗号分隔
python
{"name": "zhangsan", "age": 18}
可以使用type()查看数据类型
python
info = {"name": "zhangsan", "age": 18}
print(type(info))
python
<class 'dict'>
2.3.3 变量的输入和输出
程序要实现人机交互功能,需能从输入设备接收用户输入的数据,也需要向显示设备输出数据。
1)input函数
input()函数用于接收用户键盘输入的数据,返回一个字符串类型的数据,其语法格式如下所示:
python
input([prompt])
prompt表示函数的参数,用于设置接收用户输入时的提示信息。
python
number=input("请输入数字:")
print(type(number))
运行结果
python
请输入数字:10
<class 'str'>
2)print()函数
print()函数用于向控制台中输出数据,它可以输出任何类型的数据,其语法格式如下所示:
python
print(*objects, sep=' ', end='\n', file=sys.stdout)
python
objects:表示输出的对象。输出多个对象时,对象之间需要用分隔符分隔。
sep:用于设定分隔符,默认使用空格作为分隔。
end:用于设定输出以什么结尾,默认值为换行符\n。
file:表示数据输出的文件对象。
代码示例
python
zh_name="张三"
en_name="tom"
info="年龄18岁,毕业于南京大学,兴趣爱好广泛"
print(zh_name,en_name,info,sep="\n")
运行结果
python
张三
tom
年龄18岁,毕业于南京大学,兴趣爱好广泛
2.4 课堂练习
2.4.1 打印购物票
购物小票又称购物收据,是指消费者购买商品时由商场或其它商业机构给用户留存的销售凭据。购物小票中一般会包含用户购买的商品名称、数量、单价以及总金额等信息。本实例要求编写代码,实现打印购物小票的功能。
2.4.2 蚂蚁森林
蚂蚁森林是支付宝客户端发起"碳账户"的一款公益活动:用户通过步行、地铁出行、在线消费等行为,可在蚂蚁森林中获取能量,当能量到达一定数值后,用户可以在支付宝中申请一颗虚拟的树,申请成功后会收到支付宝发放的一张植树证书。植树证书中包含申请日期、树苗编号等信息。本实例要求编写代码,实现打印植树证书信息的功能。
2.5 数字类型
2.5.1 整型
整数类型(int)简称整型,它用于表示整数。整型常用的计数方式有4种,分别是二进制(以"0B"或"0b"开头)、八进制(以数字"0o"或"0O"开头)、十进制和十六进制(以"0x"或"0X"开头)。
python
0b101 # 二进制
0o5 # 八进制
5 # 十进制
0x5 # 十六进制
为了方便使用各进制的数据,Python中内置了用于转换数据进制的函数:bin()、oct()、int()、hex(),关于这些函数的功能说明如下。

代码示例
python
number = 10
bin_num = 0b1010
print("10的二进制:",bin(number))
print("10的八进制:",oct(number))
print("0b1010的十进制",int(bin_num))
print("10的十六进制",hex(number))
运行结果
python
10的二进制: 0b1010
10的八进制: 0o12
0b1010的十进制 10
10的十六进制 0xa
2.5.2 浮点类型
浮点型(float)用于表示实数,由整数和小数部分(可以是0)组成例如,3.14、0.9等。较大或较小的浮点数可以使用科学计算法表示。
科学计数法会把一个数表示成a与10的n次幂相乘的形式,数学中科学计数法的格式为:

Python程序中使用字母e或E代表底数10
python
-3.14e2 # 即-314
3.14e-3 # 即0.00314
Python中的浮点型每个浮点型数据占8个字节(即64位),且遵守IEEE标准。Python中浮点型的取值范围为-1.8e308~1.8e308,若超出这个范围,Python会将值视为无穷大(inf)或无穷小(-inf)。
2.5.3 复数类型
复数由实部和虚部构成,它的一般形式为:real+imagj,其中real为实部,imag为虚部,j为虚部单位。示例如下:
python
complex_one = 1 + 2j # 实部为1,虚部为2
complex_two = 2j # 实部为0,虚部为2
代码示例
python
complex_num = 1+2j
print(complex_num.real)
print(complex_num.imag)
运行结果
python
1.0
2.0
2.5.4 布尔类型
布尔类型(bool)是一种特殊的整型,其值True对应整数1,False对应整数0。
python
None。
False。
任何数字类型的0,如0、0.0、0j。
任何空序列,如''''、()、[]。
空字典,如{}。
代码示例
python
print(bool(0))
print(bool(''))
print(bool(1))
运行结果
python
False
False
True
2.5.5 数字类型转换
Python内置了一系列可实现强制类型转换的函数,使用这些函数可以将目标数据转换为指定的类型。数字类型间进行转换的函数有int()、float()、complex()。需要注意的是浮点型数据转换为整型数据后只保留整数部分。

代码示例
python
num_one=2
num_two=2.2
print(int(num_two))
print(float(num_one))
print(complex(num_one))
运行结果
python
2
2.0
(2+0j)
2.6 运算符
Python运算符是一种特殊的符号,主要用于实现数值之间的运算。根据操作数数量的不同,运算符可分为单目运算符、双目运算符;根据运算符的功能,运算符可分为算术运算符、赋值运算符、比较运算符、逻辑运算符和成员运算符。
2.6.1 算数运算符
Python中的算术运算符包括+、-、*、/、//、%和**。以操作数a = 2,b = 8为例对算术运算符进行使用说明。

Python中的算术运算符既支持对相同类型的数值进行运算,也支持对不同类型的数值进行混合运算。在混合运算时,Python会强制将数值的类型进行临时类型转换,这些转换遵循如下原则:
python
1:整型与浮点型进行混合运算时,将整型转化为浮点型。
2:其他类型与复数运算时,将其他类型转换为复数类型。
代码示例
python
print(10/2.0)
print(10-(3+5j))
运行结果
python
5.0
(7-5j)
2.6.2 赋值运算符
赋值运算符的作用是将一个表达式或对象赋值给一个左值。左值是指一个能位于赋值运算符左边的表达式,它通常是一个可修改的变量,不能是一个常量。
例如将整数3赋值给变量num
python
num = 3
赋值运算符允许同时为多个变量赋值
python
x = y = z = 1 # 变量x、y、z均赋值为1
a, b = 1, 2 # 变量a赋值为1,变量b赋值为2
Python中的算术运算符可以与赋值运算符组成复合赋值运算符,赋值运算符同时具备运算和赋值两项功能。以变量num为例, Python复合赋值运算符的功能说明及示例如下表所示:

Python3.8中新增了一个赋值运算符------海象运算符":=",该运算符用于在表达式内部为变量赋值,因形似海象的眼睛和长牙而得此命名。
python
num_one = 1
# 使用海象运算符为num_two赋值
result = num_one + (num_two:=2)
print(result)
2.6.3 比较运算符
比较运算符也叫关系运算符,用于比较两个数值,判断它们之间的关系。Python中的比较运算符包括==、!=、>、<、>=、<=,它们通常用于布尔测试,测试的结果只能是True或False。以变量x=2,y=3为例,具体如下:

2.6.4 逻辑运算符
Python中分别使用"or","and","not"这三个关键字作为逻辑运算符,其中or与and为双目运算符,not为单目运算符。以x=10,y=20为例,具体如下:

2.6.5 成员运算符
成员运算符in和not in用于测试给定数据是否存在于序列(如列表、字符串)中,关于它们的介绍如下:
python
in:如果指定元素在序列中返回True,否则返回False。
not in:如果指定元素不在序列中返回True,否则返回False。
代码示例
python
x = "Python"
y = 't'
print(y in x)
print(y not in x)
运行结果
python
True
False
2.6.6 位运算
位运算符用于按二进制位进行逻辑运算,操作数必须为整数。下面介绍位运算符的功能,并以a=2,b=3为例进行演示,具体如下:

按位左移(<<)是指将二进制形式操作数的所有位全部左移n位,高位丢弃,低位补0。以十进制9为例,9转为二进制后是00001001,将转换后的二进制数左移4位。

2.6.7 运算符优先级
Python支持使用多个不同的运算符连接简单表达式,实现相对复杂的功能,为了避免含有多个运算符的表达式出现歧义,Python为每种运算符都设定了优先级。Python中运算符的优先级从高到低如下:

说明:如果表达式中的运算符优先级相同,按从左向右的顺序执行;如果表达式中包含小括号,那么解释器会先执行小括号中的子表达式
代码示例
python
a = 20
b = 2
c = 15
result_01 = (a-b)+c
result_02 = a/b%c
result_03 = c**b*a
print(result_01,result_02,result_03)
运行结果
python
33 10.0 4500
2.7 总结
本章主要介绍了Python基础知识,包括代码格式、标识符和关键字、变量和数据类型、数字类型以及运算符。本章比较简单易学,希望大家在初学Python时,结合实训案例对该部分内容多加练习,为后期深入学习Python打好基础。
第三章:流程控制
程序中的语句默认自上而下顺序执行,但通过一些特定的语句可以更改语句的执行顺序,使之产生跳跃,回溯等,进而实现流程控制。Python中用于实现流程控制的特定语句分为条件语句,循环语句和跳转语句。
3.1 条件语句
现实生活中,大家在12306网站购票时需要先验证身份,验证通过后可进入购票页面,验证失败则需重新验证。在代码编写工作中,大家可以使用条件语句为程序增设条件,使程序产生分支,进而有选择地执行不同的语句。
3.1.1 if语句
if语句由关键字if、判断条件和冒号组成,if语句和从属于该语句的代码段可组成选择结构。
python
if 条件表达式:
代码块
执行if语句时,若if语句的判断条件成立(判断条件的布尔值为True),执行之后的代码段;若if语句的判断条件不成立(判断条件的布尔值为False),跳出选择结构,继续向下执行。

某中学上周进行英语模拟考试,考试成绩不低于60分的学生为"合格",假设小明的考试成绩为88分,输出小明的成绩评估结果。
代码示例
python
score = 88
if score >= 60:
print("考试及格")
运行结果
python
考试及格
3.1.2 if-else语句
一些场景不仅需要处理满足条件的情况,也需要对不满足条件的情况做特殊处理。因此,Python提供了可以同时处理满足和不满足条件的if-else语句。
python
if 判断条件:
代码块1
else:
代码段2
执行if-else语句时,若判断条件成立,执行if语句之后的代码段1;若判断条件不成立,执行else语句之后的代码段2。

代码示例
python
score = 50
if score >= 60:
print("考试及格")
else:
print("考试不及格")
运行结果 (可以修改成绩,两次进行结果比较)
python
考试不及格
3.1.3 if-elif-else语句
Python除了提供单分支和双分支条件语句外,还提供多分支条件语句if-elif-else。多分支条件语句用于处理单分支和双分支无法处理的情况。
python
if 判断条件1:
代码段1
elif 判断条件2:
代码段2
elif 判断条件3:
代码段3
...
else:
代码段n
执行if-elif-else语句时,若if条件成立,执行if语句之后的代码段1;若if条件不成立,判断elif语句的判断条件2:条件2成立则执行elif语句之后的代码段2,否则继续向下执行。以此类推,直至所有的判断条件均不成立,执行else语句之后的代码段。

代码示例
python
score = 84
if score>=85:
print("优秀")
elif 75 <= score <85:
print("良好")
elif 60 <= score <75:
print("合格")
else:
print("不合格")
运行结果
python
良好
3.1.4 if嵌套
大家在某些火车站乘坐高铁出行时需要历经检票和安检两道程序:检票符合条件后方可进入安检程序,安检符合条件后方可进站乘坐列车。这个场景中虽然涉及两个判断条件,但这两个条件并非选择关系,而是嵌套关系:先判断外层条件,条件满足后才去判断内层条件;两层条件都满足时才执行内层的操作。
Python中通过if嵌套可以实现程序中条件语句的嵌套逻辑。
python
if 判断条件1: # 外层条件
代码段1
if 判断条件2: # 内层条件
代码段2
...
执行if嵌套时,若外层判断条件(判断条件1)的值为True,执行代码段1,并对内层判断条件(判断条件2)进行判断:若判断条件2的值为True,则执行代码段2,否则跳出内层条件结构,顺序执行外层条件结构中内层条件结构之后的代码;若外层判断条件的值为False,直接跳过条件语句,既不执行代码段1,也不执行内层的条件结构。

案例:1年有12个月份,每个月的总天数具有一定的规律,1月,3月,5月,7月,8月,10月,12月有31天,4月,6月,9月,11月有30天;2月的情况稍微复杂些,闰年的2月有29天,平年的2月有28天。本示例要求根据年份和月份计算当月的天数。
代码示
python
year= int(input('Enter your year: '))
month = int(input('Enter your month: '))
if month in [1,3,5,7,8,10,12]:
print('月份天数:',31)
elif month in [4,6,9,11]:
print('月份天数',30)
elif month in [2]:
if year%4==0 and year%100!=0 or year%400==0:
print('月份天数 :',29)
else:
print('月份天数:',28)
运行结果
python
Enter your year: 2004
Enter your month: 2
月份天数 : 29
扩展:isdigit()判断输入的字符串是否是数字,如果是返回True,否则为False
案例:输入成绩判断优秀,良好,合格和不合格,如果输入超出范围的值或者字符,提示输入有误重新输入
python
score = input('请输入成绩:')
if score.isdigit() and 0<=float(score)<=100:
score=float(score)
if score >= 90:
print('优秀')
elif 75<=score<90:
print('良好')
elif 60<=score<75:
print('合格')
else:
print('不合格')
else:
print('输入有误请重新输入!')
3.2 课堂练习
3.2.1 猜数字
猜数字由两个人参与,一个人设置一个数字,一个人猜数字,当猜数字的人说出一个数字,由出数字的人告知是否猜中:若猜测的数字大于设置的数字,出数字的人提示"很遗憾,你猜大了";若猜测的数字小于设置的数字时,出数字的人提示"很遗憾,你猜小了";若猜数字的人在规定的次数内猜中设置的数字,出数字的人提示"恭喜,猜数成功"。
本实例要求编写代码,实现遵循上述规则的猜数字程序。
python
import random
count = 0
a = random.randint(1,100)
while True:
b = int(input('请输入1-100的数字:'))
if b > a :
print('猜错了,数值偏大')
count = count + 1
elif b < a :
print('猜错了,数值偏小')
count = count + 1
else:
print('猜对了!')
count = count + 1
break
print('猜数次数:',count)
运行结果
python
请输入1-100的数字:30
猜错了,数值偏小
请输入1-100的数字:50
猜错了,数值偏大
请输入1-100的数字:40
猜对了!
猜数次数: 3
3.3 循环语句
现实生活中存在很多重复的事情,例如,地球一直围绕太阳不停地旋转;月球始终围绕地球旋转;每年都会经历司机的更替;每天都是从白天到黑夜的过程,程序开发中同样可能出现代码的重复执行。Python提供循环语句,使用该语句能以简洁的代码实现重复操作。
3.3.1 while语句
while语句一般用于实现条件循环,该语句由关键字while、循环条件和冒号组成,while语句和从属于该语句的代码段组成循环结构。
python
while 条件表达式:
代码块

python
i=1
result=0
while i<=10:
result+=i
i+=1
print(result)
运行结果
python
55
无限循环
python
while True:
print("无限循环")
3.3.2 for语句
for语句一般用于实现遍历循环。遍历指逐一访问目标对象中的数据,例如逐个访问字符串中的字符;遍历循环指在循环中完成对目标对象的遍历。
python
for 临时变量 in 目标对象:
代码块
案例:使用循环遍历字符串"Python"的每个字符
代码示例
python
for word in "Python":
print(word)
运行结果
python
P
y
t
h
o
n
for语句可以与range()函数搭配,range()函数可以生成一个由整数组成的可迭代对象
代码示例
python
for i in range(5):
print(i)
运行结果
python
0
1
2
3
4
3.3.3 循环嵌套
循环之间可以互相嵌套,进而实现更为复杂的逻辑。循环嵌套按不同的循环语句可以划分为while循环嵌套和for循环嵌套。
1)while循环嵌套
while循环嵌套是指while语句中嵌套了while或for语句。以while语句中嵌套while语句为例,while循环嵌套的语法格式如下:
python
while 循环条件1: # 外层循环
代码段1
while 循环条件2: # 内层循环
代码段2
......
执行while循环嵌套时,若外层循环条件1的值为True,则执行代码段1,并对内层循环的循环条件2进行判断,若循环条件2的值为True则执行代码段2,若其值为False则结束内层循环。内层循环执行完毕后继续判断外层循环的循环条件1,如此反复,直至循环条件1的值为False时结束外层循环。
案例:打印"*"组成的直角三角形
python
i=1
while i<6:
j=0
while j<i:
print("*",end='')
j+=1
print()
i+=1
运行结果
python
*
**
***
****
*****
2)for循环嵌套
for循环嵌套是指for语句中嵌套了while或for语句。以for语句中嵌套for语句为例,for循环嵌套的语法格式如下:
python
for 临时变量 in 目标对象: # 外层循环
代码段1
for 临时变量 in 目标对象: # 内层循环
代码段2
......
执行for循环嵌套时,程序首先会访问外层循环中目标对象的首个元素,执行代码段1,访问内层循环目标对象的首个元素、执行代码段2,然后访问内层循环中的下一个元素,执行代码段2,如此往复,直至访问完内层循环的目标对象后结束内层循环,转而继续访问外层循环中的下一个元素,访问完外层循环的目标对象后结束外层循环。因此外层循环每执行一次,都会执行一轮内层循环。
案例:打印"*"组成的直角三角形
python
for i in range(1,6):
for j in range(i):
print('*',end=' ')
print()
运行结果
python
*
* *
* * *
* * * *
* * * * *
案例:打印"*"组成的倒直角三角形
python
for i in range(1,6):
for j in range(6-i):
print('*',end=' ')
print()
运行结果
python
* * * * *
* * * *
* * *
* *
*
案例:打印"*"组成的等腰三角形
python
for i in range(5,0,-1):
for k in range(i):
print(" ",end=" ")
for j in range(2*(6-i)-1):
print('*',end=" ")
print()
运行结果
python
*
* * *
* * * * *
* * * * * * *
* * * * * * * * *
案例:打印"*"组成的菱形
python
for i in range(5,0,-1):
for k in range(i):
print(" ",end=" ")
for j in range(2*(6-i)-1):
print('*',end=" ")
print()
for i in range(0,6):
for k in range(i):
print(" ",end=" ")
for j in range(2*(6-i)-1):
print('*',end=" ")
print()
运行结果
python
*
* * *
* * * * *
* * * * * * *
* * * * * * * * *
* * * * * * * * * * *
* * * * * * * * *
* * * * * * *
* * * * *
* * *
*
3.4 实训案例
3.4.1 逢七拍手游戏
逢7拍手游戏的规则是:从1开始顺序数数,数到有7或者包含7的倍数的时候拍手。本实例要求编写代码,模拟实现逢七拍手游戏,实现输出100以内需要拍手的数字的程序。
python
for i in range(100):
if i % 7 == 0 or '7' in str(i):
print('*', end=' ')
else:
print(i, end=' ')
运行结果
python
* 1 2 3 4 5 6 * 8 9 10 11 12 13 * 15 16 * 18 19 20 * 22 23 24 25 26 * * 29 30 31 32 33 34 * 36 * 38 39 40 41 * 43 44 45 46 * 48 * 50 51 52 53 54 55 * * 58 59 60 61 62 * 64 65 66 * 68 69 * * * * * * * * * * 80 81 82 83 * 85 86 * 88 89 90 * 92 93 94 95 96 * * 99
进程已结束,退出代码为 0
3.5 跳转语句
循环语句在条件满足的情况下会一直执行,但在某些情况下需要跳出循环,例如,实现音乐播放器循环模式的切歌功能等。Python提供了控制循环的跳转语句:break和continue。
3.5.1 break语句
break语句用于结束循环,若循环中使用了break语句,程序执行到break语句时会结束循环;若循环嵌套使用了break语句,程序执行到break语句时会结束本层循环。
案例:在使用for循环遍历字符串'Python'时,遍历到字符'o'就使用break语句结束循环。
示例代码
python
for i in 'python':
if i == 'o':
break
print(i)
运行结果
python
p
y
t
h
3.5.2 continue 语句
continue语句用于在满足条件的情况下跳出本次循环,该语句通常也与if语句配合使用。
案例:在使用for循环遍历字符串'Python'时,遍历到字符'o'就使用continue语句跳出本次循环。
示例代码
python
for i in 'python':
if i == 'o':
continue
print(i)
运行结果
python
p
y
t
h
n
3.6 本章小结
本章主要讲解了流程控制的相关知识,包括条件语句、循环语句、跳转语句,并结合众多实训案例演示了如何利用各种语句实现流程控制。
通过本章的学习,希望能掌握程序的执行流程和流程控制语句的用法,为后续的学习打好扎实的基础。
第四章:字符串
在使用浏览器登录网站时需要先输入账户和密码,之后浏览器将账号和密码传递给服务器,服务器把本次输入的密码与之前保存的密码进行对比,两处密码相同则认为本次输入的密码正确,否则认为密码错误,在以上场景中,用户的账号和密码都需要被存储,但用户的信息有字母、数字和字符组成,这些类型就是字符串。
4.1 字符串介绍
字符串是由字母、符号或者数字组成的字符序列。
Python支持使用单引号、双引号和三引号定义字符串,其中单引号和双引号通常用于定义单行字符串,三引号通常用于定义多行字符串。
代码示例
python
print('使用单引号在一行输出')
print("使用双引号在一行输出")
print("""使用三引号
进行多行输出""")
运行结果
python
使用单引号在一行输出
使用双引号在一行输出
使用三引号
进行多行输出
注意:当字符串中有相同类型引号出现,就需要变更外部的引号类型来避免语法错误
python
print("let's go ")
python
print("""let's go""")
除此以外,Python使用反斜杠"\"转义。例如,在字符串中的引号前添加"\",此时Python解释器会将"\"之后的引号视为解释为一个普通字符,而非特殊符号。
python
print('let\'s go')
print('E:\\python\\code')
运行结果
python
let's go
E:\python\code
扩展:一些普通字符与反斜杠组合后将失去原有意义,产生新的含义。类似这样的由"\"和而成的、具有特殊意义的字符就是转义字符。转移字符通常用于表示一些无法显示的字符,例如空格、回车等。

代码示例
python
for i in range(1,10):
for j in range(1,i+1):
print("%d x %d = %d" %(i,j,i*j),end="\t")
print()
运行结果
python
1 x 1 = 1
2 x 1 = 2 2 x 2 = 4
3 x 1 = 3 3 x 2 = 6 3 x 3 = 9
4 x 1 = 4 4 x 2 = 8 4 x 3 = 12 4 x 4 = 16
5 x 1 = 5 5 x 2 = 10 5 x 3 = 15 5 x 4 = 20 5 x 5 = 25
6 x 1 = 6 6 x 2 = 12 6 x 3 = 18 6 x 4 = 24 6 x 5 = 30 6 x 6 = 36
7 x 1 = 7 7 x 2 = 14 7 x 3 = 21 7 x 4 = 28 7 x 5 = 35 7 x 6 = 42 7 x 7 = 49
8 x 1 = 8 8 x 2 = 16 8 x 3 = 24 8 x 4 = 32 8 x 5 = 40 8 x 6 = 48 8 x 7 = 56 8 x 8 = 64
9 x 1 = 9 9 x 2 = 18 9 x 3 = 27 9 x 4 = 36 9 x 5 = 45 9 x 6 = 54 9 x 7 = 63 9 x 8 = 72 9 x 9 = 81
在一段字符串中如果包含多个转义字符,但又不希望转义字符产生作用,此时可以使用原始字符串。原始字符串即在字符串开始的引号之前添加r或R,使它成为原始字符串。
python
print(r'转义字符:\n表示转行;\r表示回车;\b表示退格')
4.2 格式化字符串
格式化字符串是将制定的字符串转化为想要的格式。Python中有三种格式化字符串的方式:使用%格式化、使用format()方法格式化和使用f-string格式化。
4.2.1 使用%格式化字符串
字符串具有一种特殊的内置操作,它可以使用%进行格式化。
python
format % values
format:表示一个字符串,该字符串中包含单个或多个为真实数据占位的格式符;
values:表示单个或多个真实数据;
%:代表执行格式化操作,即将format中的格式符替换为values。
不同的格式符为不同类型的数据预留位置,常见的格式符如下所示。

下面使用%对字符串进行格式化,代码示例
python
name = 'dyx'
info = '姓名:%s'
print(info % name)
运行结果
python
姓名:dyx
注意:如果被替换的数据类型不符合格式符中制定的数据类型,那么程序会出现类型异常错误!
多个格式符进行格式化,代码示例
python
name = 'dyx'
age = 21
info = '姓名:%s,年龄:%d'
print(info % (name, age))
运行结果
python
姓名:dyx,年龄:21
4.2.2 使用format()方法格式化字符串
虽然使用%可以对字符串进行格式化,但是这种方式并不是很直观,一旦开发人员遗漏了替换数据或选择了不匹配的格式符,就会导致字符串格式化失败。为了能更直观、便捷地格式化字符串,Python为字符串提供了一个格式化方法format()。
python
str.format(values)
str:表示需要被格式化的字符串,字符串中包含单个或多个为真实数据占位的符号{};
values:表示单个或多个待替换的真实数据,多个数据之间以逗号分隔。
代码示例
python
name = 'dyx'
info = '姓名:{}'
print(info.format(name))
运行结果
python
姓名:dyx
以上输出结果可以看出,字符串中的{}替换为变量name存储的数据'tom',使用format{}方法格式化字符串时,无须关注替换数据的类型。
字符串中可以包含多个{}符号,字符串被格式化时Python解释器默认会按从左到右的顺序将{}逐个替换为真实的数据。
python
name = 'dyx'
age = 21
info = '姓名:{},年龄:{}'
print(info.format(name, age))
运行结果
python
姓名:dyx,年龄:21
字符串的{}中可以明确地指定编号,格式化字符串时解释器会按编号取values中相应位置的值替换{},values中元素的索引从0开始。
python
name = 'dyx'
age = 21
info = '姓名:{0},年龄:{1}'
print(info.format(name, age))
运行结果
python
姓名:dyx,年龄:21
字符串的{}中可以指定名称,字符串在被格式化时Python解释器会按真实数据绑定的名称替换{}中的变量。
python
name = 'dyx'
age = 21
info = '姓名:{a},年龄:{b}'
print(info.format(a=name, b=age))
运行结果
python
姓名:dyx,年龄:21
字符串中的{}可以指定替换的浮点型数据的精度,浮点型数据在被格式化时会按指定的精度进行替换。
python
r = int(input('请输入圆的半径:'))
import math
pi = math.pi
s = pi * r**2
info = '半径:{a},π:{b:.3},面积:{c:.4}'
print(info.format(a = r,b = pi,c = s))
运行结果
python
请输入圆的半径:5
半径:5,π:3.14,面积:78.54
4.2.3 使用f-string格式化字符串
f-string提供了一种更为简洁的格式化字符串的方式,它在形式上以f或F引领字符串,在字符串中使用"{变量名}"标明被替换的真实数据和其所在位置。
python
f('{变量名}') 或者 F('{变量名}')
代码示例
python
name = 'dyx'
age = 21
print(f'姓名:{name} , 年龄:{age}')
运行结果
python
姓名:dyx , 年龄:21
4.3 实训案例
4.3.1 进制转换
十进制是实际应用中最常使用的计数方式,除此之外,还可以采用二进制、八进制或十六进制计数。
本实例要求编写代码,实现将用户输入的十进制整数转换为指定进制的功能。
4.4字符串的常见操作
字符串的操作在实际应用中非常常见,Python内置了很多字符串方法,使用这些方法可以轻松实现字符串的查找,替换,拼接,大小写转换等操作。但需要注意的是,字符串一但创建便不可修改;若对字符串进行修改,就会生成新的字符串。
4.4.1 字符串的查找与替换
1)查找
Python中提供了实现字符串查找操作的find()方法,该方法可查找字符串中是否包含子串,若包含则返回子串首次出现的位置,否则返回-1。
语法格式
python
str.find(sub[, start[, end]])
sub:指定要查找的子串。
start:开始索引,默认为0。
end:结束索引,默认为字符串的长度。
代码示例
python
word = 'life is sort , i use python'
print(word)
print(word.find('use'))
运行结果
python
life is sort , i use python
17
2)替换
Python中提供了实现字符串替换操作的replace()方法,该方法可将当前字符串中的指定子串替换成新的子串,并返回替换后的新字符串。
语法格式
python
str.replace(old, new[, count])
old:被替换的旧子串。
new:替换旧子串的新子串。
count:表示替换旧字符串的次数。
代码示例
python
word = '八百标兵奔北坡,北坡炮兵并排跑。炮兵怕把标兵碰,标兵怕碰炮兵炮'
new = word.replace('标兵','战士')
print(new)
运行结果
python
八百战士奔北坡,北坡炮兵并排跑。炮兵怕把战士碰,战士怕碰炮兵炮
指定替换次数,代码示例
python
word = '八百标兵奔北坡,北坡炮兵并排跑。炮兵怕把标兵碰,标兵怕碰炮兵炮'
new = word.replace('标兵','战士',1)
print(new)
运行结果
python
八百战士奔北坡,北坡炮兵并排跑。炮兵怕把标兵碰,标兵怕碰炮兵炮
4.4.2 字符串的分割与拼接
字符串的分割与拼接功能是处理文本数据时常用的功能。
1)字符串分割
split()方法可以按照指定分隔符对字符串进行分割,该方法会返回由分割后的子串组成的列表。
语法格式
python
str.split(sep=None, maxsplit=-1)
sep:分隔符,默认为空字符。
maxsplit:分割次数,默认值为-1,表示不限制分割次数。
代码示例
python
word = '八百标兵奔北坡 北坡炮兵并排跑 炮兵怕把标兵碰 标兵怕碰炮兵炮'
#以空格作为分隔符
print(word.split())
#以'兵'作为分隔符
print(word.split('兵'))
#以'兵'作为分隔符,并分割2次
print(word.split('兵',2))
运行结果
python
['八百标兵奔北坡', '北坡炮兵并排跑', '炮兵怕把标兵碰', '标兵怕碰炮兵炮']
['八百标', '奔北坡 北坡炮', '并排跑 炮', '怕把标', '碰 标', '怕碰炮', '炮']
['八百标', '奔北坡 北坡炮', '并排跑 炮兵怕把标兵碰 标兵怕碰炮兵炮']
2)字符串拼接
join()方法使用指定的字符连接字符串并生成一个新的字符串。join()方法的语法格式如下。
语法格式
python
str.join(iterable)
iterable:表示连接字符串的字符。
使用'-'连接字符串Python中的各个字符,代码示例
python
symbol = '-'
word = 'python'
print(symbol.join(word))
运行结果
python
p-y-t-h-o-n
Python中还可以使用运算符'+'和'*'连接字符串,代码示例
python
start = 'pyt'
end = 'hon'
print(start + end)
print(end*3)
运行结果
python
python
honhonhon
4.4.3 删除字符串的指定字符
字符串中可能会包含一些无用的字符(如空格),在处理字符串之前往往需要先删除这些无用的字符。
Python中的strip()、lstrip()和rstrip()方法可以删除字符串中的指定字符。

分别移除字符串' 人生苦短,我用Python !'中头部和尾部、头部、尾部的空格,代码示例
python
word = '*life is short, i use python*'
print(word)
#删除字符串头部和尾部*
print(word.strip('*'))
#删除字符串头部*
print(word.lstrip('*'))
#删除字符串尾部*
print(word.rstrip('*'))
运行结果
python
*life is short, i use python*
life is short, i use python
life is short, i use python*
*life is short, i use python
4.4.4 字符串大小写转换
在特定情况下会对英文单词的大小写形式进行要求,表示特殊简称时全字母大写,如CBA;表示月份、周日、节假日时每个单词首字母大写,如Monday。Python中支持字母大小写转换的方法有upper()、lower()、capitalize()和title()。

对字符串'Life is short. I use Python'进行大小写转换操作,示例代码
python
word = 'life is short, i use python'
#转换成大写字母
print(word.upper())
#转换成小写字母
print(word.lower())
#转换字符串首字母大写
print(word.capitalize())
#转换每个单词首字母大写
print(word.title())
运行结果
python
LIFE IS SHORT, I USE PYTHON
life is short, i use python
Life is short, i use python
Life Is Short, I Use Python
4.4.5 字符串对其
在使用Word处理文档时可能需要对文档的格式进行调整,如标题居中显示、左对齐、右对齐等。
Python提供了center()、ljust()、rjust()这3个方法来设置字符串的对齐方式。

对字符串'hello world'进行对齐操作,代码示例
python
string = 'hello world'
print(len(string))
#居中显示
print(string.center(15,'-'))
#左对齐显示
print(string.ljust(15,'-'))
#右对齐显示
print(string.rjust(15,'-'))
运行结果
python
11
--hello world--
hello world----
----hello world
4.5 实例案例
4.5.1 敏感词替换
敏感词通常是指带有敏感政治倾向、暴力倾向、不健康色彩的词或不文明的词语,对于文章中出现的敏感词常用的处理方法是使用特殊符号(如"*")对敏感词进行替换。
本实例要求编写代码,实现具有替换敏感词功能的程序。
4.6 本章小结
本章主要讲解了Python字符串的相关知识,包括什么是字符串、格式化字符串、字符串的常见操作,并结合实训案例演示了字符串的使用。
通过本章的学习,希望读者能够掌握字符串的使用。
第五章:组合数据类型
在大数据时代,程序中不仅要处理数字、字符串这些基础数据类型的数据,还需要处理混合数据。为此,Python定义了可以表示混合数据的组合数据类型。使用组合数据类型定义和记录数据,不仅能使数据表示得更为清晰,也能极大简化程序员的开发工作,提升开发效率。
5.1 认识组合数据类型
组合数据类型可将多个相同类型或不同类型的数据组织为一个整体,根据数据组织方式的不同,Python的组合数据类型可分成三类:序列类型、集合类型和映射类型。
1)序列类型
Python中常用的序列类型有字符串(str)、列表(list)和元组(tuple)。
Python中的序列支持双向索引:正向递增索引和反向递减索引。正向递增索引从左向右依次递增,第一个元素的索引为0,第二个元素的索引为1,以此类推;反向递减索引从右向左依次递减,从右数第一个元素的索引为-1,第二个元素的索引为-2,以此类推。

2)集合类型
Python集合具备确定性、互异性和无序性三个特性。
Python要求放入集合中的元素必须是不可变类型,Python中的整型、浮点型、字符串类型和元组属于不可变类型,列表、字典及集合本身都属于可变的数据类型。
-
确定性:给定一个集合,那么任何一个元素是否在集合中就确定了。
-
互异性:集合中的元素互不相同。
-
无序性:集合中的元素没有顺序,顺序不同但元素相同的集合可视为同一集合。
3)映射类型
映射类型以键值对的形式存储元素,键值对中的键与值之间存在映射关系。
字典(dict)是Python唯一的内置映射类型,字典的键必须遵守以下两个原则:
-
每个键只能对应一个值,不允许同一个键在字典中重复出现。
-
字典中的键是不可变类型。

5.2 列表
Python利用内存中的一段连续空间存储列表。列表是Python中最灵活的序列类型,它没有长度限制,可以包含任意元素。开发人员可以自由的对列表中的元素进行各种操作包括访问、添加、排序、删除。
5.2.1 创建列表
Python列表的创建方式非常简单,既可以直接使用中括号"[]"创建,也可以使用内置的list()函数快速创建。
1)使用中括号"[]"可以创建列表,示例代码如下:
python
list_one = []
print(type(list_one))
运行结果
python
<class 'list'>
\]中包括的是列表元素,列表元素可以是整型、浮点型、字符串等基本类型,也可以是列表、元组、字典等组合类型,还可以是其他自定义类型;列表元素的类型可以相同也可以不同;列表中的元素使用","分隔。
```python
list_two = ['p', 'y', 't', 'h', 'o', 'n']
```
2)使用list()函数创建列表
list()函数接收一个可迭代类型的数据,返回一个列表。
```python
list_two = list()
print(type(list_two))
```
运行结果
```python