Ygon's Day05_字符串

1. 字符串

1.1. 什么是字符串

字符串是python内置的一种容器型数据类型(序列),不可变,有序;将单引号或者双引号作为容器,里面可以根据情况放多个字符。

  • 不可变:指字符串内容的值和顺序不可变
  • 有序:一旦字符串确定,字符串中字符的位置就固定。

1.2.字符

字符串中的内容叫字符。(python中只有字符的概念,没有字符对应的数据类型)
字符串的基本单元就是字符,又叫字符串的元素。

a. 基本字符 -数字、字母、常用符号、中文等等
b. 转义字符 -通过转义符号\后面跟不同的符号来表示特殊功能或者意义的字符。例:\n换行 \‘ 一个单引号
阻止 转义:在字符串的最前面加R/r,可以阻止字符串的转义字符转义
c. 编码字符 -\u后面跟4位的十六进制数,来表示一个字符。这个4位数的16进制对应的值是字符的编码值

1.3. 字符编码

python中的字符采用的是Unicode编码
计算机中存储数据的时候只能存数字,而且存的是数字的补码。

编码:每个字符在计算机中存储时都会对应一个固定且唯一的数字,这个数字就是这个字符的编码,每个字符和数字得 一一对应关系,就是编码表常见的编码表:ascii表和Unicode 编码表。
ASCII码表支队数字字母、英文字符、英文符号进行编码。
Unicode编码表是对ASCII码表的扩充,能对世界上所有的字符进行编码(4e00-9fa5)汉字范围

chr(编码值) -获取编码值对应的字符
ord(字符) -获取字符对应的编码值,注意:字符值就是长度为1的字符串

1.4. 获取字符

获取字符就是去除字符串内容

1.4.1. 获取单个字符

a. 语法: 字符串[下标]
说明:字符串 - 可以是字符串值,也可以是字符串变量,结果是字符串的表达式等都可以
​ [] -固定写法
​ 下标 -又叫索引,一旦字符串确定,那么字符串中每个字符都会对应一个下标,表示这个字符在字符串中的位置,下标的范围是0字符串长度-1,0表示第一个,1表示第二个,以此类推。下标的范围还可以是-1-字符串长度减一,-1表示倒数第一个。

注意:获取单个字符的时候下标不能越界

1.4.2 获取部分字符(字符串切片)

a. 语法:字符串[开始下标:结束下标:步长] -从开始下标开始,获取到结束下标为止,每次下标增加步长值
b. 说明:字符串 - 可以是字符串值,也可以是字符串变量,结果是字符串的表达式等都可以
​ [] -固定写法
​ 开始下标、结束下标 -下标值,开始下标对应的字符可以取到,结束下标对应的字符一定取不到。(步 长为正,省略开始下标,从第一个字符往后取;步长为负,从最后往前取。)
步长 -整数,可正,可负。(省略步长,步长默认为1)
c. 注意,下标可以越界,如果步长为正(从前往后获取),开始下标对应的字符要在结束下标对应的字符之前。步长为负(从后往前获取),开始下标对应的字符要在结束下标对应的字符之后。

1.5. 遍历字符串

一个一个去除所有的字符

  1. 直接遍历
    for 变量 in 字符串:
    ​ 循环体

  2. 通过遍历下标来遍历字符串:
    for index in range(字符串长度)
    ​ 字符串[index]

    index=0
    while index<len(str):
    ​ print(index,str[index])
    ​ index+=1

1.6. 字符串相关运算

  1. 数学运算:字符串支持加法运算和乘法运算
    语法:字符串1+字符串2 -将两个字符串拼接在一起产生一个新的字符串。
    乘法运算:字符串正整数 /正整数字符串 -指定字符串重复指定次数,产生一个新的字符串。

  2. 比较运算符:字符串支持所有的比较运算符

    ==, !=判断两个字符串是否相等。
    '>', '<'比较两个字符串的大小:让两个字符串中同位置的字符一一比较,找到第一对不相等的字符,判断编码值的大小。(从前往后)

    应用:判断一个字符是否是字母 'a' <= str <= 'z' or 'A'<= str <='Z'
    判断一个字符是否是数字
    判断一个字符是否是中文(4e00~9fa5)

 #输入任意字符串,统计输入内容中,字母的个数
str1 = 'abcd2ffe4'#input(' input str,please:')
count = 0
for  index in range(len(str1)):
    if 'a' <= str1[index] <= 'z' or 'A' <= str1[index] <= 'Z':
        count += 1
        print(str1[index],end='')
print()
print(count)
new_str=str1.capitalize()
print(new_str)
print('===============================')

1.7. in 和 not 操作

字符串1 in 字符串2 -判断字符串1是否在字符串2中(判断字符串2是否包含字符串1)
字符串1 not in 字符串2 -判断字符串1是否不在字符串2中(判断字符串2是否不包含字符串1)

