02-数据类型

数据类型

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'}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值