目录

  • 1 Python语言基础
    • 1.1 本章导学
    • 1.2 Python概述
    • 1.3 人机交互
    • 1.4 对象与变量
    • 1.5 编码与命名规范
    • 1.6 注释
    • 1.7 实践指导
      • 1.7.1 Python解释器的安装
      • 1.7.2 Pycharm的安装与基本使用
    • 1.8 项目实训
      • 1.8.1 日期格式化输出
      • 1.8.2 欢迎入学
      • 1.8.3 整数四则运算
    • 1.9 作业
    • 1.10 编程训练
  • 2 数值类型与数值运算
    • 2.1 本章导学
    • 2.2 数值类型
    • 2.3 数值类型转换
    • 2.4 数值运算
    • 2.5 常用数学运算函数
    • 2.6 Math模块及其应用
    • 2.7 实践指导
      • 2.7.1 计算矩形面积
      • 2.7.2 一元二次方程求解
      • 2.7.3 换披萨
    • 2.8 作业
    • 2.9 编程训练
    • 2.10 项目实训
      • 2.10.1 计算弓形的面积
      • 2.10.2 地球数据计算
      • 2.10.3 学费计算
  • 3 流程控制
    • 3.1 本章导学
    • 3.2 流程控制
    • 3.3 常用运算
      • 3.3.1 真值测试
      • 3.3.2 比较运算
      • 3.3.3 成员运算
      • 3.3.4 布尔运算
      • 3.3.5 身份运算
    • 3.4 循环结构
      • 3.4.1 Range
      • 3.4.2 for 循环
        • 3.4.2.1 for循环(上)
        • 3.4.2.2 for循环实例
        • 3.4.2.3 for循环(下)
      • 3.4.3 while循环
    • 3.5 分支结构
    • 3.6 流程跳转
    • 3.7 else子句
    • 3.8 异常处理
    • 3.9 实践指导
      • 3.9.1 兔子繁殖问题
      • 3.9.2 九九乘法表
      • 3.9.3 百钱百鸡
      • 3.9.4 计算圆周率
      • 3.9.5 百分制转五分制
      • 3.9.6 输出与3无关的数
      • 3.9.7 自身以外的最大因数
      • 3.9.8 判断素数
      • 3.9.9 百钱百鸡进阶
      • 3.9.10 最小公倍数
      • 3.9.11 最大素数
      • 3.9.12 四则运算
      • 3.9.13 正整数A+B
    • 3.10 作业
    • 3.11 编程训练
    • 3.12 项目实训
      • 3.12.1 古代数学问题
      • 3.12.2 个人所得税计算器
      • 3.12.3 计算圆周率
  • 4 函数与模块化编程
    • 4.1 本章导学
    • 4.2 函数定义、调用与返回值
    • 4.3 参数传递
    • 4.4 变量作用域
    • 4.5 匿名函数
    • 4.6 递归函数
    • 4.7 实践指导
      • 4.7.1 阶乘函数定义
      • 4.7.2 素数判定函数
      • 4.7.3 幂函数的定义
      • 4.7.4 简单计算器
      • 4.7.5 回文素数
    • 4.8 作业
    • 4.9 编程训练
    • 4.10 项目实训
      • 4.10.1 来自计算机的问候
      • 4.10.2 自定义数学函数模块
      • 4.10.3 神奇的素数
  • 5 字符串
    • 5.1 本章导学
    • 5.2 序列通用操作
      • 5.2.1 字符串通用操作
      • 5.2.2 索引
      • 5.2.3 切片
      • 5.2.4 序列拼接与重复
      • 5.2.5 成员测试
    • 5.3 字符串创建与字符常量
    • 5.4 字符串与文件遍历
    • 5.5 常用字符串处理方法
    • 5.6 字符串格式化
    • 5.7 random模块及应用
    • 5.8 实践指导
      • 5.8.1 字符串索引百分制转五分制
      • 5.8.2 回文字符串判断
      • 5.8.3 输出身份信息
      • 5.8.4 约瑟夫环问题
      • 5.8.5 温度转换
      • 5.8.6 字符分类统计
      • 5.8.7 凯撒加密
      • 5.8.8 遍历输出文件
      • 5.8.9 隐私数据处理
      • 5.8.10 猜数游戏
      • 5.8.11 模拟验证码
      • 5.8.12 模拟产生微软序列号
    • 5.9 作业
    • 5.10 编程训练
    • 5.11 项目实训
      • 5.11.1 信息加密与解密
      • 5.11.2 文本分析
      • 5.11.3 日期分析处理
      • 5.11.4 单词猎手游戏
  • 6 序列类型
    • 6.1 本章导学
    • 6.2 元组
    • 6.3 列表
      • 6.3.1 列表的创建
      • 6.3.2 列表的更新
      • 6.3.3 列表元素的删除
      • 6.3.4 列表排序
      • 6.3.5 列表赋值与复制
      • 6.3.6 列表推导式
      • 6.3.7 列表常用内置函数
      • 6.3.8 列表嵌套及排序
    • 6.4 实践指导
      • 6.4.1 成绩统计分析
      • 6.4.2 二维列表的排序
      • 6.4.3 自幂数
      • 6.4.4 蒙特卡洛模拟圆周率
      • 6.4.5 文件中数据统计分析
      • 6.4.6 读取Excel文件中的证券数据
      • 6.4.7 读取csv文件中的数据
      • 6.4.8 读取SQLite数据库中的数据
    • 6.5 作业
    • 6.6 编程训练
    • 6.7 项目实训
      • 6.7.1 分配学号
      • 6.7.2 葡萄酒评论分析报告
      • 6.7.3 模拟生成身份信息并查验身份
  • 7 集合与映射类型
    • 7.1 本章导学
    • 7.2 集合类型
      • 7.2.1 集合创建
      • 7.2.2 集合操作
      • 7.2.3 集合运算
    • 7.3 映射类型
      • 7.3.1 字典的创建
      • 7.3.2 获取字典数据
      • 7.3.3 修改字典值
      • 7.3.4 字典排序
    • 7.4 实践指导
      • 7.4.1 奇特的四位数
      • 7.4.2 特殊的生日
      • 7.4.3 二进制IP转十进制
      • 7.4.4 手机销售分析
      • 7.4.5 通讯录的查询与更新
      • 7.4.6 查询首都
      • 7.4.7 词频统计
    • 7.5 作业
    • 7.6 编程训练
    • 7.7 项目实训
      • 7.7.1 大学排行榜分析
      • 7.7.2 简易英汉字典
      • 7.7.3 股票分析
  • 8 文件操作
    • 8.1 本章导学
    • 8.2 文件概述
    • 8.3 文件打开与关闭
    • 8.4 文件读写操作
    • 8.5 文件的应用
      • 8.5.1 CSV与JSON文件
      • 8.5.2 文件与文件夹操作
    • 8.6 NumPy文件操作
    • 8.7 实践指导
      • 8.7.1 读取文件
      • 8.7.2 读文件统计成绩
      • 8.7.3 pandas读文件统计成绩
      • 8.7.4 csv转json
      • 8.7.5 json转csv
      • 8.7.6 csv与json互转-pandas
      • 8.7.7 从多文件中提取数据汇总
      • 8.7.8 numpy读写文件
      • 8.7.9 numpy数据分析
      • 8.7.10 pandas数据分析
    • 8.8 作业
    • 8.9 编程训练
    • 8.10 项目实训
      • 8.10.1 ​词频统计
      • 8.10.2 批量文件处理与格式转换
  • 9 数据可视化
    • 9.1 本章导学
    • 9.2 基本线型图
    • 9.3 函数绘图
    • 9.4 数据绘图
      • 9.4.1 读两列数据绘图
      • 9.4.2 读多列数据绘图
      • 9.4.3 二列数据绘制多条曲线
    • 9.5 作业
    • 9.6 编程训练
    • 9.7 项目实训
      • 9.7.1 ​科学实验数据可视化
      • 9.7.2 金融数据可视化
      • 9.7.3 中英文词云
  • 10 实践与训练资源
    • 10.1 在线编程训练
    • 10.2 教师资源
