一.Number (int float bool complex)
(1)int 整型
①正整数 0 负整数
例:intvar = 123 print(intvar)
>type获取值的类型<
例:print( type(intvar) )
>id获取一个值的地址<
例:print( id(intvar) )
②二进制整型
例:intvar = 0b1111
print(intvar)
print( type(intvar) )
print( id(intvar) )
③八进制整型
intvar = 0o125
print(intvar)
print( type(intvar) )
print( id(intvar) )
④十六进制整型
intvar = 0x1010
var1 = 4112
print(intvar)
print(id(intvar), id(var1))
print( type(intvar) )
(2)float 浮点型 小数
①表达方法一
例:floatvar = 4.88
print(floatvar)
print( type(floatvar) )
②表达方法二 科学技术法
floatvar = 6.7e4
print(floatvar)
print( type(floatvar) )
(3)bool 布尔型 True 真的 False 假的 只有两个值
boolvar = True
boolvar = False
print( boolvar )
print( type(boolvar) )
(4)complex 复数
complex 实数 + 虚数
例:3+4j
3: 实数
4j: 虚数
j: 如果有一个数,他的平方等于-1,那么这个数就是j,表达的是高精度的类型;(科学家认为有)
①表达方式一
complexvar = 56-3j
complexvar = -3j # 可以没有实数部分
print( complexvar )
print( type(complexvar) )
②表达方式二
语法 : complex(实数,虚数)
complexvar = complex(56,-3)
print( complexvar )
print( type(complexvar) )
二.容器类型数据 ( str list tuple set dict)
转义字符 : + 某个字符
☆将有意义的字符变得无意义
☆将无意义的字符变得有意义
,
: 换行
: tab缩进(水平制表符)[一般来说,一个锁进是4个空格的距离
: 将后面的字符直接拉到当前行行首
(1)str 字符串
""" 用引号引起来的就是字符串 """
①特点:可获取,不可修改,有序
②单引号引起来的字符串 strvar = 'aaaaa'
③双引号引起来的字符串 strvar = "bbbbb"
④三引号引起来的字符串 ''' """(支持跨行的效果)
例:strvar = """aaaaa,
bbbbbbbbbb
"""
⑤元字符串 r"字符串" 不转义字符,原型化输出字符串
strvar = r"E:
ython31 ay2"
print(strvar)
⑥格式化字符串
语法 : "字符串" % (值1,值2,值3)
%d 整型占位符
%f 浮点型占位符 (存在四舍五入的情况)
%s 字符串占位符
<1>%d 整型占位符
strvar = "刘子豪便秘,买了%d个开塞露,舒服多了" % (5)
print(strvar)
*** %2d 占两位 原字符串默认居右
%-2d 占两位 原字符串默认居左
strvar = "刘子豪今天%2d岁" % (3)
print(strvar)
<2>%f 浮点型占位符
strvar = "刘子豪给了我%f块钱" % (9.987)
print(strvar)
*** %.2f 小数点保留2位
strvar = "刘子豪给了我%.2f块钱" % (9.987)
print(strvar)
<3> %s 字符串占位符
strvar = "%s" % ("人生如逆旅,我亦是行人")
print(strvar)
&综合案例
strvar = "%s看好了一辆车,特斯拉model x,买了%d辆,花了%.1f元" % ("了刘子豪",10,9.9)
print(strvar)
<4>可以全部使用%s占位符进行取代
strvar = "%s看好了一辆车,特斯拉model x,买了%s辆,花了%s元" % ("刘子豪",10,9.912345)
print(strvar)
(2)list 列表
①特点:可获取,可修改,有序
②定义一个空列表 listvar = [] print(listvar , type(listvar) )
③定义一个普通列表
&正向下标索引 0 1 2 3 4
listvar = [100,19.123,True,1+12j,"刘子豪"]
&逆向下标索引 -5 -4 -3 -2 -1
print(listvar)
<1>获取列表当中的值 res = listvar[2] res = listvar[-3] print(res)
<2>获取列表当中最后一个元素
***python 特有 print(listvar[-1])
***通用写法
len 获取容器类型数据的长度(元素的总个数)
res = len(listvar) print(res)
res = listvar[res - 1] print(res)
***简写 print(listvar[len(listvar) - 1])
<3>修改列表里面的元素 listvar[-3] = False print(listvar)
(3)tuple 元组
①特点:可获取,不可修改,有序
②定义一个空列表 tuplevar = () print(tuplevar , type(tuplevar))
③定义一个普通列表
tuplevar = ("范小花","胡歌","靳东","刘亦菲")
<1>获取元组当中的元素res = tuplevar[1] res = tuplevar[-1] print(res)
<2>不可以修改元组当中的值 tuplevar[0] = "一条大路分两旁" error
<3>判定元组的类型=>逗号才是区分是否是元组的标识符 tuplevar = (123,) tuplevar = 123, print(tuplevar , type(tuplevar))
(4)set 集合 (作用:集合之间的交差并补)
①特点:无序,自动去重
②定义一个空集合 setvar = set() print(setvar , type(setvar))
③定义一个集合
setvar = {"aaa","bbb","ccc","ddd"}
<1>不可以获取集合中的元素 res = setvar[3] error (集合无序)
不可以修改集合中的元素 setvar[0] = "123" error (集合无序)
<2>自动去重 setvar = {"aaa","bbb","ccc","ddd","ddd","ddd","ddd","ddd"} print(setvar)
(5)字典 dict
①特点:键值对存储的数据,表面上有序,实际上无序
②语法: { 键1:值1 , 键2:值2 ..... }
③定义一个空字典 dictvar = {} print(dictvar , type(dictvar))
④定义一个字典 dictvar = {"智多星":"吴用","花和尚":"鲁智深","浪里白条":"张顺","母夜叉":"孙二娘","回手掏":"大司马"}
⑤获取字典的值 res = dictvar["回手掏"] print(res)
⑥修改字典的值 dictvar["回手掏"] = "范小花儿" print(dictvar)
☆字典的键 和 集合中的值 对数据类型有要求
字典的键 和 集合中的值 数据类型的要求必须是如下几种:
如下类型可以: 不可变数据(可哈希的数据类型)
Number(int , float , bool ,complex) , str , tuple
不允许的类型: 可变数据(不可哈希的数据类型)
list , set , dict
但凡提到哈希算法(hash),都是典型的无序特征
目的: 为了更加均匀的把数据分配到内存里,底层用的算法类似于取模.
python3.6版本之后,对字典做了优化,存储数据的时候用哈希算法
但是在拿出数据的时候,重新按照定义字典时的顺序进行重新排序
所以看起来有序,实际上无序