字符串
1. 字符串的创建
#type() 函数 查看对象的类型
即为字符串类型(class表示‘类别’)
#常用类型 str int float bool
#布尔类型(bool)只包含两个整数,分别是1和0 (1代表TRUE,0代表FALSE)
2. 字符串转义符
转义字符 | 描述 |
\ (在行尾时) | 续航符 |
\ \ | 反斜杠符号 |
\ " | 双引号 |
\ ’ | 单引号 |
\n | 回车符,将光标移到下一行开头 |
\r | 回车符,将本行数据清除,将光标移到本行开头 |
\t | 水平制表符,也即Tab键,一般相当于四个空格 |
\b | 退格(Backspace),将光标位置移到前一列 |
#续航符把多行数据变成一行
#\n 把一行数据变成多行
3. 字符串格式化
原本:
输出中冒号与数字之间还是有间隙,而且输出代码比较麻烦。#如何把数字嵌入到字符串里面去?----字符串格式化解决
字符串格式化有三种
: format , % , f‘ ’(3.7以上的版本,就是format的简写)
1.format
字符串format()格式化数据:
使用方法:
value=100#将value放置在大括号的位置
data='我有{}元'.format(value)
print(data)
运行结果:
我有100元
若要写如多个,比如:
age=18
value=100
data='我{1}岁,我有{0}元'.format(value,age)
#format中两者顺序不重要,想要顺序,{0}表示format第一个,{1}表示format第二个,以此类推
#若{}中的顺序与format中的顺序一致,则可以不用添加0,1等
print(data)
输出结果为:
我18岁,我有100元
在Python中,{:.2f}中的:表示分割点,如{:}就是无分隔,数字正常输出,如{:.2f}表示在小数点后两位断,即只取小数点后两位。
例如:
value=100.12345
print('我有{:.2f}元'.format(value))
输出结果为:
我有100.12元
若输入为:
value=100.12345
print('我有{:}元'.format(value))
输出则为:
我有100.12345元
2.%
字符串%传统格式化符号(最前面三个需背下来,后面需了解)
符号 | 描述 |
%s | 格式化字符串 |
%f | 格式化浮点数字,可指定小数点后的精度 |
%d | 格式化整数 |
%c | 格式化字符及ASCII码 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x(%X) | 格式化无符号十六进制数 |
%e(%E) | 用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%G | %f和%E的简写 |
%p | 用十六进制数格式化变量的地址 |
%的使用:
value=100
age=18
data='我%s岁,我有%s元' % (age,value)
print(data)
输出为:
我18岁,我有100元
同理,当我们需要的数字是小数点(即浮点型),输入为:
value=100.12345
age=18
data='我%s岁,我有%.2f元' %(age,value)
print(data)
输出为:
我18岁,我有100.12元
浮点型是专门为了保留特定的小数位数需要的
3.f’ ’
使用方法相对format简单一些,直接一些,但是有版本要求(版本要求在3.7以上)
如:
value=100
age=18
data=f'我{age}岁,我有{value}元'
print(data)
输出为:
我18岁,我有100元
#一般这种方法不用浮点型,若用浮点型一般直接使用第二种方法
4. 字符操作符
1." + " , 多个字符串的拼接
data1='a'
data2='b'
print(data1+data2)
输出为:
ab
注:字符串是不能和整数进行拼接运算的,(str不能和int拼接),如:*规定age=20,不能改为age='20'*
age=20
data='我'+age+'岁'
print(data)
输出结果是会报错的
若改为:
age=20
data='我'+'age'+'岁'
print(data)
输出则变成:
我age岁
若想正常输出完整句子,需要数据类型强转
2.数据类型强转
int() #转换成int类型
str() #转换成str类型
bool() #转换成bool类型
float()#转换成float类型
几乎Python中所有类型都是可以完成数据类型强转的
我们只需要将上述题目中
data=‘我’+age+'岁’转换成data=‘我’+str(age)+'岁’即可
操作符 | 描述 |
+ | 字符串连接 |
* | 重复输出字符串 |
[ ] | 通过索引获取字符串中字符 |
[ : ] | 截取字符串中的一部分 |
in | 成员运算符-如果字符串中包含给定的字符返回True |
not in | 成员运算符-如果字符串中不包含给定的字符返回True |
r/R | 原始字符串-原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符 |
print(‘abc’*100)——abc重复一百次 | |
r\R的作用:使用后所有的特殊符号全都无效 |
data=C:\Users\14317\Desktop\ppt
如果不想一个个按,使每个’‘变成’\',从而使转义符失效,可以写成:
data=r'C:\Users\14317\Desktop\ppt'
可以达到同样效果
#[ ] 通过索引获取字符串中字符
索引分为两种,正索引和负索引,
以字符串abcd为例,
正索引即从左向右从0开始数,即abcd(0 1 2 3);
负索引即从右向左从-1开始数,即abcd(-4 -3 -2 -1)
data='abcd'
print(data[1])
输出为
b
若想要取多个,则需要用到“[ : ]”符号(切片–从一个索引切到另一个索引)
print(data[ : ])----从头切到尾,获取全部数据,就相当于没有切
切分点如下(还是以abcd为例):
正索引 负索引
| a | b | c | d | | a | b | c | d |
0 1 2 3 4 -4 -3 -2 -1 0(此0实际上不可以写在代码中,因为它实际上不存在)
#正索引和负索引中都有0,但是只认正索引的0,负索引的0只是为了方便理解
data='abcd'
#正索引 #负索引
print(data[0:2]) print(data[-1:])
输出结果:
#正索引 #负索引
ab d