Python笔记_02_标准数据类型_number_string_list_tuple_set_dict_哈希算法_自动类型转换

Python的六大标准数据类型

  1. Number 数字类型(int float bool complex)
  2. String 字符串类型
  3. List 列表类型
  4. Tuple 元组类型
  5. Set 集合类型
  6. Dict 字典类型
    其中str list tuple set dict统称容器类型数据

Number 数字类型分类

int : 整数类型

(正整数[各种进制] 负整数 0)

intvar = -15
print(intvar)
intvar = 0
print(intvar)

# type  用来获取变量的类型 
# id    用来获取变量所指向那个值的地址
res = type(intvar)
print(res)

print(type(intvar))
print(id(intvar))
  • 表达二进制整型

    intvar = 0b011
    print(intvar)
    print(type(intvar))
    print(id(intvar))
    
  • 表达八进制整型

    intvar = 0o13
    print(intvar)
    print(type(intvar))
    print(id(intvar))
    
  • 表达十六进制整型

    intvar = 0xFF
    print(intvar)
    print(type(intvar))
    print(id(intvar))
    
float: 浮点数类型
  • 表达形式一: 普通小数

    floatvar = 3.14
    print(floatvar)
    # 获取类型
    print(type(floatvar))
    # 获取地址
    print(id(floatvar))
    
  • 表达形式二: 科学计数法

    floatvar = 4.13e-3
    print(floatvar)
    floatvar = 5.55e4
    print(floatvar) #55500.0
    
bool : 布尔值类型

(真True和假False)

boolvar = True
print(boolvar)
boolvar = False
print(boolvar)
print(type(boolvar))
print(id(boolvar))
complex: 复数类型

(复数用作于科学计算中,表示高精度的数据,科学家会使用)

  • 表达方式一

    complexvar = 5+6j
    complexvar = 3-2j
    print(complexvar)
    print(type(complexvar))
    print(id(complexvar))
    
  • 表达方式二

    # complex(实部,虚部)
    res = complex(14,-2)
    print(res)
    

string 字符串类型

用引号引起来的就是字符串
三种引号: 单引号 双引号 三引号

特征:可获取 不可修改 有序

转义字符: \
  • 把有意义的字符变得无意义

  • 将无意义的字符变得有意义

    \n 或者 \r\n : 换行
    \t 一个缩进 (水平制表符)
    \r : 将\r后面的所有字符拉倒当前行首

单引号表达字符串
strvar = '今天天气好晴朗哦'
print(strvar)
print(type(strvar))
双引号表达字符串
strvar = "手拿\n小灵通"
print(strvar)
strvar = "走在\t风雨中"
print(strvar)
strvar = "左\r\n手换右手"
print(strvar)
strvar = "右手\r打不通"
print(strvar)
strvar = "右\n手\r打不通"
print(strvar)
strvar = "走在'冷'风中"     # 类似于注释的用法,如果外面是双引号,里面需要单引号,反之亦然.
print(strvar)
strvar = "走在\"冷\"风中"   # 硬要使用双引号 使用\ 进行转义
print(strvar)
三引号表达字符串

(三引号的字符串支持跨行)

strvar = ''' 
轻轻的我走了,
正如我轻轻的来
'''
print(strvar)

strvar = """
我轻轻的'挥一挥'衣袖,
不带"走一片"云彩,
"""
print(strvar)
元字符串

元字符串可以让转义字符失效

strvar = r"本来\n无一物"
print(strvar)
strvar = r"C:\Windows\appcompat\nabc"
print(strvar)
字符串的格式化

%d %f %s
语法: “字符串” % (实际值)

  • %d 占位符 代表整型
strvar = "何键翰买了%d个充气娃娃" % (3)
print(strvar)
# %2d 占2位,默认字符居右,用空格补位
strvar = "黄文买了%d本相对论" % (3)
print(strvar)
strvar = "黄文买了%4d本相对论" % (3)
print(strvar)
# %-4d 占4位,默认字符居左,用空格补位
strvar = "黄文买了%-4d本相对论" % (3)
print(strvar)
  • %f 占位符 代表浮点型 默认保留6位小数点
strvar = "今天大白菜%f一斤" % (2.35)
print(strvar)
# %.2f 保留2位小数 存在四舍五入的情况
strvar = "今天大白菜%.2f一斤" % (2.354)
print(strvar)
  • %s 占位符 代表字符串
strvar = "%s" % ("易思")
print(strvar)
  • 综合案例: 参数按照顺序一一写入
strvar = "郑璐今天发工资一共%.2f元,买了%d量布加迪威龙,心情%s" % (999.129,10,"爽爆了")
print(strvar)

(6) 字符串的获取

# 获取字符串当中的元素 可以使用下标
tuplevar = "罗婷是咱们班唯一一个美女"
res = tuplevar[-2]
print(res)

