Python 字符串string()2021-08-27

本文详细介绍了Python中字符串的各种操作,包括创建、连接、重复、访问字符、截取、查找、格式化输出、转译字符、字符串转换方法、对齐方式、计数、查找、替换、映射表、编码与解码、以及各种字符串属性检查等。通过实例演示了如何在Python中高效地处理字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录

什么是字符串?

字符串是以单引号或双引号括起来的任意文本
'abc'
"def"
字符串不可变

创建字符串

# 创建字符串
str1 = "fanfan is a good man!"
str3 = "fanfan is a nice man!"
str5 = "fanfan is a handsome man!"

字符串运算

字符串连接

#字符串连接
str6 = "fanfan is a"
str7 = " good man"
str8 = str6 + str7
print("str6", str6)
print("str7", str7)
print("str8", str8)

输出重复字符串

#输出重复字符串
str9 = "good"
str10 = str9 * 3
print("str10 =", str10)

访问字符串中的某一个字符

用过索引下标查找字符,索引从0开始
#用过索引下标查找字符,索引从0开始
str11 = "fanfan is a good man!凯"
print(str11[0])
# str11[1] = "a"
#字符串不可变
# print("str11 =", str[1])

截取字符串中的一部分

#截取字符串中的一部分
str13 = "fanfan is a good man"
#从给定下标开始截取到给定下标之前
str15 = str13[6:14]
#从开始截取到给定下标之前
str16 = str13[:14]
#从给定下标处截取到结尾
str17 = str13[16:]
print("str17 = ", str17)

判断单词是否在某一段字符串中

str18 = "fanfan is a good man"
print("good" in str18)
print( "good1" not in str18)

格式化输出

num = 10
str19 = "fanfan is a nice man"
f = 10.12367
print("num =",num)
# %d  %s  %f
#   精确到小数点后3位哦,会四舍五入
print("num = %d, str19 = %s, f = %.3f" % (num, str19, f))

转译字符 \

将一些字符转换成含有特殊含义的字符
print("fanfan \\n is")
#\"
print('tom is a \"good\" man')
print("tom is a 'good' man" )
#tom is a "good" man

#如果字符串中好多字符串需要转译,就需要加入\,为了简化Python允许用r表示内部的字符串默认不转译
print(r"\\\t\\")
'''
D:\\cad\\suck
'''
print("D:\cad\suck")

\n换行符

print("num = %d\nstr19 = %s\nf = %.3f" % (num, str19, f))
#如果字符串里面有很多换行,用\n写在一行不好阅读
print("good\nnice\nhandsome")
print('''
good
nice
handsome
''')

\t 制表符

print("fanfan\tgood")

eval(str)

将字符串str当成有效表达式来求值,并返回计算结果
#eval(str)
#功能:将字符串str当成有效表达式来求值,并返回计算结果
num1 = eval("+123")
num1 = eval("-123")
num1 = eval("12+3")
num1 = eval("12-3")
print(eval("123"))
print(eval("12+3"))
print(eval("12-3"))
print(eval("+123"))
print(eval("-123"))

len(str)

返回字符串的长度
print(len("fanfan is a good man凯"))

lower(str)转换字符串中大写字母为小写字母

#lower(str)转换字符串中大写字母为小写字母
str20 = "FANFAN is a Good Man"
print(str20.lower())
print("str20 = %s" %(str20))

upper(str)转换字符串中小写字母为大写字母

str21 = "FANFAN is a Good Man"
print(str21.upper())

swapcase()转换字符串中小写字母为大写字母,大写字母转换为小写字母

str22 = "FANFAN is a gOOd mAn"
print(str22.swapcase())

capitalize()首字母大写,其余小写

str23 = "FANFAN is a gOOd mAn"
print(str23.capitalize())

title()每个单词的首字母大写

str24 = "FANFAN is a gOOd mAn"
print(str24.title())

center(width, fillchar)返回一个指定宽度的剧中字符串,fillchar为填充的字符串,默认空格填充

str25 = "kaige is a nice man"
print(str25.center(40,"*"))

ljust(width[, fillchar])返回一个指定宽度的左对齐字符串,fillchar 为填充字符串

str26 = "kaige is a nice man"
print(str26.ljust(40, "%"))

rjust(width[, fillchar])返回一个指定宽度的右对齐字符串,fillchar 为填充字符串

str27 = "kaige is a nice man"
print(str27.rjust(40, "%"))

zfill(width)返回一个长度为width的字符串,原字符串右对齐,前面补0

str28 = "kaige is a nice man"
print(str28.zfill(40))

count(str[,start][,end])返回字符串中str出现的次数,可以指定一个范围,默认从头到尾

str29 = "kaige is a very very nice man"
print(str29.count("very", 15, len(str29)))

find(str[,start][,end]),可以指定范围,默认从头到尾,得到的是第一次出现的开始下标,没有返回1

