Python3之基本数据类型
变量
- 不需要声明
- 变量在使用前必须赋值,赋值后变量才被创建
- 赋值方式:等号 = ,左边是变量名,右边是存储在变量中的值
- 多变量赋值
a = b = c = 1 # 创建一个整型对象,值为1,三个变量被分配到相同的内存空间上
a, b, c = 1, 2, "hello" # 分别分配给三个变量
- 删除对象引用:del语句,del var1[, var2, …]
var1, var2 = 1, 3
del var1, var2
- 变量可通过赋值指向不同类型的对象
标准数据类型
有六个标准的数据类型:
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Sets(集合)
- Dictionary(字典)
Number(数字)
- 类型:
- int:长整型
- float
- bool:可以和数字相加
- complex
- 查询变量所指类型:type(), isinstance()
>>> a, b, c, d = 20, 5.5, True, 4+3j
>>> print(type(a), type(b), type(c), type(d))
<class 'int'> <class 'floot'> <class 'bool'> <class 'complex'>
>>> isinstance(a, int)
True
两者区别:type()不会认为子类是一种父类类型;isinstance()会认为子类是一种父类类型。
class A:
pass
class B(A):
pass
isinstance(A(), A) # returns True
type(A()) == A # returns True
isinstance(B(), A) # returns True
type(B()) == A # returns False
- 数值运算:混合计算时,整型转换为浮点数
- 加法:+
- 减法:-
- 乘法:*
- 除法:
- / :得到浮点数(2/4得0.5)
- // :得到整数(2//4得0)
- 取余:%
- 乘方: **
String(字符串)
- 单引号 ‘xxx’ 或双引号 “xxx”,
- 用反斜杠 \ 转义特殊字符,不转义则在字符串前加 r
- 多行
- \ :表示下一行是上一行的延续
- ‘’‘xxx’’’
- “”“xxx”""
- 截取
- 语法:变量[头下标 : 尾下标]
- 说明:从头下标开始,到尾下标前,不包括尾下标
- 索引:以0为开始值,-1为从末尾的开始位置
- 加好 + 为连接符
- 星号 * 表示复制字符串,后跟复制次数(str * 2,赋值两次)
- 不指定尾下标时,表示获取从头下标开始的所有字符
- 字符串不能改变
word = 'python'
word[0] = 'm' # 报错
List(列表)
- 元素类型:Number、String、List(嵌套)…
- 表示方式:[xxx, xxx, xxx, …],方括号间,逗号分隔开
- 截取:返回一个包含所需元素的新列表
- 语法:变量[头下标 : 尾下标]
- 说明:从头下标开始,到尾下标前,不包括尾下标
- 索引:以0为开始值,-1为从末尾的开始位置
- 加好 + 为连接符
- 星号 * 表示重复操作(str * 2,输出两次列表)
- 不指定尾下标时,表示获取从头下标开始的所有元素
- 不指定尾下标时,表示获取从头下标开始的所有元素
- 列表的元素可以改变
Tuple(元组)
- 元素类型:Number、String、List…
- 表示方式:(xxx, xxx, xxx, …),小括号间,逗号分隔开
- 截取:返回一个包含所需元素的新元组
- 语法:变量[头下标 : 尾下标]
- 说明:从头下标开始,到尾下标前,不包括尾下标
- 索引:以0为开始值,-1为从末尾的开始位置
- 加好 + 为连接符
- 星号 * 表示重复操作(str * 2,输出两次元组)
- 不指定尾下标时,表示获取从头下标开始的所有元素
- 元组的元素不可改变,但可包含可变对象,如List
- 构造包含 0 或 1 个元素的元组
tup1 = () # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号
- string, list, tuple都属于sequence(序列)
Set(集合)
- 无序、不重复元素的序列
- 基本功能:
- 进行成员关系测试
if('Rose' in student):
print('...')
else:
print('...')
- 删除重复元素
- 创建:
- 大括号 { } 或 set()函数
- 格式:{xxx, xxx, xxx, …} 或 set(xxx)
- 注意:创建空集合必须使用set(),因为{ }用于创建空字典)
Dictionary(字典)
- 无序的对象集合
- 一种映射类型,元素是键值对,键key : 值value
- 键key不可变,且在同一字典中是唯一的
- 构建:
# 1.
dict = {} # 创建空字典使用{}
dict['one'] = "1 - hello"
dict[2] = "2 - world"
# 2.
tinydict = {'name': 'hello', 'code': 1, 'url': 'www.baidu.com'}
# 3.构造函数dict()
>>>dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)])
{'Taobao': 3, 'Runoob': 1, 'Google': 2}
>>> {x: x**2 for x in (2, 4, 6)}
{2: 4, 4: 16, 6: 36}
>>> dict(Runoob=1, Google=2, Taobao=3)
{'Taobao': 3, 'Runoob': 1, 'Google': 2}
- 内置函数
- clear()
- keys():所有键
- values():所有值
数据类型转换
返回一个新的对象,表示转换的值
函数 | 描述 |
---|---|
int(x [,base]) | 将x转换为一个整数,base:进制,10 |
float(x) | 将x转换到一个浮点数 |
complex(real [,imag]) | 创建一个复数,若real为字符串,则不需要指定imag |
str(x) | 将对象 x 转换为字符串 |
repr(x) | 将对象 x 转换为表达式字符串 |
eval(str) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
tuple(s) | 将序列 s 转换为一个元组 |
list(s) | 将序列 s 转换为一个列表 |
set(s) | 转换为可变集合 |
dict(d) | 创建一个字典。d 必须是一个序列 (key,value)元组 |
frozenset(s) | 转换为不可变集合 |
chr(x) | 将一个整数转换为一个字符 |
ord(x) | 将一个字符转换为它的整数值 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
oct(x) | 将一个整数转换为一个八进制字符串 |