python 66 个冷知识 0706

66个有趣的Python冷知识

  1. Python的名字来源

    • Python的名字不是来自蛇,而是来自英国的喜剧团体“蒙提·派森”。
  2. 多行字符串

    • Python支持使用三重引号 '''""" 来创建多行字符串。
  3. 链式比较

    • Python允许你进行链式比较,例如 1 < a < 3
  4. 强制换行

    • 你可以在Python中使用反斜杠 \ 来强制换行。
  5. Python中的else

    • 在循环中可以使用else语句。forwhile循环可以有一个else子句,它在循环没有遇到break终止时执行。
  6. 嵌套函数

    • 在Python中,你可以在函数内部定义另一个函数。
  7. 动态类型

    • Python是动态类型语言,你可以在运行时改变变量类型。
  8. 多赋值

    • 你可以在一行中给多个变量赋值,例如 a, b, c = 1, 2, 3
  9. 无参数返回值

    • 如果一个函数没有返回值,它会默认返回None
  10. 复数

    • Python原生支持复数,例如 a = 1 + 2j
  11. GIL(全局解释器锁)

    • 在CPython中,多线程受限于全局解释器锁(GIL),这限制了多线程并行执行。
  12. 列表推导式

    • 列表推导式是一种简洁的生成列表的方式,例如 [x*x for x in range(10)]
  13. 字典推导式

    • 类似于列表推导式,你也可以使用字典推导式,例如 {x: x*x for x in range(10)}
  14. 匿名函数

    • 使用 lambda 关键字可以创建匿名函数,例如 lambda x: x + 1
  15. 内置函数数量

    • Python内置了超过70个函数,可以通过 dir(__builtins__) 查看。
  16. 反转字符串

    • 你可以使用切片反转字符串,例如 s[::-1]
  17. 多重赋值和交换变量

    • 在Python中,交换两个变量的值非常简单:a, b = b, a
  18. 内存管理

    • Python使用引用计数和垃圾回收机制来管理内存。
  19. 函数注解

    • Python 3.0引入了函数注解,可以用来标注函数参数和返回值的类型,例如 def func(x: int) -> str:
  20. Zen of Python

    • 你可以在Python解释器中输入 import this 来查看Python之禅(The Zen of Python),它包含了Python设计的指导原则。
  21. 动态代码执行

    • 你可以使用 execeval 来动态执行Python代码。
  22. 多变量返回

    • 函数可以返回多个变量,例如 return a, b,并使用 a, b = func() 解包。
  23. 字节对象

    • Python中的字符串有strbytes两种类型,可以通过前缀b来创建字节对象。
  24. 条件表达式

    • Python支持条件表达式(即三元运算符),例如 x = a if condition else b
  25. 默认参数

    • 函数参数可以有默认值,例如 def func(x=10):
  26. 传递可变对象

    • 在函数中传递可变对象(例如列表或字典)时,修改对象会影响原始对象。
  27. 函数也是对象

    • 在Python中,函数也是对象,可以赋值给变量,作为参数传递,或作为返回值返回。
  28. 导入模块的别名

    • 使用 import module as alias 可以为导入的模块指定一个别名。
  29. 导入部分模块

    • 你可以从一个模块中导入部分内容,例如 from module import func
  30. 迭代器和生成器

    • Python支持迭代器和生成器,可以使用 yield 关键字创建生成器。
  31. 上下文管理器

    • 使用 with 关键字可以简化资源管理,例如文件操作 with open('file.txt') as f:
  32. 装饰器

    • 装饰器是一种用于修改函数行为的高级特性,使用 @decorator 语法。
  33. 元类

    • Python中的类是由元类创建的,可以通过自定义元类来修改类的创建行为。
  34. 鸭子类型

    • Python支持鸭子类型,不要求明确的接口,只要实现所需的方法即可。
  35. 单行代码块

    • Python允许你在同一行编写多条语句,用分号分隔,例如 a = 1; b = 2; c = a + b
  36. 字符串格式化

    • Python提供了多种字符串格式化方法,包括 % 操作符、str.format() 方法和 f-string(格式化字符串字面值)。
  37. 集合

    • Python内置集合类型,可以用花括号 {} 创建,例如 a = {1, 2, 3}
  38. frozenset

    • frozenset 是一种不可变集合,创建后不能修改。
  39. 命名元组

    • collections.namedtuple 提供了一种创建轻量级对象的方式,可以通过名称访问字段。
  40. 默认字典

    • collections.defaultdict 提供了一种字典的子类,可以在访问不存在的键时提供默认值。
  41. 计数器

    • collections.Counter 是一种用于计数的字典子类。
  42. 有序字典

    • collections.OrderedDict 是一种保持插入顺序的字典。
  43. 双向队列

    • collections.deque 提供了一种高效的双向队列。
  44. 全局变量

    • 在函数内部可以使用 global 关键字声明全局变量。
  45. 非局部变量

    • 在嵌套函数中可以使用 nonlocal 关键字声明非局部变量。
  46. 扩展列表

    • 使用 * 操作符可以将列表解包为独立的元素,例如 print(*[1, 2, 3])
  47. 扩展字典

    • 使用 ** 操作符可以将字典解包为独立的键值对参数,例如 func(**{'a': 1, 'b': 2})
  48. 参数解包

    • 函数定义中的 *args**kwargs 可以分别用于解包任意数量的位置参数和关键字参数。
  49. 模块缓存

    • Python会缓存导入的模块,可以通过 sys.modules 查看缓存的模块。
  50. 对象标识

    • 使用 id() 函数可以获取对象的唯一标识。
  51. 垃圾回收

    • Python使用垃圾回收机制管理内存,可以通过 gc 模块手动干预。
  52. 协程

    • 使用 asyncawait 关键字可以定义和使用协程。
  53. 多线程

    • Python提供了 threading 模块来实现多线程编程。
  54. 多进程

    • Python提供了 multiprocessing 模块来实现多进程编程。
  55. 虚拟环境

    • 使用 venvvirtualenv 可以创建独立的Python虚拟环境。
  56. 包管理

    • pip 是Python的包管理工具,用于安装和管理软件包。
  57. 导入钩子

    • 可以通过自定义导入钩子来修改模块的导入行为。
  58. 序列化

    • pickle 模块提供了对象序列化和反序列化的功能。
  59. 日期时间

    • datetime 模块提供了处理日期和时间的功能。
  60. 正则表达式

    • re 模块提供了正则表达式匹配功能。
  61. 单元测试

    • unittest 模块提供了编写和运行单元测试的框架。
  62. 文档生成

    • sphinx 是一个用于生成Python项目文档的工具。
  63. 代码风格

    • PEP 8 是Python的代码风格指南。
  64. 类型检查

    • mypy 是一个用于Python的静态类型检查工具。
  65. 代码格式化

    • black 是一个流行的Python代码格式化工具。
  66. 代码静态分析

    • pylint 是一个用于Python代码的静态分析工具。

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

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

相关文章

kafka中

Kafka RocketMQ概述 RabbitMQ概述 ActiveMQ概述 ZeroMQ概述 MQ对比选型 适用场景-从公司基础建设力量角度出发 适用场景-从业务场景出发 Kafka配置介绍 运行Kafka 安装ELAK 配置EFAK EFAK界面 KAFKA常用术语 Kafka常用指令 Kafka中消息读取 单播消息 group.id 相同 多播消息 g…

MyBatis-Plus-实用的功能自动填充字段

前言: java项目用到了mybatis-plus&#xff0c;在一些类里面需要在更新时候&#xff0c;统一设置&#xff0c;修改人&#xff0c;修改ID&#xff0c;修改时间。新增时候设置 创建人&#xff0c;创建时间等 基础类&#xff1a; Data public abstract class BaseModel implements…

java 公共字段填充

公共字段填充 1、mybatis-plus2、mybatis 使用注解加aop2.1 自定义注解2.2 自定义切面类2.3 在mapper上添加上自定义的注解 1、mybatis-plus 通过在类上使用如下的注解 TableField(fill FieldFill.INSERT) 是 MyBatis-Plus 中的注解&#xff0c;用于自动填充字段的值。MyBat…

简单且循序渐进地查找软件中Bug的实用方法

“Bug”这个词常常让许多开发者感到头疼。即使是经验丰富、技术娴熟的开发人员在开发过程中也难以避免遭遇到 Bug。 软件中的故障会让程序员感到挫败。我相信在你的软件开发生涯中&#xff0c;也曾遇到过一些难以排查的问题。软件中的错误可能会导致项目无法按时交付。因此&…

解决 Docker 安装时“无法获取 dpkg 前端锁”错误的有效方法

在安装 Docker 的过程中&#xff0c;不少用户可能会遇到“无法获取 dpkg 前端锁”的错误提示。这是一个较为常见但也令人困扰的问题。下面为您详细介绍几种可能的解决方法&#xff1a; 方法一&#xff1a;检查并终止相关进程 首先&#xff0c;您可以通过以下命令检查是否有正…

Linux进程、线程——保姆级助理解

目录 1、进程&#xff08;Process&#xff09; 1.1 进程基本概念&#xff1a; 1.2 进程分类 1.3 进程的特征 1.4 进程和程序的区别 1.5 进程的状态 1.6 进程的创建——Fork()函数 1.6.1 简介 1.6.2 使用 1.7 进程终止 2、线程&#xff08;Thread&#xff09; 1.1 线…

Git管理源代码、git简介,工作区、暂存区和仓库区,git远程仓库github,创建远程仓库、配置SSH,克隆项目

学习目标 能够说出git的作用和管理源代码的特点能够如何创建git仓库并添加忽略文件能够使用add、commit、push、pull等命令实现源代码管理能够使用github远程仓库托管源代码能够说出代码冲突原因和解决办法能够说出 git 标签的作用能够使用使用git实现分支创建&#xff0c;合并…

排序 -- 冒泡排序和快速排序

一、 交换排序 1、基本思想 所谓交换&#xff0c;就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置&#xff0c;交换排序的特点是&#xff1a;将键值较大的记录向序列的尾部移动&#xff0c;键值较小的记录向序列的前部移动。 2、常见的交换排序 1、冒泡…

TypeError: object of type ‘float‘ has no len()的解决办法

报错代码举例&#xff1a; a20 b200 print(len(a/b)) 原因&#xff1a;a/b的结果是浮点数&#xff0c;而len()函数不支持浮点数 解决办法&#xff1a;把浮点数类型变为字符串 修改后代码 a20 b200 print(len(str(a/b)))

《征服数据结构》SparseArray

摘要&#xff1a; 1&#xff0c;SparseArray的介绍 2&#xff0c;SparseArray的代码实现 1&#xff0c;SparseArray的介绍 前面我们讲过《ArrayMap》&#xff0c;用它来实现哈希表&#xff0c;其中存放key和value的数组长度是存放散列表数组长度的二倍。 在哈希表中如果key值是…

【Python】已解决:(Python xml库 import xml.dom.minidom导包报错)‘No module named dom’

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决&#xff1a;&#xff08;Python xml库 import xml.dom.minidom导包报错&#xff09;‘No module named dom’ 一、分析问题背景 在使用Python处理XML文件时&#xff0c;xml…

【linux/shell】awk获取除某列之外的其他数据

介绍 在使用 awk 时&#xff0c;如果你想要获取除了某一列之外的所有其他数据&#xff0c;可以通过设置字段分隔符&#xff08;Field Separator&#xff0c;FS&#xff09;和输出字段分隔符&#xff08;Output Field Separator&#xff0c;OFS&#xff09;&#xff0c;然后打印…

中科曙光:新智生产力引擎,是一台精密的AI发动机

每一个时代的新生产力释放&#xff0c;都需要新的发动机来释放新动能。比如蒸汽机之于畜力、燃油机之于蒸汽机&#xff0c;发动机的每一次进化&#xff0c;都为新兴工业体系奠定了更强大的生产力底座。 如今&#xff0c;AI作为新质生产力的关键引擎&#xff0c;带来了史无前例的…

240706_昇思学习打卡-Day18-基于MindSpore的GPT2文本摘要

240706_昇思学习打卡-Day18-基于MindSpore的GPT2文本摘要 今天做一个根据一段文章提取摘要的提取器&#xff0c;基于nlpcc2017摘要数据&#xff0c;内容为新闻正文及其摘要&#xff0c;就是训练集及标签。 首先我们来预装以下MindSpore环境 %%capture captured_output # 实验…

LabVIEW干涉仪测向系统

开发了一套基于LabVIEW的软件系统&#xff0c;结合硬件设备&#xff0c;构建一个干涉仪测向实验教学平台。该平台应用于信号处理课程&#xff0c;帮助学生将理论知识与实际应用相结合&#xff0c;深化对信号处理核心概念的理解和应用。 项目背景&#xff1a; 当前信号处理教学…

Golang 单元测试+包管理+命令行工具

单元测试 传统测试方法 在 main 函数中&#xff0c;调用需要测试的函数&#xff0c;看看实际结果与预期是否相同&#xff0c;如果相同&#xff0c;则正确&#xff0c;否则不正确缺点&#xff1a; 不方便&#xff0c;我们需要在 main 函数中调用&#xff0c;如果项目正在运行&…

昇思25天学习打卡营第十四天|Pix2Pix实现图像转换

训练营进入第十四天&#xff0c;今天学的内容是Pix2Pix图像转换&#xff0c;记录一下学习内容&#xff1a; Pix2Pix概述 Pix2Pix是基于条件生成对抗网络&#xff08;cGAN, Condition Generative Adversarial Networks &#xff09;实现的一种深度学习图像转换模型&#xff0c…

为RK3568或RK3288开发板创建交叉编译环境{采用amd64的ubuntu系统配置交叉编译arm64开发环境}(保姆级包括安装QT)超详细记录版

为RK3568或RK3288开发板创建交叉编译环境{采用amd64的ubuntu系统配置交叉编译arm64开发环境}【保姆级包括安装QT】超详细记录版 Chapter1 为RK3568或RK3288开发板创建交叉编译环境{采用amd64的ubuntu系统配置交叉编译arm64开发环境}(保姆级包括安装QT)超详细记录版一. 安装QT程…

picgo+gitee图床配置

node.js安装 刚开始顺着picgo操作,直接跳转到了node.js官网 下载的时候直接 Next,然后可以自定义安装路径,我的安装路径是C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Node.js 然后再在安装路径的根目录下新建两个文件夹,nodecache 和 nodeglobal, 如图所示:…

纤程和协程理解

进程是系统分配资源的最小单位&#xff0c;一个进程包含多个线程&#xff0c;那么纤程和协程又是啥呢&#xff1f; 纤程 多线程编程时&#xff0c;如果线程数过多&#xff0c;就会导致频繁的上下文切换&#xff0c;这对性能是一种额外的损耗。 纤程是由操作系统&#xff08;特…