Python教程笔记(2)

Python教程

  • [5.1 列表详解](#5.1 列表详解)
    • [5.1.3 列表推导式](#5.1.3 列表推导式)
    • [5.1.4 嵌套的列表推导式](#5.1.4 嵌套的列表推导式)
  • [5.7 深入条件控制](#5.7 深入条件控制)
  • [6.1 模块详解](#6.1 模块详解)
  • [6.3 dir()](#6.3 dir())
  • [7.1 格式化字符串字面值](#7.1 格式化字符串字面值)
    • [7.1.3 手动格式化字符串](#7.1.3 手动格式化字符串)
  • [7.2 读写文件](#7.2 读写文件)

5.1 列表详解

  • Python 中所有可变数据结构返回值为None。
  • 实现队列最好用 collections.deque。

5.1.3 列表推导式

  • 列表推导式的方括号内包含以下内容:一个表达式,后面为一个 for 子句,然后,是零个或多个 for 或 if 子句。结果是由表达式依据 for 和 if 子句求值计算而得出一个新列表。

5.1.4 嵌套的列表推导式

  • zip() 返回元组的迭代器,其中第 i 个元组包含的是每个参数迭代器的第 i 个元素。不妨换一种方式认识 zip() :它会把行变成列,把列变成行。zip() 是延迟执行的:直至迭代时才会对元素进行处理。

  • 传给 zip() 的可迭代对象可能长度不同,Python 提供了三种不同的处理方案:

    • 默认情况下,zip() 在最短的迭代完成后停止。较长可迭代对象中的剩余项将被忽略,结果会裁切至最短可迭代对象的长度。
    • 通常 zip() 用于可迭代对象等长的情况下。这时建议用 strict=True 的选项。与默认行为不同,如果一个可迭代对象在其他几个之前被耗尽则会引发 ValueError。
    • 为了让所有的可迭代对象具有相同的长度,长度较短的可用常量进行填充。这可由 itertools.zip_longest() 来完成。
  • zip() 与 * 运算符相结合可以用来拆解一个列表

    python 复制代码
    >>>x = [1, 2, 3]
    >>>y = [4, 5, 6]
    >>>list(zip(x, y))
    [(1, 4), (2, 5), (3, 6)]
    >>>x2, y2 = zip(*zip(x, y))
    >>>x == list(x2) and y == list(y2)
    True

5.7 深入条件控制

  • not 的优先级最高, or 的优先级最低
  • 注意,Python 与 C 不同,在表达式内部赋值必须显式使用 海象运算符 :=。 这避免了 C 程序中常见的问题:要在表达式中写 == 时,却写成了 =。(python 3.8后)

6.1 模块详解

6.3 dir()

  • 内置函数 dir() 用于查找模块定义的名称。
  • 没有参数时,dir() 列出当前已定义的名称,它列出所有类型的名称:变量,模块,函数...。dir() 不会列出内置函数和变量的名称。这些内容的定义在标准模块 builtins 中。

7.1 格式化字符串字面值

python 复制代码
import math
#在 ':' 后传递整数,为该字段设置最小字符宽度,常用于列对齐
print(f'The value of pi is approximately {math.pi:.3f}.')
#还有一些修饰符可以在格式化前转换值。 '!a' 应用 ascii() ,'!s' 应用 str(),'!r' 应用 repr():
animals = 'eels'
print(f'My hovercraft is full of {animals!r}.')
#= 说明符可被用于将一个表达式扩展为表达式文本、等号再加表达式求值结果的形式。
bugs = 'roaches'
count = 13
area = 'living room'
print(f'Debugging {bugs=} {count=} {area=}')
#如果不想分拆较长的格式字符串,最好按名称引用变量进行格式化,不要按位置。
table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678}
print('Jack: {0[Jack]:d}; Sjoerd: {0[Sjoerd]:d}; '
      'Dcab: {0[Dcab]:d}'.format(table))
#也可以通过将 table 字典作为采用 ** 标记的关键字参数传入来实现。
print('Jack: {Jack:d}; Sjoerd: {Sjoerd:d}; Dcab: {Dcab:d}'.format(**table))

7.1.3 手动格式化字符串

  • 字符串对象的 str.rjust() 方法通过在左侧填充空格,对给定宽度字段中的字符串进行右对齐。同类方法还有 str.ljust() 和 str.center() 。这些方法不写入任何内容,只返回一个新字符串,如果输入的字符串太长,它们不会截断字符串,而是原样返回。
  • str.zfill() ,该方法在数字字符串左边填充零,且能识别正负号

7.2 读写文件

  • 在文本模式下读取文件时,默认把平台特定的行结束符(Unix 上为 \n, Windows 上为 \r\n)转换为 \n。在文本模式下写入数据时,默认把 \n 转换回平台特定结束符。这种操作方式在后台修改文件数据对文本文件来说没有问题,但会破坏 JPEG 或 EXE 等二进制文件中的数据。注意,在读写此类文件时,一定要使用二进制模式。
相关推荐
_.Switch5 分钟前
Django中的URL配置与动态参数传递(多种方法比较)
开发语言·数据库·后端·python·django·sqlite·自动化
codists10 分钟前
《Django 5 By Example》阅读笔记:p54-p75
python·django
飞滕人生TYF14 分钟前
java Collections 详解
java·开发语言·python
codists14 分钟前
《Django 5 By Example》阅读笔记:p105-p164
python·django·编程人
chusheng184026 分钟前
Python 正则表达式进阶用法:字符集与字符范围详解
java·python·正则表达式
萧鼎26 分钟前
【python】掌握 Flask:轻量级 Web 开发框架解析
前端·python·flask
Jagua30 分钟前
Python爬虫下载新闻,Flask展现新闻(2)
爬虫·python·搜索引擎·flask
Elastic 中国社区官方博客33 分钟前
使用 Azure OpenAI 服务对数据进行联合 SharePoint 搜索
大数据·运维·服务器·python·elasticsearch·microsoft·sharepoint
boss-dog1 小时前
数据分析——Python绘制实时的动态折线图
python·数据分析
B站计算机毕业设计超人2 小时前
计算机毕业设计Hadoop+大模型空气质量预测 空气质量可视化 空气质量分析 空气质量爬虫 Spark 机器学习 深度学习 Django 大模型
人工智能·hadoop·爬虫·python·深度学习·spark·数据可视化