1
0

Python:数据类型

This commit is contained in:
周中平 2022-11-19 17:49:02 +08:00
parent aa73f4d1e7
commit b60ea85290
No known key found for this signature in database
GPG Key ID: B1DF9DD42D8E00DC
2 changed files with 85 additions and 119 deletions

View File

@ -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("你好, 世界!")
```

View File

@ -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() 检查变量的类型