# 修改行不行? 不行
# tuplevar[-2] = "恶" error

list 列表类型

定义一个空列表

特征:可获取,可修改,有序

listvar = []
print(listvar)
print(type(listvar))
列表的获取

通过下标获取对应值

#            0    1    2     3      4      5    正向下标
listvar = ["明天", 2, 3.33, True, False, 3 - 2j]
#           -6   -5   -4    -3     -2     -1    逆向下标
print(listvar)
res = listvar[3]
print(res)
# 能够通过逆向下标瞬间得到列表里面的最后一个值
# res <==> result
res = listvar[-1]
print(res)

# 获取列表最后一个值 ,通用做法
# len 获取列表的长度(元素的个数)
lengthvar = len(listvar)
print(lengthvar)
res2 = lengthvar - 1
print(res2)
print(listvar[res2])
# 简写
print(listvar[len(listvar) -1 ])
列表的修改
listvar[3] = "20190425"
print(listvar)

tuple 元组类型

定义一个空元组

特征:可获取 不可修改 有序

tuplevar = ()
print(tuplevar,type(tuplevar))

# 见证是不是元组,取决于逗号, 但是声明空元祖时可以使用()
tuplevar = ("sdf",)
print(tuplevar,type(tuplevar))
获取元组中的数据
# 获取元组中的数据
tuplevar = ('刘五星', '朱思华', '熊卫华', '马俊强')
print(tuplevar)
print(tuplevar[2])
print(tuplevar[-1])

# 是否可以修改元组中的值? 不允许
# tuplevar[0] = 1  error

set集合类型

定义一个空集合

特征: 自动去重 无序 不能获取 不能修改

setvar = set()  # set() 强制转换成一个空集合的数据类型
print(setvar,type(setvar))

setvar = {'刘德华', '张学友', '郭富城', '王文'}
print(setvar)
不能修改
# 集合不能够修改或者获取其中的数据
# 是否可以获取集合当中的值? 不行
setvar[1] # error 

# 是否可以修改集合当中的值? 不行
setvar[1] = 123 # error
集合能够自动去重
setvar = {'刘德华', '张学友', '郭富城', '王文', '王文'}
print(setvar)

dict 字典类型

定义一个空字典

特征: 键值对存储的数据 无序 可获取 可修改

dictvar = {}
print(dictvar,type(dictvar))
获取字典当中的值
# 他是有键值对存储的数据,冒号左边的是键,右边的是值,键值对之间用逗号隔开.
dictvar = {
    'top': '盘古',
    'middle': '甄姬',
    'bottom': '李元芳',
    'jungle': '李白',
    'support': '蔡文姬'}
print(dictvar)

# 获取字典当中的值
res = dictvar["bottom"]
print(res)
修改字典当中的值
dictvar['middle'] = "王昭君"
print(dictvar)
字典键的命名

一般在命名字典的键时,推荐使用字符串,按照变量命名的字符串.

# 以下命名语法成立,但不推荐
dictvar = {1: 111, 3.14: 222, False: 2323,
           3 + 4j: 555, '123': 666, (1, 2, 3): 888}
print(dictvar)

哈希算法

定义:

把不可变的任意长度值计算成固定长度的唯一值,这个值可正可负,可大可小,但长度固定
该算法叫哈希算法,这个固定长度值叫哈希值

特点:

哈希过的数据存储时,是一个随机存放的散列,并不是按照次序依次存放的,
所以通过哈希算法存储数据的速度较快.

查找:

字典的键就是按照哈希算法算出来的,可以通过该键找散列中的对应值,形成映射关系
集合中的值也是通过哈希算法计算后存储的
所以集合,字典本质上无序

版本:

3.6版本之前都是无序的
3.6版本之后,把字典的字面顺序记录下来,当从内存拿数据的时候,根据字面顺序重新排序,所以看起来像有序,但本质上无序

可哈希数据:

可哈希的数据 (不可变的数据):Number(int float bool complex) str tuple
不可哈希的数据 (可变的数据): list set dict

自动类型转换

(针对于Number数据类型来说的)

当2个不同类型的数据进行运算的时候,默认向更高精度转换
数据类型精度从低到高:
bool -> int -> float -> complex

# True 转化成整型是1  False 转化成整型是0
# bool + int 
res = True + 1
print(res)

# bool + float 
res = True + 4.14
print(res)

# bool + complex
res = False + 3j
print(res)

# int + float
# 本质上存在精度损耗,因为小数的二进制在内存中是无限循环没有终止,一般进行截取15~18位
res = 5 + 6.88
print(res)

# int + complex
res = 2 + (4 + 2j)
print(res)

# float + complex
res = 3.55 + (-4 - 2j)
print(res)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值