4.Python数据容器之字符串(str)

字符串及相关操作

字符串是Python中最常用的数据类型,其重要性不必多言
在Python3中,所有的字符串都是Unicode字符串

1.字符串的定义

(1) s1 = ""

(2) s2 = ''

(3) s3 = str() #此函数也可将其它数据类型或对象转化为字符串

(4) 
s = '''Dr.Liu
is 
IEEE
Fellow'''     #使用三引号可以实现字符串跨多行,不必再大量使用转义字符

2.字符串的更新

(1) 字符串的连接与合并[使用+=]
s1 = "hello"
s2 = " world"
s1 += s2
print(s1) #输出为hello world

(2) 字符串的重复[使用*]
s='hello'*5   #将字符串s复制5次,也可用于字符串的初始化
print(s)      #输出为hellohellohellohellohello

3.字符串的修改与判断

3.1 字符串替换

(1) 使用replace(oldvalue, newvalue, count) 方法可以把字符串中的old(旧字符串) 替换成 new(新字符串)
    如果指定第三个参数max,则替换不超过max|参数	   |描述
|oldvalue  |必需。要检索的字符串。
|newvalue  |必需。替换旧值的字符串。
|count	   |可选,为数字,指定要替换的旧值出现次数。默认为所有的出现。

(2) 实际例子
# 替换单词“joker”
txt = "魏文志 is a joker"
s = txt.replace("joker", "男酮")
print(s)   # 魏文志 is a 男酮
-------------------------------------------------
# 替换所有出现的单词“男酮”
txt = "姜官 is a real 男酮, 郭子 is also a 男酮."
s = txt.replace("男酮", "牛马")
print(s)   # 姜官 is a real 牛马, 郭子 is also a 牛马.
-------------------------------------------------
# 替换前两次出现的单词“one”
txt = "one one was a race horse, two two was one too."
s = txt.replace("one", "three", 2)
print(s)   # three three was a race horse, two two was one too.

3.2 删除左/右指定字符串

(1) lstrip(characters)方法用于截掉字符串开头的空格或指定字符
(2) rstrip(characters)方法用于删除字符串末尾的指定字符,默认为空白符(包括空格、换行符、回车符、制表符)
(3) strip()方法用于移除字符串头尾两端指定的字符(默认为空格)或字符序列
# 删除前导和尾随字符:
txt = ",,,,,,,,国子今天又和小蔡一起恰饭了..........."
s = txt.strip(',.')
print(s)

3.3 字符串大小写转换

(1) upper()方法可将字符串中的小写字母转为大写字母(符号和数字将被忽略)
s = "hello world".upper()
print(s)  # 输出为HELLO WORLD

(2) lower()方法可将字符串中所有大写字符转为小写(符号和数字将被忽略)
s = "HELLO WORLD".lower()
print(s)  # 输出为hello world

(3) capitalize()方法可将字符串的第一个字母变成大写,其他字母变成小写
s = "hello WORLD".capitalize()
print(s)  # 输出为Hello world

(4) title()方法可将字符串中所有单词的首个字母转化为大写,其余字母均为小写
s = "today is a nice day!".title()
print(s)  # 输出为Today Is A Nice Day!

(5) swapcase()方法可将字符串中的大小写字母进行转换,即大写变小写,小写变大写
s = "HELLO world".swapcase()
print(s)  # 输出为hello WORLD

3.4 字符串大小写判断

(1) islower()方法可检测字符串是否由小写字母组成
s1 = "HELLO world"
s2 = "hello world"
print(s1.islower(), s2.islower())  # 输出分别为False True

(2) isupper()方法可检测字符串是否由大写字母组成
s1 = "HELLO world"
s2 = "HELLO WORLD"
print(s1.isupper(), s2.isupper())  # 输出分别为False True

(3) istitle()方法可检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写(符号和数字将被忽略)
s1 = "My Name Is Joker"
s2 = "Today is a good Day"
print(s1.istitle(), s2.istitle())  # 输出分别为True False

