python字符串截取方法_Python字符串及其方法

"""

字符串是用 "" 和 '' 括起来的文本 不包含引号。

字符串是不可变的

空格也是属于字符串的

C语言 '' 字符 ,"" 字符串

"""

# 字符串的定义:

# 变量 = 字符串

str = "Hellow world!"

# 字符串的连接 +

str1 = "Hellow"

str2 = " World"

str3 = str1 + str2

print("str1 + str2 =",str3)

print("str1 + str2 =",str1 + str2)

print(str1 + str2)

# 字符串的重复输出: *

str4 = "Hellow"

print(str4 * 3)

# 字符串中某个字符的截取

# 通过索引字符串 字符下标的方式进行查找截取

# 截取方式: 字符串[下标] 是 前闭后开型

# 下表从 0 开始空格也算是字符。

str5 = "Hellow World!"

# 指定str5[0:5] = "Hellow" 字符串不可变。

print(str5[3:5]) # 从给定下标开始到给定下标之前

print(str5[:5]) # 头开始到给定下标 之前

print(str5[2:]) # 从给定下标开始到 结尾

# 若结尾处超过字符串下标最大数 则到输出到字符串末尾

# 格式化输出:

# %d %f(遇到 5 可以进1) %s 占位符

num1 = 104

flo = 10.2256

str6 = "Hellow"

print("数字 = %d,小数 = %.3f 字符串 = %s" % (num1, flo, str6))

print("num1 =", num1, "flo =", flo, "str6 =", str6)

# 转义符 \ 把一个字符转义

print("How \"old\" are you?") # 在不加入 \ 时输出有错误。转义符吧 "" 转义成一个文本

print("How 'old' are you?") # 或者是这样

print('How \'old\' are you?')

print('How "old" are you?')

print("How old \\are\\ you?") # 输出\ \ 时 转义 \

# 当要输出的字符串中有很多需要转义时可在字符串前面加 r 表示字符串中默认不转义 在用 路径 的时候常见

print(r"Hollow world! \new peolpe") # 不转义 n

# \n 换行符 \t 制表符

# eval(str) 可以把字符串转化为有效表达式,求值,并返回计算结果

print(eval("123 + 222"))

# print(eval("1a23")) 错误,不能识别是字符串还是整数

print(eval("-123"))

print(eval("+223"))

# len(str)

# 输出字符串的长度(字符串中字符的个数)

str6 = "Ji ning xue yuan Juyan"

print(len(str6))

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

str7 = "Ji ning xue yuan JUYAN"

print(str7.lower())

print(str7.lower())

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

str8 = "Ji ning XUE Yuan Juyan"

print(str8.swapcase())

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

str9 = "Ji Ning xue YUan Juyan"

print(str9.capitalize())

# character = char

# center(width[,fillchar]) 返回一个指定len的居中字符串,fillchar为填充的字符串,默认为空格填充。

str10 = "Ji ning xue yuan Juyan"

print(str10.center(40,"-"))

print(str10.center(40))

# ljust() 返回一个指定len的左对齐字符串(靠左),fillchar为填充的字符串,默认为空格填充。

str11 = "Ji ning xue yuan Juyan"

print(str11.ljust(40,"-"))

print(str11.ljust(40))

# rjust() 返回一个指len的右对齐字符串,fillchar为填充的字符串,默认为空格填充。

str12 = "Ji ning xue yuan Juyan"

print(str12.rjust(40,"-"))

print(str12.rjust(40))

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

str13 = "Ji ning xue yuan Juyan"

print(str13.zfill(40))

# count(str[,start][,end]) 返回字符串中指定 str 出现的次数 可以指定范围。

str14 = "Ji ning xue yuan Juyan"

print(str14.count("xue"))

print(str14.count("xue",7,len(str14)))

# find(str[,start][,end]) 从左到右检测字符串中是否含有 str ,可以指定范围,默认从头到尾,

# 得到的是第一次出现的开始下标,没有则会返回-1

str15 = "Ji ning xue yuan Juyan"

print(str15.find("xue",7,len(str15)))

print(str15.find("bb"))# 没有则返回 -1

# rfind(str[,start][,end]) 从右到左检测字符串中是否含有 str ,可以指定范围,默认从尾到头,

# 得到的是第一次出现的开始下标,没有则会返回-1

str16 = "Ji ning xue yuan Juyan"

print(str16.rfind("xue",7,len(str16)))

# index(str[,start][,end]) 同find 不过,在str不存在的时候不会返回 -1 但会报错

str17 = "Ji ning xue yuan Juyan"

print(str17.index("ning"))

# rindex(str[,start][,end]) 同rfind 不过,在str不存在的时候不会返回 -1 但会报错

str18 = "Ji ning xue yuan Juyan"

print(str17.rindex("ning"))

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

str19 = " *****Ji ning xue yuan Juyan******"

print(str19.lstrip())

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

str20 = " ********Ji ning xue yuan Juyan ********"

print(str20.rstrip("*"))

# strip() 截掉字符串两侧指定字符,默认为空格

str21 = "********Ji ning xue yuan Juyan********"

print(str21.strip("*"))

# 字符串的比较:< > == 从第一个字符开始比较 ASCII码的大小,谁的大谁就大,

# 如果相等,则就继续比较下一个字符的ASCII码谁大谁就大。

print("abs" > "abc")

print("abc" == "abc")

# split(str='',num)