本章导学


第6章 序列类型操作

Python中应用最广泛的数据类型是序列,包括元组(tuple)、列表(list)、Range以及文本序列(字符串),其中列表属于可变数据类型,其他几种属于不可变数据类型。

字符串和Range类型在前面已经做过介绍,本章主要学习元组和列表的概念及其应用方法。详细讲授列表的创建、更新、删除、排序的方法,通过实例讲解列表的赋值与复制、列表推导式、列表的嵌套的概念与应用。简单介绍在序列操作中广泛应用的map()zip()enumerate()等内置函数的概念与应用。通过实例讲解利用pandas库读取Excel文件、文本文件和数据库中的数据并将数据转为列表类型,以及利用本章所学知识进行进一步处理的方法。

【本章要点】

●元组的概念与应用

tuple([iterable])
使用一对圆括号来表示空元组: ()
使用一个后缀的逗号来表示单元组: a, 或 (a,)
使用以逗号分隔的多个项: a, b, c or (a, b, c)
使用内置的 tuple(): tuple() 或 tuple(iterable)
请注意决定生成元组的其实是逗号而不是圆括号, 圆括号只是可选的

●列表的定义

list([iterable])

●列表的创建、更新和删除

可以用多种方式构建列表:
使用一对方括号来表示空列表: []
使用方括号,其中的项以逗号分隔: [a], [a, b, c]
使用列表推导式: [x for x in iterable]
使用类型的构造器: list() 或 list(iterable)

