字典基础 每个键与值用冒号 (:) 分隔,项用逗号分隔,整体用花括号括起。无项的空字典写为两个花括号:{}。 字典键唯一,值可重复。值可为任意类型,但键必须为不可变类型:字符串、数字或元组。 访问字典值 使用方括号加键获取值。简单示例: 在线演示 #!/usr/bin/python dict = {Name: Zara, Age: 7, Class: First} print dict[Name]: , dict[Name] print dict[Age]: , dict[Age] 执行结果: dict[Name]: Zara dict[Age]: 7 尝试访问不存在的键会报错: 在线演
元组概述 元组是有序且不可变的对象集合。元组是序列,类似列表。区别:元组不可修改,用圆括号;列表可修改,用方括号。 创建元组只需放入不同逗号分隔值,可选用圆括号括起。例如: tup1 = (physics, chemistry, 1997, 2000) tup2 = (1, 2, 3, 4, 5) tup3 = a, b, c, d 空元组写为两个空圆括号: tup1 = () 单元素元组必须包含逗号,即使只有一个值: tup1 = (50,) 类似字符串索引,元组索引从 0 开始,支持切片、连接等操作。 访问元组值 使用方括号切片及索引获取指定索引处的值。例如: 在线演示 #!/usr/
序列基础 Python 最基本的数据结构是序列。序列每个元素分配编号——位置或索引。第一个索引为 0,第二个为 1,以此类推。 Python 有六种内置序列类型,最常用的是列表和元组。 所有序列类型通用操作:索引、切片、加、乘、成员检查。此外 Python 内置函数可求序列长度、最大/最小元素。 Python 列表 列表是 Python 最通用的数据类型,写为方括号内逗号分隔的值(项)。列表重要特性:项类型可不同。 创建列表只需将不同逗号分隔值放入方括号。例如: list1 = [physics, chemistry, 1997, 2000] list2 = [1, 2, 3, 4, 5]
字符串创建 字符串是 Python 中最流行的类型。用引号括起字符即可创建。Python 对单双引号一视同仁。创建字符串即给变量赋值: var1 = Hello World! var2 = Python Programming 访问字符串值 Python 无字符类型;长度为 1 的字符串也视为子串。 使用方括号切片及索引获取子串。例如: 在线演示 #!/usr/bin/python var1 = Hello World! var2 = Python Programming print var1[0]: , var1[0] print var2[1:5]: , var2[1:5] 执行结果:
数字类型概述 数字数据类型存储数值。它们是不可变数据类型,改变数字数据类型的值会导致新分配对象。 赋值时创建 Number 对象: var1 = 1 var2 = 10 可用 del 语句删除数字对象引用。语法: del var1[,var2[,var3[....,varN]]]] 可删除单个或多个对象: del var del var_a, var_b Python 支持四种数值类型: int (有符号整数) - 常称整数,正负整数,无小数点 long (长整数) - 无限大小整数,写法如整数后跟大写或小写 L float (浮点数) - 实数,用小数点分隔整数和小
循环概述 通常语句按顺序执行:函数中第一条语句先执行,接着第二条,依此类推。有时需要多次执行代码块。 编程语言提供各种控制结构实现复杂执行路径。循环语句允许多次执行语句或语句组。 Python 提供以下循环类型: 序号循环类型与说明 1while 循环 - 重复执行语句/语句组,直到给定条件为 TRUE。执行循环体前测试条件 2for 循环 - 多次执行语句序列,简化管理循环变量的代码 3嵌套循环 - 在 while、for 或 do..while 循环内使用一个或多个循环 循环控制语句 循环控制语句改变正常执行
决策控制概述 决策控制是预测程序执行时可能出现的条件,并根据条件指定采取的动作。 决策结构求值多个表达式,产生 TRUE 或 FALSE 结果。需确定结果为 TRUE 或 FALSE 时采取的动作和执行的语句。 大多数编程语言中典型决策结构的一般形式如下: Python 将任何非零和非空值视为 TRUE,零或空视为 FALSE。 Python 提供以下决策语句: 序号语句与说明 1if 语句 - 由布尔表达式后跟一或多条语句组成 2if...else 语句 - if 语句后可跟可选 else 语句,布尔表达式为 FALSE 时执行
运算符类型 运算符是操作操作数值的构造。表达式 4 + 5 = 9 中,4 和 5 为操作数,+ 为运算符。 Python 支持以下运算符类型: 算术运算符 比较(关系)运算符 赋值运算符 逻辑运算符 位运算符 成员运算符 身份运算符 Python 算术运算符 假设变量 a=10,b=20: 运算符描述示例 + 加法将运算符两侧的值相加a + b = 30 - 减法左操作数减去右操作数a – b = -10 * 乘法将运算符两侧的值相乘a
变量赋值 变量是存储值的预留内存位置。创建变量即预留内存空间。 根据变量数据类型,解释器分配内存并决定存储内容。通过赋不同数据类型,可在变量中存储整数、小数或字符。 赋值操作 Python 变量无需显式声明预留内存。赋值时自动声明。等号 (=) 用于赋值。 = 左侧为变量名,右侧为存储的值。例如: 在线演示 #!/usr/bin/python counter = 100 # 整数赋值 miles = 1000.0 # 浮点数 name = John # 字符串 print counter print miles print name 10
第一个 Python 程序 交互模式编程 不传脚本文件参数直接调用解释器,会出现如下提示符: $ python Python 2.4.3 (#1, Nov 11 2010, 13:34:43) [GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2 Type help, copyright, credits or license for more information. >>> 在 Python 提示符下输入以下文本并按 Enter: >>> print Hello, Python! 新版 Python 需使用带
本地环境搭建 打开终端窗口输入 python 查看是否已安装及版本。 Python 可在多种平台运行: Unix (Solaris, Linux, FreeBSD, AIX, HP/UX, SunOS, IRIX 等) Win 9x/NT/2000 Macintosh (Intel, PPC, 68K) OS/2, DOS, PalmOS, Nokia 手机, Windows CE, Acorn/RISC OS, BeOS, Amiga, VMS/OpenVMS, QNX, VxWorks, Psion 也已移植到 Java 和 .NET 虚拟机
Python 简介 Python 是一种高级、解释型、交互式和面向对象的脚本语言。Python 设计为高度可读。它经常使用英语关键字,而其他语言使用标点符号,且比其他语言具有更少的语法结构。 Python 是解释型语言:Python 由解释器在运行时处理。执行前无需编译程序。这类似于 PERL 和 PHP。 Python 是交互式语言:你可以坐在 Python 提示符前,直接与解释器交互编写程序。 Python 是面向对象语言:Python 支持将代码封装在对象中的面向对象风格或技术。 Python 是初学者语言:Python 适合初级程序员,支持从简单文本处
如果你错过了消息:Python 2 于 2020 年 1 月 1 日正式停止支持。如果你仍在使用 Python 2.7,请立即升级。不确定当前版本?请检查你的 Python 版本。 许多包维护者已迁移到 Python 3。部分仍支持 Python 2,但其他已放弃支持。如果你需要从 Python 2 代码库迁移,请阅读我们的 Python 2 到 Python 3 迁移指南。
你可以在代码中检查 Python 版本,确保用户不会使用不兼容的版本运行脚本。使用以下简单检查: = (3, 5): # 友好提示用户升级,因为你使用了 3.5 的特性
IPython 是一个增强版的 Python REPL,也是 Jupyter Notebook 的核心。简而言之,Jupyter 是一个开源 Web 应用,允许你创建和共享包含实时代码、公式、可视化和叙述性文本的文档。如果你经常使用交互式 Shell 却不了解 IPython,真的应该去了解一下! IPython 特性 IPython Shell 提供的主要特性包括: 全面的对象自省。 跨会话持久的输入历史。 会话期间输出结果的缓存,自动生成引用。 Tab 补全,支持 Python 变量、关键字、文件名和函数补全。 用于控制环境和执行多种任务的魔法命令。 会话日志记录和重载。 集成 pdb
使用 sys.getsizeof() 可以查看对象的内存占用: import sys mylist = range(0, 10000) print(sys.getsizeof(mylist)) # 48 哇……等等……为什么这个巨大的列表只有 48 字节? 因为 range 函数返回的是一个可迭代对象,它表现得像一个数字列表,但内部仅记录最后一次迭代的数字。range 比实际的数字列表节省更多内存。 你可以通过列表推导式从同一个 range 创建一个真实的 Python 列表来验证这一点: import sys myreallist = [x for x in range(0, 10000
Python 原生支持一次返回多个值。多数函数返回单值,但你也可以返回多值,且无需字典、列表或数据类。 目录 用元组返回多值 Python 返回多值的替代方案 持续学习 用元组返回多值 return 后用逗号列出值即可。示例:返回多值并一次性解包赋给多变量: def get_user(id): # fetch user from database # .... return name, birthdate name, birthdate = get_user(4) 本质上返回的是元组。写成 return (name, birthdate) 效果同。返回 2 个以上
Python 数据类是加了 @dataclass 装饰器的普通类,专为存数据而生。Python 3.7+ 通过内置 dataclasses 模块提供。相较普通类有多项优势,本文逐一拆解并附示例与常用操作。 目录 数据类优势 数据类示例 默认值 数据类转 JSON 持续学习 数据类优势 极简代码量 @dataclass 装饰器零可见代码注入大量功能:自动生成 __init__、__repr__、__eq__ 等。只需声明字段,无需手写任何方法。 开箱即用的比较 两数据类实例可直接用 == 比较,因自动实现 __eq__。凡实现此魔术方法的对象均可同类型比较。 友好打印 自动实现 __rep
巧用元组解包,一行代码交换两变量,零临时变量: a = 1 b = 2 a, b = b, a print(a) # 2 print(b) # 1 第 3 行即完成交换,Python 原生支持,简洁高效。
用这招快速将 Python 字符串转标题大小写。引用维基百科: 标题大小写广泛用于线上线下印刷。本站所有文章标题均用 Title Case。细观大多数网站、报纸、杂志皆采用此式。 Python 内置 title() 一键转换: >>> title = string in title case >>> title.title() String In Title Case 但缺陷明显: 含撇号时错误:Theyre 变 TheyRe 小词(in、no 等)本不应大写却被大写 更健壮的正则版本: import re def titlecase(s):
Python