print('abc' in 'abc123===')     #True
print('abc' in 'a342bc')        #False
print('abc' not in 'a1234dcbc')     #True

1.8. 常用函数

  • len() -求字符串的长度
  • str() -将其他类型的数据转换成字符,所有数据都能转换成字符串。
  • int(str) -将字符串转换成整数,str去掉引号必须是整数
  • float(str) -将字符串转换成浮点数,str去掉引号必须是浮点数或者整数
  • bool(str) -经常用于判断字符串是否为空。当str为空时,输出0.

1.9. 字符串的对象方法

语法:字符串.方法() -例如:str.capitalize()

1.10. 格式字符串

在字符串中通过格式占位符来表示字符串中变化的部分
语法:包含格式占位符的字符%(给格式占位赋值的数据列表)
说明:
格式占位符:
%s -变化的值是字符串
%d -整数
%.Nf -浮点,N可以约束小数点后面的小数位数,N为正整数。
%c -字符,可以把整数转换成字符

name=input('name:')
age=int(input('age:'))
message='%s今年%d岁' %(name,age)

2.常用对象方法

  • count
    字符串1.count(字符串2) -统计字符串2在字符串1中出现的次数
    str1= i love you you you
    str1.count('you')
#打印字符串中出现最多的字符,和对应的次数。例如:'howareyou'打印'o',2次
str1 = 'helloworld'#input("input string:")
max_num = 0
max_char = ''
for char in str1:
    count = str1.count(char)
    if count>max_num:
        max_num = count
        max_char = char
print(max_char,max_num)
  • find()
    字符串1.find(字符串2) -在字符串1中找字符串2第一次出现的位置,如果找不到,输出-1,找到了返回第一个字符的下标
    print(str1.find('you',-8,-2)) -在字符串1中开始下标到结束下标的范围查找字符串2第一次出现的位置(不会输出结束下标)
    index()的功能和find()一样,只是如果字符串2不存在的时候会报错
#在字符串中’helloworld‘,找到所有l出现的下标
str1 = 'helloworld'
str2='l'
start_index = 0
while 1:
    index = str1.find('l',start_index)
    if index == -1:
        break
    else:
        print(index,end= '')
        start_index = index+len(str2)
  • isdigit() -判断字符串是否只有数字
    print('83'.isdigit())

  • isnumeric() -判断字符串1是否是数字组合(可以检查中文数字)
    print('壹仟'.isnumeric())

  • join()
    字符串1.join(序列) -将序列中的元素用字符串1连接在一起产生一个新的字符串
    print(‘’.join('abc')) 输出:ab*c

练习3: 自己实现join的功能, 给字符串1, 和字符串2,用字符串1将字符串2中的所有的字符串连接起来。例如: str1 = 'aaa', str2 = '123', 输出: '1aaa2aaa3'

print('============练习3=============')
str1 = 'aaa'
str2 = '123'

方法1

str3 = ''
for char in str2:
str3 += char + str1
print(str3[:-len(str1)])

方法2

str3 = ''
for index in range(len(str2)):
if index == len(str2) - 1:
# 如果是最后一个字符就不拼str1
str3 += str2[index]
else:
# 如果不是最后一个字符就拼接str1
str3 += str2[index] + str1
print(str3)

#输入一个字符串,将字符串里面的数字字符用‘+’连接起来
str1 = 'ab23bffhsh23dbahdab90'    #声明字符串str1
str2 = '+'                        #声明字符串str2,
str3 = ''              #声明一个空串,用于存放字符串1中的数字字符。
for char in str1:          #遍历字符串1  
    if '0' <= char <= '9':      #如果取出来的字符是数字,就把它存放在字符串3中
        str3+=char
print(str2.join(str3))      #把字符串2加入到字符串3中(join函数)
  • replace(old,new,count)

  • split(字符串2) 在字符串1把字符串2作为切点,将字符串1切割
    print('shsjsj111askdhfkj111aksfk111nnmm'.split('111'))

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1 字符编码 python中的编码采用的是Unicode编码。什么是编码?就是数字和字符的一一对应的,其中字符对应...
    barriers阅读 3,169评论 0 1
  • 字符串 1.什么是字符串 序列:有序,不可变的。用单引号或者双引号括起来的任意字符(集)。 2.字符串中的字符 a...
    落幕丶丶阅读 4,251评论 0 0
  • 1.什么是字符串 序列,有序,不可变的。用单引号或者双引号括起来的任意字符集。 2.字符串中的字符 a.普通字符:...
    发家致富靠养猪阅读 3,914评论 1 7
  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 11,131评论 2 16
  • 阅读一遍规画:已读; 一句爱的表达:对先生和女儿说我爱你 一次自我确认:我是智慧的源泉,我是力量源泉。 一个微笑:...
    李艳萍的花园阅读 1,877评论 0 0

友情链接更多精彩内容