●列表的排序

ls.sort(*, key=None, reverse=False)
此方法会对列表进行原地排序,只使用 < 来进行各项间比较
key 指定带有一个参数的函数,用于从每个列表元素中提取比较键
reverse 为一个布尔值。 如果设为 True,则每个列表元素将按反向顺序比较进行排序

sorted(iterable)

●列表推导式

[表达式 for x in list]


●内置函数map()、zip()和enumerate()

enumerate(iterable, start=0)返回一个枚举对象。iterable 必须是一个序列,或 iterator,或其他支持迭代的对象
map(function, iterable, ...)返回一个将 function 应用于 iterable 中每一项并输出其结果的迭代器
zip(*iterables, strict=False)在多个迭代器上并行迭代,从每个迭代器返回一个数据项组成元组


Excel文件中的数据转列表

pd.read_excel(io, sheet_name=0, header=0, names=None,
              usecols=None, squeeze=False, converters=None,
              skiprows=None, nrows=None, skipfooter=0)
1.io:Excel的存储路径和文件名
2.sheet_name:要读取的工作表名称,默认读取第一个工作表
3.header:用哪一行作列名,默认为0
4.names:自定义最终的列名,names的长度必须和Excel列长度一致
5.index_col:用作索引的列
6.usecols:需要读取哪些列。可以用整型 [0,2,3];列名如“A:C,E” = “A, B, C, E”,
7.squeeze:当数据仅包含一列且squeeze为True时,返回Series,反之返回DataFrame。
8.converters:强制规定列数据类型,主要用途是保留以文本形式存储的数字。
pandas默认将文本类的数据读取为整型,converters 参数可以指定各列数据的类型,如converters = {'出货量':float,'月份':str }, 将“出货量”列数据类型规定为浮点数,“月份”列规定为字符串类型。
9.skiprows:跳过特定行。skiprows= n 跳过前n行;skiprows = [a, b, c] 跳过第a+1,b+1,c+1行
10.nrows:需要读取的行数,nrows= n 读取前n行。
11. skipfooter: 跳过末尾行数,skipfooter = n 跳过末尾的n行


import pandas as pd

data = pd.read_excel('6.6stock.xlsx')  # 读取数据为dataframe类型
title = data.columns.tolist()          # dataframe中标题转为列表类型
stock_lst = data.values.tolist()       # dataframe中数据转为列表类型
print('输出列表类型的数据:\n', [title] + stock_lst)  # 输出列表类型数据

文本文件中的数据转列表

pd.read_csv(filepath_or_buffer, sep='\t', delimiter=None,
            header='infer', names=None, engine=None,
            encoding=None)
1. filepath_or_buffer:带路径文件名或URL,字符串类型
2. sep:分隔符,缺省值为'\t',当文本中的分隔符不是制表符时,可用sep=’分隔符’来指定
3.delimiter:参数sep的替代参数,缺省值为None。
4.header:整型或整型列表,用作列名的行号和数据的开头。
5.names:要使用的列名的列表,如果文件不包含标题行,则应显式传递header= None
6.engine:解析器引擎,值为'c'或'python'。c引擎速度更快,Python引擎功能更加完善
7.encoding:默认None,编码在读/写时用UTF(例如'utf-8')


import pandas as pd

score = pd.read_csv(filename)  # 读取数据为dataframe类型
title = score.columns.tolist()  # dataframe中标题转为列表类型
score_lst = score.values.tolist()  # dataframe数据转为列表类型

数据库中的数据转列表

from sqlalchemy import *
import pandas as pd

# 定义元信息,绑定到引擎,test.db为数据库名,./表示当前路径。
engine = create_engine('sqlite:///./test.db', echo=True)
metadata = MetaData(engine)  # 绑定元信息
pd.read_sql(sql, engine, index_col=None, coerce_float=True,
            params=None, parse_dates=None, columns=None,
            chunksize=None)


●文件中数据的读取与分析



本章课件