Python的数据类型分为数值型和字符型

数值型:

  • 整数:整数的类型用int来表示。python可以处理任意大小的整数,当然可以包括负整数。

        比如:

        

python数值转换函数 python将数值转换为整数_字符串

        字符串整数可以通过int()强转成整数类型。

        比如:

        也可以用int()将浮点数强转为整数,强转是不四舍五入的

        比如:

        

python数值转换函数 python将数值转换为整数_元组_02

        如果要将字符型的浮点数强转成整数需要先用float()把这个字符串强转成浮点数,在用int()强转成整数

        比如:

        

python数值转换函数 python将数值转换为整数_字符串_03

 

  • 浮点数:

 

        浮点数也就是小数,类型用float来表示。

        比如:

        

python数值转换函数 python将数值转换为整数_浮点数_04

        注:整数和浮点数在计算机内部的存储方式是不同的,整数的计算是永远精确的(包括除法),而浮点数运算则可能出现误差

        比如:

        

python数值转换函数 python将数值转换为整数_python数值转换函数_05

        可以看到浮动运算会有一定的误差,在使用的时候我们一般先将浮点数成10的N次方,将它变成整数,然后进行运算,再除以10的N次方,这样可以保证数据的准确性。

  • 布尔型:

        布尔值的类型用bool来表示

        比如:

        

python数值转换函数 python将数值转换为整数_元组_06

        布尔的值只有两个:Ture和False

        注:

        所以数据都自带布尔值

所以布尔型也属于数值型)

字符型:  

  • 字符串常用单引号,双引号或者三引号括起来。类型用str来表示。

    单引号或者双引号,可以用转义字符来标识,三引号可以直接写多行,

    这样回车换行的话前面就变成三个点,最后用三引号结束就可以了

    比如:

    

python数值转换函数 python将数值转换为整数_字符串_07

  • 常用的转义字符:\n表示换行,\t表示制表符,\\表示\

    如果不想用转义字符,可以用r''这种方式来写,这样内部的内容就不需要转义了

    

python数值转换函数 python将数值转换为整数_字符串_08

  • 字符型有一个特性是一旦创建就不可改变。

    举个例子:当你创建了一个字符串变量a,然后给它赋值为ABC,python解释器就会创建一个a变量,然后再创建一个空间存储ABC,再让a变量指向这个空间的地址。当你改变一个字符串的时候,它就会再开辟一个空间来存储这些字符    串内容,然后让a变量指向新的字符串空间地址

    例如:

a = "地址一"
print(id(a))      # 2907158346448
a += "二"
print(a)          # 地址一二
print(id(a))      # 2907157753504
  • 字符串可以通过下标取值,但是不可以修改,否则会报错

是str,在内存中是用Unicode码表示的,一个字符对应若干个字节,如果要在网上传输或者保存到硬盘上,就需要将str变成以字节为单位的bytes,python对bytes类型的数据用带b的前缀的单引号,或者双引号表示。

    可以通过:字符串.encode("编码格式")转换成对应的编码表示

    可以通过:字符串.decode("编码格式")将编码转换为对应的字符串

 

列表:

    列表是一种用中括号([])包裹起来的有序集合,用list来表示,它可以存储任意的类型的数据。

    列表在内存中的表现是链表形式存储,即每个元素存储的地方可以能连续,每个元素的后面都会存放一个内存地址来找到下一个元素的位置。

    所以列表元素是可以被修改的,可以通过下标来获取元素,取最后一个可以用-1。如果超过下标的值会报错。

列表方法:

# append()  将参数作为元素添加到列表中去
a = [1, 2]
a.append([3, 4])    
print(a)    # [1, 2, [3, 4]]
# extend()  将参数列表逐个添加到列表中去
a = [1, 2]
a.extend([3, 4])
print(a)    # [1, 2, 3, 4]
# insert(index, object)     在指定位置index前插入元素object
a = [1, 2, 3, 4]
a.insert(1, [3, 4])
print(a)    # [1, [3, 4], 2, 3, 4]
# 修改元素有两个方法,一个是通过下标,一个是通过切片(切片是左闭右开区间)
a = [1, 2, 3, 4]
# 方式一:下标修改
a[1] = "中"
print(a)    # [1, '中', 3, 4]
# 方式二:切片修改,也可以实现删除
a[2:3] = ["天", "下", "大", "同"]   # [1, '中', '天', '下', '大', '同', 4]
print(a)
a[2:3] = []
print(a)    # [1, '中', '下', '大', '同', 4]
# a.index(x,begin,.end)       # 在a中的begin和end之间,查找字符x的下标,没有会报错
a = [1, 2, 3]
print(a.index(2))   # 1
列表.count(x, begin, end)    # 查询x在列表中的个数
del 列表[下标值]             # 根据下标进行删除
列表.pop()                   # 删除最后一个元素,也可以针对指定的下标删除,会返回删除的内容
列表.remove(元素)            # 将指定的元素从列表中删除
列表.sort(reverse=True)      # sort方法是将列表按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小。
列表.reverse()                # reverse方法是将list逆置。]

