Python教程笔记(2)

Python教程

  • 5.1 列表详解
    • 5.1.3 列表推导式
    • 5.1.4 嵌套的列表推导式
  • 5.7 深入条件控制
  • 6.1 模块详解
  • 6.3 dir()
  • 7.1 格式化字符串字面值
    • 7.1.3 手动格式化字符串
  • 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() 与 * 运算符相结合可以用来拆解一个列表

    >>>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 格式化字符串字面值

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 等二进制文件中的数据。注意,在读写此类文件时,一定要使用二进制模式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/60976.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DAHL:利用由跨越 29 个类别的 8,573 个问题组成的基准数据集,评估大型语言模型在生物医学领域长篇回答的事实准确性。

2024-11-14,由首尔国立大学创建的DAHL数据集,为评估大型语言模型(LLMs)在生物医学领域长文本生成中的幻觉问题提供了一个重要的工具,这对于提高模型的准确性和可靠性具有重要意义。 数据集地址:DAHL|生物医…

GStreamer 简明教程(九):Seek 与跳帧

系列文章目录 GStreamer 简明教程(一):环境搭建,运行 Basic Tutorial 1 Hello world! GStreamer 简明教程(二):基本概念介绍,Element 和 Pipeline GStreamer 简明教程(三…

【微软:多模态基础模型】(1)从专家到通用助手

欢迎关注【youcans的AGI学习笔记】原创作品 【微软:多模态基础模型】(1)从专家到通用助手 【微软:多模态基础模型】(2)视觉理解 【微软:多模态基础模型】(3)视觉生成 【微…

GRE做题笔记(零散的个人经验)

locomotive机车By 1813, the Luddite resistance had all but vanished. all but表示“几乎完全”的程度,或者表示排除piston活塞attributed to 归因于how a sportsperson accounted for their own experience of stress 运动员如何解释自己的压力经历 ,…

【蓝桥杯算法】Java的基础API

1. BigInteger 的使用 1.1. 判素数 package 模板;import java.math.BigInteger; import java.util.Scanner;public class 判素数 {static Scanner in new Scanner(System.in);public static void main(String[] args) {int q in.nextInt();while (q-- > 0) {BigInteger …

【项目实战】基于 LLaMA-Factory 通过 LoRA 微调 Qwen2

【项目实战】基于 LLaMAFactory 通过 LoRA 微调 Qwen2 一、项目介绍二、环境准备1、环境准备2、安装LLaMa-Factory3、准备模型数据集3.1 模型准备3.2 数据集准备 三、微调1、启动webui2、选择参数3、训练 四、测试五、总结 一、项目介绍 LLaMA-Factory是一个由北京航空航天大学…

数据仓库在大数据处理中的作用

数据仓库(Data Warehouse,简称DW或DWH)是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。以下是对数据仓库及其在大数据处理中作用的详细解释: 一、数据仓库的定义 面向主题&#x…

第23课-C++-红黑树的插入与旋转

🌇前言 红黑树是一种自平衡的二叉搜索树,因其出色的性能,广泛应用于实际中。Linux 内核中的 CFS 调度器便是一个使用红黑树的例子,这足以说明它的重要性。红黑树的实现通过红黑两种颜色的控制来维持平衡,并在必要时使…

基于 CentOS7.6 的 Docker 下载常用的容器(MySQLRedisMongoDB),解决拉取容器镜像失败问题

安装MySQL&Redis&MongoDB mysql选择是8版本,redis是选择4版本、mongoDB选择最新版,也可以根据自己的需要进行下载对应的版本,无非就是容器名:版本号 这样去拉去相关的容器镜像。如果你还不会在服务器中安装 docker,可以查…

C#/WinForm拖拽文件上传

一、首先创建一个上传文件的类,继承Control类,如下: public class UploadControl : Control{private Image _image;public UploadControl(){this.SetStyle(ControlStyles.UserPaint | //控件自行绘制,而不使用操作系统的绘制Cont…

ubuntu将firewall-config导出为.deb文件

firewall-config ubuntu是canonial 公司维护的,用wireshark测过,开机会给他们公司发遥测(开了ufw阻塞所有连接也一样,canonial在里面把代码改了)firewall-config是fedora(爱好者维护,公益版本)自带的防火墙…

蓝桥杯备考——算法

一、排序 冒泡排序、选择排序、插入排序、 快速排序、归并排序、桶排序 二、枚举 三、二分查找与二分答案 四、搜索(DFS) DFS(DFS基础、回溯、剪枝、记忆化) 1.DFS算法(深度优先搜索算法) 深度优先搜…

Javascript垃圾回收机制-运行机制(大厂内部培训版本)

前言 计算机基本组成: 我们编写的软件首先读取到内存,用于提供给 CPU 进行运算处理。 内存的读取和释放,决定了程序性能。 冯诺依曼结构 解释和编译 这两个概念怎么理解呢。 编译相当于事先已经完成了可以直接用。好比去饭店吃饭点完上…

python面向对象基础入门

面向对象 基本的实现方法大概如此 class Student(object):def __init__(self, name, score):self.name nameself.score scoredef print_score(self):print(%s: %s % (self.name, self.score))在面向对象的思想中,面对一个问题,首先应该考虑这个问题所…

阿里云ACK容器如何配置pod分散在集群的不同节点上

阿里云ACK容器如何配置pod分散在集群的不同节点上 1.核心原理 是使用pod间反亲和性(podAntiAffinity),pod间反亲和性又分为软约束反亲和和硬约束反亲和。 2.软约束反亲和和硬约束反亲和区别: preferredDuringSchedulingIgnore…

ffmpeg+D3D实现的MFC音视频播放器,支持录像、截图、音视频播放、码流信息显示等功能

一、简介 本播放器是在vs2019 x86下开发,通过ffmpeg实现拉流解码功能,通过D3D实现视频的渲染功能。截图功能采用libjpeg实现,可以截取jpg图片,图片的默认保存路径是在C:\MYRecPath中。录像功能采用封装好的类Mp4Record实现&#x…

怎样遵守编程规范,减少和控制C++编程中出现的bug?

遵守编程规范和最佳实践是减少和控制 C 编程中出现 bug 的重要手段。以下是一些具体的建议和策略,帮助你编写更健壮、更易于维护的 C 代码。 1. 遵循 C 标准和最佳实践 使用现代 C 特性:尽可能使用 C11 及之后的标准,避免使用过时的特性和库…

从零开始学习 sg200x 多核开发之 uboot 网络功能使能

sophpi u-boot 默认未开启网络功能,需要手动开启,为了在 u-boot 下可以通过 tftp 下载固件,先测试 u-boot 下网络功能。 u-boot 网络功能开启 在 build/boards/cv181x/sg2002_wevb_riscv64_sd/u-boot/cvitek_sg2002_wevb_riscv64_sd_defcon…

编译sddm 0.18.1 依赖

github 下载后cmake编译会出现一些依赖 Could not find a package configuration file provided by "ECM" 则执行 sudo apt install extra-cmake-modules PAM headers not found - configure: 解决方法 yum -y install pam-devel No package ‘xcb-xkb’ foun…

C++11标准模板(STL)- 常用数学函数 - 宏常量 - 求值得到float类型的安静NaN(NAN)

常用数学函数 求值得到float类型的安静NaN NAN 定义于头文件 <math.h> #define NAN /*implementation defined*/ (C99 起) 宏 NAN 展开成求值为安静非数&#xff08; QNaN &#xff09;的 float 类型常量表达式。若实现不支持 QNaN &#xff0c;则不定义此宏。 用于打…