1什么是字符串
序列,有序,不可变的。
用单引号或者双引号括起来的任意字符集
2.字符串中的字符
a.普通字符:普通的数字或者字母,或者一些普通的符号 这种也是可以的☆
b.转义字符:\n(换行),\t(表示一个tab),'(表示一个单引号),",\
阻止转义:r/R print(r"sfa\nsdf")
2.字符编码
python中的字符采用的是Unicode编码
a.什么是编码
就是数字和字符一一对应的,其中字符对应数字就是字符的编码
计算机存储数据都是用数字存储
每一个字符对应一个数字 ->a-97 b-98 余-20313
b.编码方式
ascii码表:针对数字字符,字母字符,一些英文中常用的符号进行编码
采用一个字节对字符进行编码(128个字符)
Unicode码:Unicode码包含了ascii码表,同时能够对世界上所有语言对应符号进行编码
采用两个字节对字符进行编码,能编码65536个字符
中文:4e00~9fa5
c.两个函数
chr(编码值)- 将字符编码转换成字符
print(chr(0x0087))
ord(字符) - 获取字符对应的编码值
d.可以将字符编码放到字符串中便是一个字符:\u + 4位的16进制编码值
print(ord('周'), ord('海'), ord('龙'))
var1 = 100
if var1:
print("true")
print(var1)
var2 = 0
if var2:
print("true")
print(var2)
print("goodbye")
age = int(input("请输入你家狗的年龄:"))
print("")
if age < 0:
print("你是在给我开玩笑吧")
elif 0<age<1:
print("相当于14岁的人")
elif age==2:
print('相当于22岁的人')
else:
print('老人')
input("点击 enter 退出")
一旦一个字符确定,那么字符串中的每个字符的位置就确定
而且每个字符会对应一个用来表示其位置和顺序的下标值。
1.下标(索引)
字符串中的每个字符都有一个下标,代表其在字符串中的位置下标的范围是:0 ~ 字符串长度-1 (0代表第一个字符)
-1 ~ -字符串长度 (-1代表最后一个字符的位置)
'abc' a: 0/-3 b:1/-2 c:2/-1
在字符串中\n \u4566 代表一个字符
1.获取单个字符
语法:字符串[下标] -获取字符串中,指定下标对应的字符
说明:字符串 - 可以是字符串常量,也可以是字符串变量
[] - 固定写法
下标 - 字符的下标,不能越界
3.获取部分字符
方法1
语法:字符串[开始下标:结束下标:步长]
开始下标、结束下标 - 下标值
步长 - 整数
功能:从开始下标开始获取到结束下标前为止,每次下标值增加步长对应的值
str1 = 'hello python'
print(str1[6: 9: 1])
print(len(str1))
输出的结果为pyt
注意:当步长是正数(从前往后取),开始下标对应的字符要在结束下标对应的字符的前面
当步长是负数(从后往前取),开始下标对应的字符要在结束下标对应的字符的后面
结束下标对应的值取不到
方法2:
语法:字符串[开始下标:结束下标] (相当于步长是1)
4.获取部分字符,省略下标
获取部分字符的时候,开始下标和结束下标都可以省略
a.开始下标省略
字符串[:结束下标:步长]或者 字符串[:结束下标]
步长是正数:从字符串开头开始往后取
步长是负数:从字符串结尾开始往前取
b.结束下标省略
字符串[开始下标::步长] 或者 字符串[结束下标:]
步长是正数:从开始下标从前往后获取到字符串结束
步长是负数:从开始下标从前后往前获取到字符串开头
print(str1[::-1]) 字符串倒序
在字符串中获取多个字符的时候下标可以越界
str1 = 'hello fspython'
print(str1[6: 9: 1])
print(str1[6:-3])
print(str1[0: -1: 2])
print(str1[-1:3])#'' -空串
print(str1[:4:-1])
print(str1[::-1]) #字符串倒序
print(len(str1))
1 +
字符串1 + 字符串2 -将两个字符串拼接在一起产生一个新的字符串(不会修改原字符)
注意:字符串相加,加号两边必须都是字符串
2. *
字符串 * n(正整数):字符串的内容重复n次,产生一个新的字符串
3.比较运算符:>,<,==, !=, >=,<=
a. ==, !=
字符串1 == 字符串2 -判断两个字符串是否相等
b. >,<, >=, <=
两个字符串比较大小:从第一个开始,找到第一对不同的字符,然后比较他们的编码大小
4. in 和 not in
字符串1 in 字符串2 -判断字符串2中是否包含字符串1 结果是布尔值
字符串1 not in 字符串2 -判断字符串2中是否不包含字符串1
#判断一个字符是否是字符
# char = input('请输入一个字符:')
# print('是否是字母:', 'a' <= char <= 'z' or 'A' <= char <= 'Z')
# 判断一个字符是否是中文
5. len函数
len(序列)
len(字符串)-获取字符串中字符的个数
6. str
str(数据):将数据转换成字符串
其他数据转换成字符串:所有类型的数据都可以转换成字符串,转换的时候就是在数据的值的最外面加引号
补充:系统数据类型名不能用来给变量命名
字符串转其他类型
字符串转整数: int(字符串),只有去掉引号后剩下的部分本身就是一个整数的字符串才能转换成整型
字符串转浮点型:float(字符串),只有去掉引号后剩下的部分本身就是一个整数或者小数的字符串,才能转换成浮点型
字符串转布尔:bool(字符串),除了空串会转换成false,其他都是true
1.格式字符串
指的是字符串中通过格式占位符来表示字符串中变化,然后后面在通过其他的值来给占位符赋值
语法:
含有格式占位符的字符串 % (占位符对应的值)
说明:格式占位符 - 有固定的写法;可以有多个
% - 固定写法
() -里面的值的个数和值的类型要和前面的格式占位符一一对应
2.常见的格式占位符
%d -整数
%s -字符串
%.nf -浮点数(保留小数点后n位小数)
%c -字符
name=input('名字:')
message = '%s你好,吃饭了吗?' %(name)
print(message)
1.字符串.capitalize() - 将字符串第一个字符转换成大写
str1='hello'
new_str=str.capitalize(str1)
print(new_str)
2.字符串对齐
字符串.center(width,fillchar) -居中
字符串.rjust(width,fillchar) -右对齐
字符串.ljust(width,fillchar) -左对齐
width - 正整数,表示新的字符串的宽度
fillchar - 字符,填充字符串
random.randint(m, n) - 产生一个m-n的随机数
3.join(seq)
字符串1.join(字符串2)将字符串1的内容插到字符串2中
max(字符串)
min(字符串)
count(str)
字符串1.count(字符)->返回一个字符在这个字符串中出现的次数
字符串1.endswith(字符串中的一个字符) ->返回一个bool值,如果字符串就是以这个字符结尾就返回true,否者就是false
str1 = 'sdfsfffd'
print(str1.endswith('f'))
字符串1.expandtabs(一个tab的空格数) -> 把字符串1中的\t转义字符转换为
你自己想要的空格数,默认是8
str1 = 'sdfs\tfffd'
print(str1.expandtabs(8))
字符串1.find(字符串2,开始索引的位置,默认字符串的长度) ->查看字符串1是否包含字符串2,
包含就返回开始索引的位置,否则就返回-1
str1 = 'sdfsfffd'
str2 = 'fd'
print(str1.find(str2))
print(str1.find(str2, 8))
字符串1.find(字符串2,开始索引的位置,默认字符串的长度) ->查看字符串1是否包含字符串2,
包含就返回开始索引的位置,否则就抛异常
str1 = 'sdfsfffd'
str2 = 'fd'
print(str1.index(str2))
print(str1.index(str2, 8))
isalnum() ->检查一个字符串是否只包含字母和数字,如果是就返回true 否则返回false
str1 = 'sdfsfffd123'
str2 = 'sfaf`233'
print(str.isalnum(str1))
print(str.isalnum(str2))
isalpha() ->检查一个字符串是否只包含字母,是就返回true 否则返回false
str1 = 'sdfsfffd'
str2 = 'sfaf`233'
print(str.isalpha(str1))
print(str.isalpha(str2))
isdigit() -> 检查一个字符串中是否只包含数字,是就是true 否则 false
str1 = 'sdfsfffd'
str2 = '233'
print(str.isdigit(str1))
print(str.isdigit(str2))
istitle() -> 检查字符串中的所有单词的首字母是否是大写,不是就false
lower() ->将字符串中的所有大写字符转换成小写
str1 = 'sdADFADfsfffd'
print(str.lower(str1))
replace() ->将字符串1中的一个字符替换成另一个字符
str1 = 'sdADFADsfffd'
print(str1.replace('f', 'a'))
split() ->以字符串中指定的字符来进行分割,以及分割几次
str1 = 'sdADFADsfffd'
print(str1.split('D',1))
zfill(n) ->返回长度为n的字符串,原字符串右对齐,前面填充0
str1 = 'sdADFADsfffd'
print(str1.zfill(20))
isdecimal() ->检查字符串中是否包含有十进制字符串,有就返回true,否则就返回false
str1 = 'rfdsa0b010101'
str2 = '54513'
print(str.isdecimal(str1))
print(str.isdecimal(str2))