字符串的基本知识

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

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

目录

一,创建字符串

二,索引和切片

三、字符串的连接与重复 

四,字符串的常用方法

 五、字符串的格式化


一,创建字符串

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

a = 'hello python'
a = "hello python"
a = """hello python"""

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

二,索引和切片

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

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

字符串循环时不需要range:

for i in range(10): #数字类型进行循环
    print(i)
s= "g3uge83ki1dy83y1hix2831ho"
for i in s:    #字符串不需要range
    print(i)
num=0
for i in s:  #字符串输出数字
    if i.isdigit():
        num+=int(i)
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%


print ("我叫 %s 今年 %d 岁!" % ('小明', 10))

name = "qi"
age =18
result = "{0}今年{1}岁了,我也{1}岁了".format(name,age) #数字填充,从零开始计数,变量名形式,format的参数必须是关键字参数

print("今天的橘子{}钱一斤".format(w))
print("今天的橘子{}钱一斤".format(w,x))
print("今天的橘子{1:.2f}钱一斤".format(w,x))
print("今天的橘子{:.3f}钱一斤".format(w))
print("今天的橘子{:.2%}钱一斤".format(w,x))
print("今天的橘子{:.2%}钱一斤".format(0.123412213))

"""
今天的橘子3.7389239钱一斤
今天的橘子3.7389239钱一斤
今天的橘子45.53钱一斤
今天的橘子3.739钱一斤
今天的橘子373.89%钱一斤
今天的橘子12.34%钱一斤
"""

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值