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 等二进制文件中的数据。注意,在读写此类文件时,一定要使用二进制模式。
相关推荐
zhangfeng11337 分钟前
国家超算中心 系统自带模型 和pytorch 和cuda版本
人工智能·pytorch·python
m0_7381207214 分钟前
渗透测试基础——黑盒测试下的Web漏洞挖掘与利用解析(二)
服务器·前端·python·网络协议·安全·网络安全
玫幽倩22 分钟前
2025FIC取证决赛wp(手机取证)
python·智能手机·手机·电子取证·计算机取证·手机取证·fic
多彩电脑23 分钟前
Kivy如何自定义事件
开发语言·python
java_cj24 分钟前
LangChain初入门 - 简化LLM开发难度的利器
开发语言·python·langchain
sleven fung28 分钟前
llama-cpp-python 本地部署入门
开发语言·python·算法·llama
li星野33 分钟前
RAG优化系列:基于用户反馈的检索权重调整(Feedback Loop)——让系统越用越聪明
python·学习
特立独行的猫a34 分钟前
鸿蒙 PC 平台 Python 第三方库移植全景指南
python·华为·harmonyos·三方库移植·鸿蒙pc
范范@1 小时前
Python进阶 网络编程笔记-多进程
网络·笔记·python
AwakeFantasy1 小时前
量化系统难题1_复权后的日k数据_已解决
python·金融