3.5 其它字符串判断函数

函数功能
isidentifier()如果字符串是标识符,则返回 True
isalnum()如果字符串至少有一个字符并且所有字符都是字母或数字则返回True,否则返回 False
isalpha()如果字符串至少有一个字符并且所有字符都是字母或中文字则返回 True, 否则返回 False
isdigit()如果字符串只包含数字则返回 True ,否则返回 False
isnumeric()如果字符串中的所有字符都是数字,则返回 True
isdecimal()检查所有字符是否都是十进制数(0~9),是则返回 True, 否则返回 False

4.字符串的填充

(1) center(length, character)方法返回一个指定的宽度width居中的字符串,fillchar为填充的字符,默认为空格
s = "joker"
txt = s.center(20, 'A') # 后一个参数只能是单个字符
print(txt)  # 输出为AAAAAAAjokerAAAAAAAA

(2) ljust(length, character)方法返回一个左对齐的字符串,在右侧填充字符,默认为空格
s = "joker"
txt = s.ljust(20, "A")
print(txt)  # 输出为jokerAAAAAAAAAAAAAAA

(3) rjust(length, character)方法返回一个右对齐的字符串,在左侧填充字符,默认为空格
s = "joker"
txt = s.rjust(20, "A")
print(txt)  # 输出为AAAAAAAAAAAAAAAjoker

5.字符串的索引,切片与逆序

(1) 下标索引访问字符串分为两个种类,即正向索引和反向索引
    正向索引下标从0开始,到len(str)-1结束
    反向索引下标从-1开始,到-len(str)结束
    ------------------------------------------
    字符串值    H	e	 l	 l	 o	小	牛	马
    正向索引    0    1	 2	 3	 4	 5	 6	 7
    反向索引   -8   -7	-6	-5	-4	-3	-2	-1
    ------------------------------------------
    举例:
    s = "过了一个暑假,豪子更黑了" # len()函数可求出当前字符串的长度
    print(s[0], s[len(s) - 1]) #过 了
    print(s[-1], s[-len(s)])   #了 过

(2) 使用切片访问字符串的格式为 str_name[strat : end : step]
    start表示起始索引,end表示结束索引,step表示步长,索引遵循左闭右开原则,即str[0:2]是不包含第3个字符的,截出来的是str[0]str[1]
    ☆☆☆ str_name[::-1]可用来表示逆序后的字符串
    s = "过了一个暑假,豪子更黑了"
    print(s[7:12])  #豪子更黑了
    print(s[::-1])  #了黑更子豪,假暑个一了过 

6.检查元素是否存在于字符串中

关键字描述
in如果字符串中包含给定的字符返回 True
not in如果字符串中不包含给定的字符返回 True
s = 'Hello Python'
print('H' in s)           #True
print('Python' not in s)  #False

7.字符串的格式化输出

Python中的print()格式化方法和C++中的printf()一致

a, b = map(int, input().split())
print("%d %d" % (a, b))

Python字符串格式化符号如下表中所示:

符 号描述
%c格式化字符及其ASCII码
%s格式化字符串
%d格式化整数
%u格式化无符号整型
%o格式化无符号八进制数
%x格式化无符号十六进制数
%X格式化无符号十六进制数(大写)
%f格式化浮点数字,可指定小数点后的精度
%e用科学计数法格式化浮点数
%E作用同%e,用科学计数法格式化浮点数
%g%f和%e的简写
%G%f 和 %E 的简写
%p用十六进制数格式化变量的地址

其它一些格式化辅助操作指令

符 号功能
*定义宽度或者小数点精度
-用做左对齐
+在正数前面显示加号( + )
#在八进制数前面显示零(‘0’),在十六进制前面显示’0x’或者’0X’(取决于用的是’x’还是’X’)
0显示的数字前面填充’0’而不是默认的空格
%‘%%‘可输出一个单一的’%’
var()映射变量(字典参数)
m.n.m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值