数据类型-目录
数据类型
Python中有6个标准的数据类型:
- Number 数字
- String 字符串
- Tuple 元组
- List 列表
- Dictionary 字典
- Set 集合
其中不可变数据类型为数字、字符串和元组,其他则为可变数据类型;
Nmuber 数字
Number数据类型包括4种类型,分别为int(整型)、float(浮点型)、bool(布尔类型)、complex(复数)。另外Long长整型已在3.x中去掉。
int 整型
int 整型,英文为integer,可以标识为正数、负数和零。
num1 = 34
num2 = 0
num3 = -2
print(num1, type(num1)) # 34 <class 'int'>
print(num2, type(num2)) # 0 <class 'int'>
print(num3, type(num3)) # -2 <class 'int'>
整型可以标识为二进制、八进制、十进制、十六进制
- 二进制,以0b开头。
- 八进制,以0o开头
- 十进制,默认的进制
- 十六进制,以0f开头
# 二进制
num1 = 0b1010111
# 八进制
num2 = 0o7676
# 十进制
num3=984
# 十六进制
num4 = 0xAB56
print(num1) # 87
print(num2) # 4030
print(num3) # 984
print(num4) # 43862
float 浮点型
float 浮点型:浮点型由整数部分和小数部分组成
num1 = -1.1
num2 = 6.6
print(num1,type(num1)) # -1.1 <class 'float'>
print(num2,type(num2)) # 6.6 <class 'float'>
浮点数存储不精确性
使用浮点数计算时,可能会出现小数位数不确定的情况
print(1.1 + 2.2) # 3.3000000000000003
print(1.1 + 2.1) # 3.2
#解决1.1和2.2的计算不准确的办法
from decimal import Decimal
print(Decimal('1.1') + Decimal('2.2')) #3.3,Decimal中的值需要为字符串
bool 布尔类型
bool 布尔类型,用来标识真或假的值,只有两个值,True|False
- True表示真,False表示假
- 布尔值可以转化成整数,True->1,False->0
bool1 = True
bool2 = False
print(bool1,type(bool1)) # True <class 'bool'>
print(bool2,type(bool2)) # False <class 'bool'>
print(bool1 + 1) # 2
print(bool2 + 1) # 1
complex 复数
复数( (complex)) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点
com1 = complex(2,3)
print(com1,type(com1))
com2 = 3+4j
print(com2,type(com2))
String 字符串
字符串是 Python 中最常用的数据类型。我们可以使用**引号( ’ 或 " )来创建字符串,还可以通过三引号(‘’'或"“”)**来创建字符串。
创建字符串很简单,只要为变量分配一个值。
##字符串
str1 = 'helloworld'
print(str1,type(str1)) # helloworld <class 'str'>
str2 = "hello world"
print(str2,type(str2)) # hello world <class 'str'>
str3 = '''
hello
world
'''
print(str3,type(str3))
# 上面结果
# hello
# world
# <class 'str'>
str4 = """
hello,
world
"""
print(str4,type(str4))
# 上面结果
# hello,
# world
# <class 'str'>
Tuple 元组
- 元组是与列表类似的有序集合。
- 元组的元素不能修改。
- 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
tuple1 = (34,)
print(tuple1,type(tuple1)) #(34,) <class 'tuple'>
List 列表
- 列表式有序集合,没有固定大小,能够保留任意数量数据类型的Python对象。
- 列表的数据项不需要具有相同的类型。
- 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。
# 列表
list1 = [1,2,3,4,5]
print(list1,type(list1)) #[1, 2, 3, 4, 5] <class 'list'>
Dictionary 字典
- 字典是另一种可变容器模型,且可存储任意类型对象。
- 键必须是唯一的,但值则不必。无序
- 值可以取任何数据类型,但键必须是不可变的,如字符串,数字
- 字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割。
#字典
dict1 = {1:45,'char':(1,2,3,4)}
print(dict1,type(dict1)) # {1: 45, 'char': (1, 2, 3, 4)} <class 'dict'>
Set 集合
- 集合(set)是一个无序的不重复元素序列。
- 使用大括号 { } 或者 set() 函数创建集合
# 集合--支持去重处理,比如声明变量时,有两个1,
set1 = {1,4,5,6,8,9,1,3}
print(set1,type(set1)) # {1, 3, 4, 5, 6, 8, 9} <class 'set'>
数据类型转换
进制转换
1、当需要转换的数据为字符串类型时,二进制、八进制、十六进制转换为十进制使用int(str,2|8|16)
print(int('0x44', 16)) # 68
print(int('3456',8)) # 1838
print(int('1111',2)) # 15
print(int('100')) # 100
注意:
- 字符串中可以有代表进制的标记【‘0x44’】,也可以无代表进制的标记【‘1111’】
- 当数据类型为整型时,无法使用【int(str,2|8|16)】进行进制转换,且后面的2|8|16代表着字符串是多少进制。
2、当需要转换的数据为整型时,需要特定的函数来转换。
- 转换为二进制—bin()
- 转换为八进制–oct()
- 转换为十进制–int()
- 转换为十六进制–hex()
# 十六进制转换成二进制
print(bin(0xAB1)) # 0b101010110001
# 二进制转换成八进制
print(oct(0b1010111)) # 0o127
# 八进制转换成十进制
print(int(0o777)) # 511
# 十进制转换成十六进制
print(hex(9999)) # 0x270f
注意:上面这种格式转换,需要转换的值必须为整型才行转换成功。
类型转换
int()|float()—支持字符串转换成数字类型,如果无法转换,则抛出异常;
str()–支持数字类型转换成字符串类型;
#字符串转换成数字类型--int、float、bool
print(int('123')) # 123
print(float('12.45')) # 12.45
# print(int('12.7')) # ValueError: invalid literal for int() with base 10: '12.7'
print(bool('True'),type(bool('True'))) # True <class 'bool'>
print(bool('111'),type(bool('111'))) # True <class 'bool'>
print(bool(''),type(bool(''))) # False <class 'bool'>
#数字类型转换成字符串--str
print(str(123)) # 123
print(str(12.5)) # 12.5
print(str(True)) # True
tuple()—序列转换成元组
list()—序列转换成列表
dict()—序列转换成字典
set()–序列转换成集合
# 元组--tuple
list1 = ['a',1,'b',2]
print(tuple(list1),type(tuple(list1))) # ('a', 1, 'b', 2) <class 'tuple'>
# 列表--list
tuple1 = (1,2,34,5,76)
print(list(tuple1),type(list(tuple1))) # [1, 2, 34, 5, 76] <class 'list'>
# 集合--set
list1 = [1,2,3,4,5,4,3,2,1]
print(list1) # [1, 2, 3, 4, 5, 4, 3, 2, 1]
print(set(list1),type(set(list1))) # {1, 2, 3, 4, 5} <class 'set'>
# 字典--dict
list1 = ['key1','key2','key3']
list2 = ['1','2','3']
print(tuple(zip(list1,list2))) # (('key1', '1'), ('key2', '2'), ('key3', '3'))
print(dict(zip(list1,list2))) # {'key1': '1', 'key2': '2', 'key3': '3'}

被折叠的 条评论
为什么被折叠?