# 以指定str字符截取, num 是截取的次数,返回一个列表,len(list)是num+ 1,

str22 = 'Hellow World! I am jy'

print(str22.split(' ', 3))

# 以' ' 为截取字符串,计算输入单词的个数(含有重复空格):

str23 = 'ni hao sada sdii ddi di ds dsf '

print(str23.split(' '))

c = 0

for i in str23.split(' '):

if len(i) > 0: # 删选空字符

c += 1

print(c)

# splitlines([keepends]) 以'\n' '\r\n' '\n'为分隔符

# keepends == True 会保留换行符。

str24 = """fu qiang zhong guo

zu guo wan cui

shi jie he ping

"""

print(str24.splitlines())

print(str24.splitlines(True))

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

list2 = ['ni','nide','nidehao']

print('#$&'.join(list2))

# replace(oldstr,newstr,count)

# 重新返回一个字符串,替换oldstr 为 newstr , count为替换前count个

str25 = 'sunck is a good good good man!'

str25.replace('good','nice',2) # str25并没有改变,字符串是不可以改变的,

str26 = str25.replace('good','nice')

print(str25)

print(str26)

# 创建一个字符映射表:

t27 = str.maketrans('od','90')

# 被转换字符 转换字符

str28 = 'sunck is a good good good man!'

print(str28.translate(t27))

# startswith("str",start,end= -1 ) 在指定范围内判断是否以指定字符开头,默认指定整个字符串。

str29 = 'sunck is a good good good man!'

print(str29.startswith('sunck',0,16))

# endswith("str",start,end= -1 ) 在指定范围内判断是否以指定字符结尾,默认指定整个字符串。

str30 = 'sunck is a good good good man'

print(str30.endswith('man',9,))

# 编码 encode(encoding = 'utf-8',error = 'strict/ignore')

str31 = 'sunck is a good good good man!好'

data1 = str31.encode('utf-8')

print(data1)

print(type(data1)) # 变为 二进制

# 解码: 注意要和编码时的格式一样。

str32 = data1.decode("utf-8")

print(str32)

# 其他:

# 编码:

data1 = str31.encode('utf-8','ignore')

print(data1)

# 解码:

str32 = data1.decode("gbk",'ignore') # 出现乱码。

print(str32)

# isalph() 字符串中至少有一个字符,判断字符串是否全是字母。若是则返回 True 否则返回False。

str33 = 'sunckisagoodgoodgoodman'

print(str33.isalpha())

# isalnum() 字符串中至少有一个字符,判断字符串是否全是字母或者是数字。若是则返回 True 否则返回False。

str34 = 'sunck is a good good good man666'

print(str34.isalnum())

# isupper() 字符串中至少有一个英文字符,判断英文字符是否全是大写。若是则返回 True 否则返回False。

print("ABF%1".isupper())

print("1".isupper())

print("AB".isupper())

# islower() 字符串中至少有一个英文字符,判断英文字符是否全是小写。若是则返回 True 否则返回False。

print("abc&1d".islower())

print("abcd".islower())

print("3".islower())

# istitle() 判断字母是否首字母大写

print("Sunck Is A Good Man!".istitle())

# isdigit() 判断是否全是数字

# isnumeric() 同上

# isdecimal() 判断字符串是否全是十进制:

print("123".isdecimal())

print("123w".isdecimal())

# isspace() 判断字符串是否全是空格。

print("\t".isspace())

print("\n".isspace())

print("\r".isspace())

print(" ".isspace())

output:

str1 + str2 = Hellow World

str1 + str2 = Hellow World

Hellow World

HellowHellowHellow

lo

Hello

llow World!

数字 = 104,小数 = 10.226 字符串 = Hellow

num1 = 104 flo = 10.2256 str6 = Hellow

How "old" are you?

How 'old' are you?

How 'old' are you?

How "old" are you?

How old \are\ you?

Hollow world! \new peolpe

345

-123

223

22

ji ning xue yuan juyan

ji ning xue yuan juyan

jI NING xue yUAN jUYAN

Ji ning xue yuan juyan

---------Ji ning xue yuan Juyan---------

Ji ning xue yuan Juyan

Ji ning xue yuan Juyan------------------

Ji ning xue yuan Juyan

------------------Ji ning xue yuan Juyan

Ji ning xue yuan Juyan

000000000000000000Ji ning xue yuan Juyan

1

1

8

-1

8

3

3

*****Ji ning xue yuan Juyan******

********Ji ning xue yuan Juyan

Ji ning xue yuan Juyan

True

True

['Hellow', 'World!', 'I', 'am jy']

['ni', '', '', 'hao', '', 'sada', '', '', 'sdii', '', '', 'ddi', 'di', '', 'ds', '', 'dsf', '']

8

['fu qiang zhong guo', 'zu guo wan cui', 'shi jie he ping ']

['fu qiang zhong guo\n', 'zu guo wan cui\n', 'shi jie he ping \n']

ni#$&nide#$&nidehao

sunck is a good good good man!

sunck is a nice nice nice man!

sunck is a g990 g990 g990 man!

True

True

b'sunck is a good good good man!\xe5\xa5\xbd'

sunck is a good good good man!好

b'sunck is a good good good man!\xe5\xa5\xbd'

sunck is a good good good man!濂

True

False

True

False

True

True

True

False

True

True

False

True

True

True

True

Process finished with exit code 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值