在python中,数据类型主要分为三类,其为数值类型、序列类型以及散列类型,而相应的,在这三类大的类型下还有更细的划分,比如数值类型又分为整形、浮点型、布尔值等,序列类型又分为列表、元组等,散列类型又分为字典、集合等,下面我们来对其进行相应的学习
一、数值类型:
1.1 整数类型 --int
从其命名即可看出所谓的整形即与数学上所说的整数一般
比如10,20,100,-20,0等数字都可看作整形
1.2浮点类型 --float
浮点型也就是小数,例如1.3,3.14,-9.05等都为浮点类型,另外,在这里介绍一下对应的科学计数法
语法:aen或aEn,式中a为底数,e/E为固定的字符,用于分割尾数部分和指数部分,n即为指数部分
例如0.000012用科学计数法表示即为1.2e-5、3.7e-2即表示0.037
科学计数法及十进制表示法都可表示浮点数
在这里需要注意,只要数值写成指数形式就是小数,即使该数值的最终值看起来像是一个整数
比如下面这段代码:
print(14e3)
14000.0
可以看出14e3如果写成数学意义上的数值应为14000,但运行的结果却为14000.0
这符合上句所述
另外,让我们一起看一下下面这段代码
num = 0.0000000314
print(num)
3.14e-8
可以看出,当打印的数字为极小的小数时,编译器会默认打印为科学计数法的形式
1.3 布尔值(也称布尔类型) --bool
布尔类型就是用来表示真和假的类型
其只有True和False两种值
True 表示真(即表示条件满足或者成立)==》1
False 表示假(即表示条件不满足或者不成立)==》0
例如下面这段代码
print(3>2)
print(2>3)
#输出结果如下
True
False
可以看出,当结果为真时,打印的结果为True,相反则为False
二、序列类型
2.1 字符串 -str
字符串是以单引号,双引号括起来的任意的文本,用来记录信息
注意:不管单引号' '还是双引号" "都只是表示方式,不是字符串的一部分
同时,若内层有单引号的话,外层就得使用双引号
例如,下面这段代码
print("I'm python")
#输出结果
I'm python
#若不使用双引号则编译器将会报错
下面,介绍一下其基本使用
相加和相乘
比如,下面这段代码
A = "Hello"
B = "python"
print(A+B)
print(A*5)
#输出结果如下
Hellopython
HelloHelloHelloHelloHello
可以看出,相加就是简单的将字符串进行拼接,相乘就是将字符串和其自身相加了5次
另外,介绍一下字符串的索引和切片,索引可分为两种取值顺序
1、从左往右索引,默认从0开始,最大范围是字符串的长度减1
2、从右往左索引,默认-1开始,最大范围是字符串的开头(长度)
比如,下面这段代码
A = "python"
print(A[3])
print(A[-2])
#输出结果如下
h
o
在上面这段代码中,h的下标从左到右为3,因此打印结果即为h,o的下标从右到左为-2,因此,打印结果即为o。
切片(顾头不顾尾,步长)
语法:
str[start(默认为0):end:step]
比如,下面这段代码
A = "hello world"
print(A[0:8])
print(A[:8]) # 开始的下标不写的话默认为0
print(A[:]) # 从头取到尾
print(A[0:9:2]) #取出索引值为0 2 4 6 8的字符
# 反向切片
print(A[::-1]) # 步长为-1就是从右到左取值
#输出结果
hello wor
hello wor
hello world
hlowr
dlrow olleh
2.1.1常用方法
语法:字符串.方法名()
2.1.1.1 find()
范围查找子字符串,返回索引值,没有则返回-1
语法:
str.find(str,beg=0,end=len(string))
- str ---》指定检索的字符串
- beg ---》开始的检索,默认值为0
- end ---》结束的索引,默认为字符串的长度
常用于检测字符串中是否包含子字符串
比如,下面这段代码
A = "Hello python"
print(A.find("H")) # H的索引值就是0
print(A.find("python")) # 找到python则返回首字符的索引6
print(A.find("pythonn")) # 找不到返回-1
#输出结果
0
6
-1
A = "python,helloWorld,java,php"
print(A.find("h")) # h的索引值就是0
print(A.find("h",4)) # 从下标为4后面开始找
print(A.rfind("h")) # 从后面往前找
#输出结果
3
7
24
2.1.1.2 index()
检测字符串中是否包含子字符串str,如果指定beg和end范围,则检查是否包含在指定范围,和find差不多,只不过如果子str不在字符串中会报错
比如,下面这段代码
A = "python,helloWorld,java,php"
print(A.index("World"))
print(A.index("Worldd")) #找不到就报错
#输出结果
12
#报错信息
2.1.1.3 count()
返回找到的字符串个数,找不到就返回0
比如,下面这段代码
A = "hello python"
print(A.count("h"))
#输出结果
2
在字符串A中,h出现两次,故打印结果为2
2.1.1.4 strip()
去除字符串两边的空格,换行符,制表符,得到的是一个新的字符串
比如,下面的这段代码
code = " hello "
date = code.strip()
if date == "hello":
print(date)
else:
print("输入有误")
#输出结果
hello
2.1.1.5 startswith(),endswith()
startswith(),判断字符串是否以什么开头,得到一个布尔值
例
A = "python"
B = A.startswith("p")
#输出结果
True
endswith(),判断字符串是否以什么结尾,得到一个布尔值
例
A = "hellopython"
B = A.endswith("n")
c = A.endswith("o")
print(B)
print(c)
#输出结果
True
False
2.1.1.6 isdigit()
判断字符串是否是由数字组成,返回布尔值
例
num1 = "123456"
num2 = "123个"
print(num1) # 全数字
print(num2) # 非全数字
#输出结果
True
False
2.1.1.7 lower(),upper()
lower() ---》转小写
upper() ---》转大写
例
A = "D"
print(A.lower())
B = "d"
print(B.upper())
#输出结果
d
D
2.1.1.8 split()
切分字符串,将字符串转成列表,默认以空格切分,也可以指定字符切分
例
A = "my name is python"
print(A.split()) # 以空格切分
B = "my,name,is,python"
print(B.split(",")) # 以逗号切分
#输出结果
["my","name","is","python"]
["my","name","is","python"]
注意:这里所说的以空格或者以其他字符切分指的是在给定字符串中的字符,比如上面·给出的字符串A中含空格,而以空格切分则是去除其中空格并将其转成列表,字符串B同理
2.1.1.9 replace()
替换字符串的内容,并得到一个新字符串
语法:
str.replace("原字符","需要替换的字符")
例
A = "Hello python"
print(A.replace("Hello","hello"))
#输出结果
hello python
2.1.1.10 join()
将序列中的元素以指定的字符串连接生成一个新的字符串,常用于将列表转为字符串
例
arr = ["my","name","is","python"]
print(" ".join(arr))
print("-".join(arr))
#输出结果
my name is python
my-name-is-python
2.1.2字符串的格式化输出
2.1.2.1 %占位符写法
首先,介绍一下常用的占位符
- %s = 字符串 ----》只能放字符串
- %d = 整数 ----》只能放整数
- %f = 小数 ----》默认保留6位小数点
如果只需要保留一位或者两位小数,则只需要将%f 改写为%.1f 或者 %.2f 即可
下面,介绍其语法
("xxx%dxxx%sxxx%f"(变量1,变量2,变量3)) #注意:占位符需在引号内部
例
A = "python"
B = 3.14
C = 10
print("Hello,%s,小数%f,整数%d"%(A,B,C))
#输出结果
Hello,python,小数3.140000,整数10
2.1.2.2format方法
语法:
"{}{}{}".format(数据1,数据2,数据3)
例
A = "python"
B = 3.14
C = 10
print("Hello{},小数{},整数{}".format(A,B,C))
#输出结果
Hellopython,小数3.14,整数10
注意:传入的数据类型是没有限制的,字符串,列表,元组都可作为数据被传入,数据需要和{ }的顺序一一对应,如果不想按顺序传入,也可采用下面的方法
"{下标1}{下标2}{下标3}".format(数据1,数据2,数据3)
例
print("Hello{1},小数{0},整数{2}".format(3.14,"python",10))
#输出结果
Hellopython,小数3.14,整数10
2.1.2.3f-format方法
语法
f"xxx{数据1}xxx,xxx{数据2}xxx,xxx{数据3}xxx"
例
A = "python"
B = 3.14
C = 10
print(f"Hello{A},小数{B},整数{C}")
#输出结果
Hellopython,小数3.14,整数10
在 f-format 方法中,花括号 {} 里的内容还可进行索引,加减乘除等操作
例
A = "python"
B = 3.1
C = 10
print(f"Hello{A[2]},小数{B+2},整数{C*10}")
#输出结果
Hellot,小数5.1,整数100
好了,以上就是本期中字符串的所有内容,如果有需要修改的地方,还请各位小伙伴指出,下一期将会是序列类型的完结,喜欢的小伙伴记得关注一下哦~