diff --git a/wiki/programming-language/Python/入门/基本语法.md b/wiki/programming-language/Python/入门/基本语法.md deleted file mode 100644 index 05dbfd58..00000000 --- a/wiki/programming-language/Python/入门/基本语法.md +++ /dev/null @@ -1,119 +0,0 @@ ---- -id: 基本语法 -title: 基本语法 -sidebar_position: 2 -data: 2022年4月27日 ---- - -## 数据类型 - -- 整型:Python中可以处理任意大小的整数(Python 2.x中有`int`和`long`两种类型的整数,但这种区分对Python来说意义不大,因此在Python 3.x中整数只有int这一种了),而且支持二进制(如`0b100`,换算成十进制是4)、八进制(如`0o100`,换算成十进制是64)、十进制(`100`)和十六进制(`0x100`,换算成十进制是256)的表示法。 - -- 浮点型:浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,浮点数除了数学写法(如`123.456`)之外还支持科学计数法(如`1.23456e2`)。 - -- 字符串型:字符串是以单引号或双引号括起来的任意文本,比如`'hello'`和`"hello"`,字符串还有原始字符串表示法、字节字符串表示法、Unicode字符串表示法,而且可以书写成多行的形式(用三个单引号或三个双引号开头,三个单引号或三个双引号结尾)。 - -- 布尔型:布尔值只有`True`、`False`两种值,要么是`True`,要么是`False`,在Python中,可以直接用`True`、`False`表示布尔值(请注意大小写),也可以通过布尔运算计算出来(例如`3 < 5`会产生布尔值`True`,而`2 == 1`会产生布尔值`False`)。 - -- 复数型:形如`3+5j`,跟数学上的复数表示一样,唯一不同的是虚部的`i`换成了`j`。实际上,这个类型并不常用,大家了解一下就可以了。 - -### 变量命名 - -**硬性规则:** - -- 变量名由字母(广义的Unicode字符,不包括特殊字符)、数字和下划线构成,数字不能开头。 -- 大小写敏感(大写的`a`和小写的`A`是两个不同的变量)。 -- 不要跟关键字(有特殊含义的单词,后面会讲到)和系统保留字(如函数、模块等的名字)冲突。 - -**PEP 8要求:** - -- 用小写字母拼写,多个单词用下划线连接。 -- 受保护的实例属性用单个下划线开头(后面会讲到)。 -- 私有的实例属性用两个下划线开头(后面会讲到)。 - -使用 type() 检查变量的类型 - -**Python中内置的函数对变量类型进行转换。** - -- `int()`:将一个数值或字符串转换成整数,可以指定进制。 -- `float()`:将一个字符串转换成浮点数。 -- `str()`:将指定的对象转换成字符串形式,可以指定编码。 -- `chr()`:将整数转换成该编码对应的字符串(一个字符)。 -- `ord()`:将字符串(一个字符)转换成对应的编码(整数)。 - -## 运算符 - -| 运算符 | 描述 | -| ------------------------------------------------------------ | ------------------------------ | -| `[]` `[:]` | 下标,切片 | -| `**` | 指数 | -| `~` `+` `-` | 按位取反, 正负号 | -| `*` `/` `%` `//` | 乘,除,模,整除 | -| `+` `-` | 加,减 | -| `>>` `<<` | 右移,左移 | -| `&` | 按位与 | -| `^` `|` | 按位异或,按位或 | -| `<=` `<` `>` `>=` | 小于等于,小于,大于,大于等于 | -| `==` `!=` | 等于,不等于 | -| `is` `is not` | 身份运算符 | -| `in` `not in` | 成员运算符 | -| `not` `or` `and` | 逻辑运算符 | -| `=` `+=` `-=` `*=` `/=` `%=` `//=` `**=` `&=` `| =` `^=` `>>=` `<<=` | | - -*在实际开发中,如果搞不清楚运算符的优先级,可以使用括号来确保运算的执行顺序。* - -## 关键字 - -| 关键字 | 描述 | -| :------- | :--------------------------------------------- | -| and | 逻辑运算符。 | -| as | 创建别名。 | -| assert | 用于调试。 | -| break | 跳出循环。 | -| class | 定义类。 | -| continue | 继续循环的下一个迭代。 | -| def | 定义函数。 | -| del | 删除对象。 | -| elif | 在条件语句中使用,等同于 else if。 | -| else | 用于条件语句。 | -| except | 处理异常,发生异常时如何执行。 | -| False | 布尔值,比较运算的结果。 | -| finally | 处理异常,无论是否存在异常,都将执行一段代码。 | -| for | 创建 for 循环。 | -| from | 导入模块的特定部分。 | -| global | 声明全局变量。 | -| if | 写一个条件语句。 | -| import | 导入模块。 | -| in | 检查列表、元组等集合中是否存在某个值。 | -| is | 测试两个变量是否相等。 | -| lambda | 创建匿名函数。 | -| None | 表示 null 值。 | -| nonlocal | 声明非局部变量。 | -| not | 逻辑运算符。 | -| or | 逻辑运算符。 | -| pass | null 语句,一条什么都不做的语句。 | -| raise | 产生异常。 | -| return | 退出函数并返回值。 | -| True | 布尔值,比较运算的结果。 | -| try | 编写 try...except 语句。 | -| while | 创建 while 循环。 | -| with | 用于简化异常处理。 | -| yield | 结束函数,返回生成器。 | - -## 注释 - -- 单行注释:以 # 和空格开头的部分 - -- 多行注释:三个引号开头,三个引号结尾 - -```python -""" -第一个Python程序 - hello, world! -向伟大的Dennis M. Ritchie先生致敬 -Version: 0.1 -Author: 骆昊 -""" -# hello world! -print('hello, world!') -print("你好, 世界!") -``` diff --git a/wiki/programming-language/Python/入门/数据类型.md b/wiki/programming-language/Python/入门/数据类型.md new file mode 100644 index 00000000..4fb878ae --- /dev/null +++ b/wiki/programming-language/Python/入门/数据类型.md @@ -0,0 +1,85 @@ +--- +title: 数据类型 +description: Python 的数据类型 +keywords: +- Python +- 数据类型 +tags: +- 标签 +sidebar_position: 2 +author: 7Wate +date: 2022-11-19 +--- + +## 内置类型 + +**Python 3 内置类型**如下,除了各种数据类型,Python 解释器内建了还有很多其他类型,比如上下文管理器类型,模块、方法、代码对象、类型对象、内部对象等类型。 + +| 类型 | 可变性 | 描述 | 语法例子 | +| :------------------------: | :----: | :----------------------------------------------------------: | :----------------------------------------------------------: | +| `bool` | 不可变 | 布尔值 | `True` `False` | +| `int` | 不可变 | 理论上无限制大小的整数 | `42` | +| `float` | 不可变 | 双精度浮点数。精度是机器依赖的但实际上一般实现为 64 位IEEE 754 数而带有 53 位的精度 | `1.414` | +| `complex` | 不可变 | 复数,具有实部和虚部 | `3+2.7j` | +| `range` | 不可变 | 通常用在循环中的数的序列,规定在 for 循环中的次数 | `range(1, 10)` `range(10, -5, -2)` | +| `str` | 不可变 | 字符串,Unicode 代码点序列 | `'Wikipedia'` `"Wikipedia"` `"""Spanning multiple lines""" ` | +| `bytes` | 不可变 | 字节序列 | `b'Some ASCII'` `b"Some ASCII"` `bytes([119, 105, 107, 105])` | +| `bytearray` | 可变 | 字节序列 | `bytearray(b'Some ASCII')` `bytearray(b"Some ASCII")` `bytearray([119, 105, 107, 105])` | +| `list` | 可变 | 列表,可以包含混合的类型 | `[4.0, 'string', True]` `[]` | +| `tuple` | 不可变 | 元组,可以包含混合的类型 | `(4.0, 'string', True)` `('single element',)` `()` | +| `dict` | 可变 | 键-值对的关联数组(或称字典);可以包含混合的类型(键和值),键必须是可散列的类型 | `{'key1': 1.0, 3: False}` `{}` | +| `set` | 可变 | 无序集合,不包含重复项;可以包含混合的类型,如果可散列的话 | `{4.0, 'string', True}` `set()` | +| `frozenset` | 不可变 | 无序集合,不包含重复项;可以包含混合的类型,如果可散列的话 | `frozenset([4.0, 'string', True])` | +| `types.EllipsisType` | 不可变 | 省略号占位符,用作 NumPy 数组的索引 | `...` `Ellipsis` | +| `types.NoneType` | 不可变 | 表示值缺席的对象,在其他语言中经常叫做 null | `None` | +| `types.NotImplementedType` | 不可变 | 可从重载运算符返回的占位符,用来指示未支持的运算数(operand)类型 | `NotImplemented` | + + +## 运算符 + +在实际开发中,如果搞不清楚运算符的优先级,可以使用括号来确保运算的执行顺序。 + +| 运算符 | 描述 | +| ------------------------------------------------------------ | ------------------------------ | +| `[]` `[:]` | 下标,切片 | +| `**` | 指数 | +| `~` `+` `-` | 按位取反, 正负号 | +| `*` `/` `%` `//` | 乘,除,模,整除 | +| `+` `-` | 加,减 | +| `>>` `<<` | 右移,左移 | +| `&` | 按位与 | +| `^` `|` | 按位异或,按位或 | +| `<=` `<` `>` `>=` | 小于等于,小于,大于,大于等于 | +| `==` `!=` | 等于,不等于 | +| `is` `is not` | 身份运算符 | +| `in` `not in` | 成员运算符 | +| `not` `or` `and` | 逻辑运算符 | +| `=` `+=` `-=` `*=` `/=` `%=` `//=` `**=` `&=` `| =` `^=` `>>=` `<<=` | | + +## 关键字 + +```python +False await else import pass +None break except in raise +True class finally is return +and continue for lambda try +as def from nonlocal while +assert del global not with +async elif if or yield +``` + +## 声明 + +**硬性规则:** + +- 变量名由**字母**(广义的Unicode字符,不包括特殊字符)、**数字**和**下划线**构成,**数字不能开头**。 +- **大小写敏感**(大写的`a`和小写的`A`是两个不同的变量)。 +- 不要跟**关键字**(有特殊含义的单词,后面会讲到)和系统保留字(如函数、模块等的名字)冲突。 + +**PEP 8要求:** + +- 用小写字母拼写,多个单词用下划线连接。 +- 受保护的实例属性用单个下划线开头(后面会讲到)。 +- 私有的实例属性用两个下划线开头(后面会讲到)。 + +使用 type() 检查变量的类型