str30 = "kaige is a very very nice man"
print(str30.find("very"))
print(str30.find("good"))
print(str30.find("very", 15 , len(str30)))

rfind(str[,start][,end]),可以指定范围,默认从右到左,得到的是第一次出现的开始下标,没有返回1

str30 = "kaige is a very very nice man"
print(str30.rfind("very"))
print(str30.rfind("good"))
print(str30.rfind("very", 0 , 15))

index(str, start=0, end=len())和find()一样,只不过如果str不存在的时候会报一个异常

str31 = "kaige is a very very nice man"
print(str31.index("very"))
print(str31.index("very"))

rindex(str, start=0, end=len())和rfind()一样,只不过如果str不存在的时候会报一个异常

str32 = "kaige is a very very nice man"
print(str32.rindex("very"))

lstrip()截掉字符串左侧指定的字符串,默认为空格

str33 = "   kaige is a nice man"
print(str33.lstrip())

rstrip()截掉字符串左侧指定的字符串,默认为空格

str34 = "kaige is a nice man    "
print(str34.rstrip("*"), "*")

strip()截掉字符串左右指定的字符串,默认为空格

str35 = "******kaige is a nice man******"
print(str35.strip("*"))

ord()

str36 = "a"
print(ord(str36))

chr()

str37 = chr(65)
print(str37)

split(str = “”, num)如果指定num,则仅截取num个

#以str为分隔符截取字符串
str38 = "fanfan**is******a***good****man!"
list39 = str38.split("*")
print(list39)
c = 0
for s in list39:
  if len(s) > 0:
 	   c += 1
print(c)

splitlines(keepends)按照(’\r’, ’ \r\n’, ‘\n’)分隔,返回

#keepends == True 会保留换行符
str40 = '''fanfan is a good man!
fanfan is a nice man!
fanfan is a handsome man!

print(str40.splitlines(True))
print(str40.splitlines())

join() 以一个指定的字符串,将seq中的所有元素组成一个字符串

list41 =['fanfan', 'is', 'a', 'good', 'man!']
str42 = "&".join(list41)
print(str42)

max() min()

str43 = "fanfan is a good manz"
print(max(str43))
print(min(str43))

replace(oldatr,newstr,count)

#用newstr 替换oldstr,默认是全部替换,如果指定了count数量,值替换前count个
str44 = "fanfan is a good good good man"
str45 = str44.replace("good", "nice")
print(str44)
print(str45)

创建字符串的映射表

#转换的字符串   目标字符串
t46 =str.maketrans("ac", "65")
str47 = "fanfanis a good good good man"
str48 = str47.translate(t46)
print(str48)

startswith(str,start = 0, end = [str])在给定的范围内,判断是否给定的字符串开头,如果没有给定范围,默认整个字串

str49 = "fanfan is a good man"
print(str49.startswith("sunck", 5, 16))

endswith()在给定的范围内,判断是否给定的字符串结尾,如果没有给定范围,默认整个字串

str50 = "fanfan is a good man"
print(str50.endswith("man"))

编码encode(encoding = “utf-8”,errors=“strict”)

str51 = " fanfan is a good man凯"
#ignore忽略错误
data52 = str51.encode("utf-8", "ignore")
print(data52)
print(type(data52))

解码 注意:要与编码时的编码格式一致

str53 = data52.decode("gbk", "ignore")
print(str53)

isalpha()如果字符串中至少有一个字符且 所有的字符都是字母,则返回True,否则返回False

str54 = "fanfanis a good man"
print(str54.isalpha())

isalnum()如果字符串中至少有一个字符且 所有的字符都是字母或数字,则返回True,否则返回False

str55 = "1a2d,as3"
print(str55.isalnum())

isupper()如果字符串中至少有一个英文字符且所有的字符都是大写的英文字母返回True,否则返回False

print("A2C".isupper())
print("AVBC".isupper())
print("AVBC#".isupper())
print("AVBc#".isupper())
print("1".isupper())

islower()如果字符串中至少有一个英文字符且所有的字符都是小写的英文字母返回True,否则返回False

print("abc".islower())
print("abcA".islower())
print("abc1".islower())
print("abc#".islower())

istitle()如果字符串是标题化的返回True,否则返回False

print("Fanfan " .istitle())
print("Fanfan Is" .istitle())
print("Fanfan  is" .istitle())

isdigit()如果字符串只包含数字字符串,则但会True,否则返回False

print("123".isdigit())
print("123a".isdigit())

isnumeric()同上

print("123".isnumeric())
print("123a".isnumeric())

isdecimal()字符串只包含十进制字符

print("123".isdecimal())
print("123z".isdecimal())

isspace()如果字符串中只包含空格,则返回True,否则返回False

print(" ".isspace())
print("   ".isspace())
print("\t".isspace())
print("\n".isspace())
print("\r".isspace())
print("\f".isspace())
print("fanfanis  ".isspace())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值