Python基础之数据类型详解(1)

Python基础之数据类型详解

为什么会有数据类型?

在介绍具体的数据类型之前,需要了解为什么需要区分数据类型。我们知道,一个公司会有很多个大的部门,每个部门下又会有许多细分的小部门,构成了公司的完整体系结构。如果把python的数据整体看做是一个公司,那么数据下面会有几个大部门——基本数据类型,而在每个大部门下还有众多小部门——内置方法及功能,每一条数据就像一个员工,会在不同的部门发挥作用。公司有这样的层级是为了提升管理效果,同理,python区分数据类型也是为了:更好的管理内存、便于管理数据,便有人类理解。

为了更好的说明,各种数字类型将按照下面的格式说明:

在这里插入代码片

#=基本使用===
#1、用途
#2、定义方式
#3、常用操作+内置的方法
#该类型总结
#存一个值or存多个值
#有序or无序
#可变or不可变(1、可变:值变,id不变。可变
不可hash 2、不可变:值变,id就变。不可变==可hash)

整型(int)

  1. 用途
    整数类型就是用来表示年龄、年份等这些由数学上的整数构成的数据类型

  2. 定义方式
    x = 10 # x = int(10)
    由上面的定义方式可知,可以通过int()来转换整数类型,但是需要注意:只有全部由数字组成的字符串,才能转换成整型,数字两边可以有空格,但是数字字符间不允许有其他任意符号
    示例1:
    Python基础之数据类型详解(1)

  3. 常用操作+内置的方法
    整型没有太多操作与内置方法,常用的就是算术运算、比较运算、逻辑运算等,此处不做过多讲解

  4. 总结
    存放一个值
    不可变类型

浮点型(float)

  1. 用途
    整数类型就是用来表示身高、薪资等用小数表示的数据类型

  2. 定义方式
    x = 4.3 # x = float(4.3)
    由上面的定义方式可知,可以通过float()来转换浮点数类型,浮点数类型不仅可以将只包含小数的字符串转化成浮点型,字符串内包含整数也是可以转化的。
    Python基础之数据类型详解(1)

  3. 常用操作+内置的方法
    浮点型没有太多操作与内置方法,常用的就是算术运算、比较运算、逻辑运算等,此处不做过多讲解

  4. 总结
    存放一个值
    不可变类型

字符串类型(str)

1.用途
用于记录描述性质的状态