元组:

    元组和列表类似,也是一种有序的,可以存储任意类型数据的容器,它使用括号(())包裹,用tuple来表

    需要注意的是:元组一旦初始化就不可以修改。或者说它的第一层不可以改变,但它的元素中如果包括容器,那个容器里面的内容就可以修改。

    比如:

a = (1, 2, 3, [4, 5])
a[3][1] = 9
print(a)        # (1, 2, 3, [4, 9])

 

    注:元组在使用的时候,很容易和方法混淆,所以在最后一个元素的后面一般加一个逗号,这样也不报错,建议加上,

    查的方式和列表一样,只是记住不可以删除

集合:

    集合表示为set,很类似list列表,但它是不同元素(必须是不可变类型)组成的,无序的容器,它使用花括号({})包裹,set和字典类似,也是一组key的集合,但是不存储value,由于key不能重复,所以,在集合中没有重复的key。

    比如:

    

python数值转换函数 python将数值转换为整数_python数值转换函数_09

     集合常用方法:

# 集合名.pop()           会随机删除
# 集合名.add(元素)       添加元素
# 集合名.remove(元素)    如果删除的没有,会报错
# 集合名.discard(元素)   删除的没有不会报错

a = {1, "2", (3, 4), "4", 2}
a.add("22")
print(a)        # {1, 2, '2', '22', '4', (3, 4)}
a.pop()
print(a)        # {2, '2', '22', '4', (3, 4)}
a.remove(2)
print(a)        # {'2', '22', '4', (3, 4)}
a.discard("9")
print(a)        # {'2', '22', '4', (3, 4)}
两个集合求交集:集合1 .intersection(集合2)或者集合1 & 集合2
两个集合求并集:集合1 union(集合2)或者集合1 | 集合2
两个集合求差集:集合1.difference(集合2)或者集合1 - 集合2   #集合1中的那个成员不在集合2中的返回
两个集合交叉补集:集合1 ^集合2     #并集减去交集

字典:

    字典表示为dict,使用键值对的形式来存储数据的,使用的时候用花括号({})来对这些键值对进行封装,而且内部也是无序存储的。相对于list来说,字典的查询速度快,不会随着key的增加而变慢,但是需要大量的内存。这个通过key计算位置的算法被称为哈希算法。

    如下:

    

python数值转换函数 python将数值转换为整数_元组_10

    注:键可以使用:元组,数字,字符串,如果是布尔值,会忽略,如果是字典或者列表,会直接报错。

    如果键重复,只保留最后一个

  字典常用方法:

# 取字典值可以用键来取,如果写的是字典中没有的键,会报错,一般用get来取值,没有对应的键会返回None,get的第二个参数可以设置返回的值
a = {"name": "张三", "age": 18, "sex": "男"}
print(a["name"])    # 张三
print(a.get("name"))    # 张三
print(a.get("nam"))     # None
print(a.get("nam", "找不到"))      # 找不到
print(a["nam"])     # 报错
# 添加一个键值对,直接用:字典名["键名"] = 值
a = {"name": "张三", "age": 18, "sex": "男"}
a["address"] = "北京"
print(a)
# 字典名.keys() 返回字典所有key,并放在一个类似列表的dict_keys类中
# 字典名.values() 返回字典所有value,并放在一个类似列表的dict_values类中
# 字典名.items() 返回所有key和values,所有的键值对分别构成一个元组,并放在一个类似列表的dict_values类中
a = {"name": "张三", "age": 18, "sex": "男"}
print(a.keys())
print(type(a.keys()))
print(a.values())
print(type(a.values()))
print(a.items())
print(type(a.items()))

# 注:可以在for循环中用拆包的方式分别获取key和value值
# 删除一个键值对可以用:del 字典名["键名"]
# 删除字典则是:del 字典名
# pop也可以删除一个键值对:字典名.pop(键名,参数二),如果没有对应的键,返回第二个参数,不写的话会直接报错
# 随机删除一个键值对:字典名.popitem()
# clear是清空字典
a = {"name": "张三", "age": 18, "sex": "男"}
del a["name"]
print(a)       # {'age': 18, 'sex': '男'}
print(a.pop("hobby", "没有"))
a.popitem()    # {'sex': '男'}
print(a)
a.clear()
print(a)       # {}
del a
print(a)       # a被删除,not defined

其他:

di.setdefault("k111","123")    # 设置值,如果键存在,则返回原有值,如果不存在,则将第一个参数作为键,第二个参数作为值插入到字典中,并返回值
di.update({"k1":"111","k2":"324"})        # 设置值,如果已经存在则覆盖,不存在则填入,参数中也可以用k1=23,k2="daf"这种格式
根据序列创建字典,di.fromkeys({"k1","k2","k3"],123)      # 参数中,第一个列表是所有的key,第二个是指定统一的val