当前位置:   article > 正文

字符串的基本知识

字符串

定义:字符串是一个类(<class'str'>),用于表示,存储,操作一串字符。

字符串类属于python最基本的数据结构:序列。序列中的每一个元素都有一个索引与之对应,字符串可以看作是字符的序列。

目录

一,创建字符串

二,索引和切片

三、字符串的连接与重复 

四,字符串的常用方法

 五、字符串的格式化


一,创建字符串

python 可以用单引号,双引号,三引号创建字符串,并且效果相同,但是Python 中单引号 ' 和双引号 " 使用完全相同。使用三引号(''' 或 """)可以指定一个多行字符串。

  1. a = 'hello python'
  2. a = "hello python"
  3. a = """hello python"""

其这么多种类型 主要是为了解决双引号里有引用这种问题

二,索引和切片

  1. Python字符串中的元素(字符)可以用下标来索引:
  • 从左到右索引,使用正数,最左边的字符下标从0开始。
  • 从右到左索引,使用负数,最左边的字符下标从-1开始
  1. str1 = “Hello world!”
  2. print(str1[0]) #索引首字符
  3. print(str1[-1]) #索引末字符
  4. print(str1[2]) #索引第三个字符
  5. print(str1[-2]) #索引倒数第二个字符

运行结果如下: 

但是字符串类跟数值类一样,都是不可变对象,向字符串索引位置写入新的值,会引发错误。

而当把变量关联到新的字符串对象时,python解释器会创建一个新的字符串对象,然后把这个新的字符串对象关联到变量上,但这并不是字符串对象可改变,而是字符串的指向变了

 

2. 使用切片运算符:[ 起点(start):终点(end):步长(step) ]可以对字符串进行切片。切片其实就是索引字符串的一个子集

  •   切片 [开始:结尾] 取左不取右
  •  若省略起点,起点默认为首字符,省略终点,终点默认为尾字符
  • 索引越界会被解释器自动处理为边界值,不会引起报错

三、字符串的连接与重复 

  • "字符串+字符串"实现连接
  • "字符串*n"实现重复

四,字符串的常用方法

字符串的常见操作:
    获取长度:len
    查找内容:find,index,rfind,rindex
    判断:startswith,endwith,isalpha,isdigit,isalnum,isupper
    计算出现次数:count
    替换内容:replace
    切割字符串:split,rsplit,splitlines,partition,
    修改大小写:capitalize,title,upper,lower
    空格处理:ljust,rjust,center,upper,lower
    字符串拼接:join

以下列举几个方法的用途:

 1,find:找查元素位置
 查找字符串片段在字符串中的下标位置,从前往后找,返回的是第一个被找到字符串片段的起始位置
 第一个参数:要查找的字符串片段
 第二个参数:要查找的起始点
 第三个参数:要找到的终止位置-1
 如果查找的字符串存在多个,查找结果是第一个出现的字符串下标
 找不到就返回-1
 2,count :统计字符串片段在字符串中出现的次数
 找不到就返回0
 3,replace:替换指定的字符串片段
 参数1:要替换的字符串片段
 参数2:替换之后的字符串片段
 参数3:替换的次数,从前往后替换
4,upper :将小写字母转化为大写字母
5,lower : 将大写字母转化为小写字母 
6,split : 指定分割点对字符串进行分割
参数一 : 分割点
参数二 : 分割的次数(默认找到所有的分割点进行分割)
7,strip 去除字符串首尾的空格

一个用字符串产生随机文件名的demo:

  1. import random
  2. s = 'skdhcioeudhsklLKEHDILC'
  3. filename =''
  4. for i in range (6):
  5. index=random.randint(0,len(s)-1)
  6. filename+=s[index]
  7. print(filename)

字符串循环时不需要range:

  1. for i in range(10): #数字类型进行循环
  2. print(i)
  3. s= "g3uge83ki1dy83y1hix2831ho"
  4. for i in s: #字符串不需要range
  5. print(i)
  6. num=0
  7. for i in s: #字符串输出数字
  8. if i.isdigit():
  9. num+=int(i)
  10. print(num)

 

一些方法的注意事项: 

find 与 index 的区别: index找不到不会返回-1而是会报错,find可以查找多个字符
count 字符串里的东西出现的次数,len 计算字符串长度
replace 没写次数就默认替换所有的
split 里面的参数是分隔符,返回的结果是一个列表,没写次数就默认替换所有的,同理rsplit
title 将每个单词的首字母大写,capitalize将第一个单词的首字母大写
s.split('o')#将字符串,用规定字符'o'进行分割,得到一个列表
s.strip('6')不写默认去除首尾空格,rstrip去除右边的空格,lstrip去除左边的空格
s1.replace(' ','')#去除中间字符
ljust,rjust,center添加空格,控制其左右对齐方式

 五、字符串的格式化

        Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

常用的有:

       %c 格式化字符及其ASCII码
      %s 格式化字符串
      %d 格式化整数
      %u 格式化无符号整型
      %o 格式化无符号八进制数
      %x 格式化无符号十六进制数
      %X 格式化无符号十六进制数(大写)
      %f 格式化浮点数字,可指定小数点后的精度

还能用内嵌format方法格式化输出:

1、格式化小数长度(会四舍五入) :.2f
2、 将小数按百分比的形式显示 :.2%


  1. print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
  2. name = "qi"
  3. age =18
  4. result = "{0}今年{1}岁了,我也{1}岁了".format(name,age) #数字填充,从零开始计数,变量名形式,format的参数必须是关键字参数
  5. print("今天的橘子{}钱一斤".format(w))
  6. print("今天的橘子{}钱一斤".format(w,x))
  7. print("今天的橘子{1:.2f}钱一斤".format(w,x))
  8. print("今天的橘子{:.3f}钱一斤".format(w))
  9. print("今天的橘子{:.2%}钱一斤".format(w,x))
  10. print("今天的橘子{:.2%}钱一斤".format(0.123412213))
  11. """
  12. 今天的橘子3.7389239钱一斤
  13. 今天的橘子3.7389239钱一斤
  14. 今天的橘子45.53钱一斤
  15. 今天的橘子3.739钱一斤
  16. 今天的橘子373.89%钱一斤
  17. 今天的橘子12.34%钱一斤
  18. """

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/415795
推荐阅读
相关标签
  

闽ICP备14008679号