2.定义方式
在"",’’,""" “”",’’’ ‘’'内包含一串字符
Python基础之数据类型详解(1)
字符串转化:字符串可以将任何类型的数据转化成字符串。
Python基础之数据类型详解(1)
3、常用操作+内置的方法
首先是我们最常用的一些操作和方法

  1. 按照索引取值,可取不可改
    Python基础之数据类型详解(1)

  2. 切片,顾头不顾尾,可以指定步长
    Python基础之数据类型详解(1)

  3. 长度len()
    返回字符串的长度

  4. 成员运算in 和 not in
    判断子字符串是否包含在原字符串中,返回布尔值
    Python基础之数据类型详解(1)

  5. 移除特殊符号stirp()
    默认字符串两头移除空格,挡在strip中指定参数后,可移除字符串两头的相应元素
    Python基础之数据类型详解(1)

  6. 切分split()
    根据字符串内部有规律的符号,将字符串切分成一个包含多个元素的列表
    Python基础之数据类型详解(1)

  7. 字符串和可以通过for循环遍历每一个字符
    Python基础之数据类型详解(1)
    Python基础之数据类型详解(1)
    8、一些常用的方法

# stirp、lstrip、rstrip,都可以实现移除特殊字符
msg = "****123****"
msg.strip("*") # 移除两头的"*": "123"
msg.lstrip("*") # 移除左边的"*": "123****"
msg.rstrip("*") # 移除右边的"*": "****123"

# split、rsplit
msg = "12:23:34:56:78"
msg.split(":",2) # 从左边,按照":"分隔符,切分两次:
                 # ['12','23','34:56:78']
msg.rsplit(":",2) # 从右边,按照":"分隔符,切分两次:
                 # ['12:23:34','56','78']

# lower、upper 大小写转换
msg = "Wo SHI XiGazhi"
msg.lower() # 全小写:"wo shi xiguazhi"
msg.upper() # 全大写:"WO SHI XIGUAZHI"

# startswith、endswith,判断开头或者结尾元素,返回布尔值
msg = "dsfgksdhal"
msg.startswith("dsf") # >>>Trueu
msg.endswith("hl") # >>>False

# join(),拼接字符串类型,类似:字符串+字符串
msg = ['sd','saf','fbbdf']
":".join(msg) # 将msg中的字符串用":"连接起来,相当于split()反向操作

# replace(原值,新值,替换次数),复制原有字符串,并将用新元素更新原来的元素,返回新的字符串
msg = "wo shi ha ha shi wo ni shi"
msg.replace("shi","bushi",2) # 用"bushi"替换"shi",替换两次:
                             # "wo bushi ha ha bushi wo ni shi"
print(msg.replace("ha","xi")) # 默认全部替换:"wo shi xi xi shi wo ni shi"

# isdight,判断字符串是否全部由数字组成,返回布尔值
x = b"4" # 字节串
y = "4"  # 阿拉伯数字4
z = "四" # 中文汉字四
m = "Ⅳ" # 罗马数字Ⅳ
x.isdigit() # True,字节串认为是全部由数字组成
y.isdigit() # True,阿拉伯数字认为是数字
z.isdigit() # False,中文汉字不是数字类型
m.isdigit() # False,罗马数字不是数字类型

# format方法,对字符串进行格式化
x = "zhang"
y = 20
"wo shi {} age {}".format(x,y) # 将x,y顺序填充进{}:"wo shi zhang age 20"
"wo shi {y} age {x}".format(x,y) # 不再顺序填充,根据变量填充:
                                 # "wo shi 20 age zhang"
"wo shi {0} {1} {0}".format(x,y) # 将按照索引,把对应的x,y填充:
                                 # "wo shi zhang 20 zhang"

9.一些不常用,但是需要知道的方法


```python
#1、find,rfind,index,rindex,count
msg = "hello zhang xxx zhang yyy zhang zzz"
msg.find("zhang",0,5) # 查找字符串中子字符串第一次出现时的索引,可以指定查找范围(0,5),没有不会报错: > None
msg.find("zhang") # 默认检索整个字符串: > 6
msg.rfind("zhang") # 从右边开始检索,可以指定检索范围: > 26

# msg.index("zhang",1,5) # 和find几乎一样,唯一区别是未找到报错: > 报错
msg.rindex("zhang") # 和find几乎一样,未找到报错: > 6

msg.count("zhang",1,20) # 计算子字符串出现了几次,可以指定检索范围: > 2

# center,ljust,rjust,zfill
msg = "*"
msg.center(20," ") # 指定输入宽度为20,"*"居中显示,其余用空格填充:
                   # "          *         "
msg.ljust(20,"0") # 指定输入宽度为20,居左显示,其余用0填充:
                # *000000000000000000
msg.rjust(20,"-") # 居右显示,宽度为20,其余用"-"填充:
                  # ------------------*
msg.zfill(20) # 居右显示,默认用0填充,等价于:msg.rjust(20,"0")

# captalize,swapcase,title
msg = "hellO woRld"
msg.capitalize() # 字符串首字母大写: Hello world
msg.swapcase() # 两级反转,大小写互换: HELLo WOrLD
msg.title() # 单词首字母大写: Hello World

#、is数字系列
num1=b'4' #bytes
num2='4'  # 阿拉伯数字
num3='四' #中文数字
num4='Ⅳ' #罗马数字

# 1、变量值是字节串或字符串类型并且包含的阿拉伯数字,isdigit()结果才为真
print(num1.isdigit())
print(num2.isdigit())
print(num3.isdigit())
print(num4.isdigit())

# 2、变量值是字符串类型并且包含的阿拉伯数字,isdecimal()结果才为真
print(num2.isdecimal())
print(num3.isdecimal())
print(num4.isdecimal())

# 3、变量值是字符串类型并且包含的阿拉伯数字\中文数字\罗马数字,isdecimal()结果才为真
print(num2.isnumeric())
print(num3.isnumeric())
print(num4.isnumeric())

#5、is其他
name='egon123'
print(name.isalnum()) #字符串由字母或数字组成
print(name.isalpha()) #字符串只由字母组成

4、总结
存放一个值
不可变类型

列表(list)

元组(tuple)

字典(dict)

咱们下期见!

上一篇:DOS内核学习 - DOS专用中断


下一篇:linux的find命令之mtime/atime/ctime +n -n n