**方法:**使用序列切片方式
string = 'abcdafg'
newstr = string[:4] + 'e' + string[5:]
print(string, newstr, sep='\n')
>>>
abcdafg
abcdefg
举例:
力扣上面的一道题:
senate = "DDRRR"
flag = 0 # flag > 0 则R多于D,反之R少于D
R = True
D = True
while R & D:
R = False
D = False
for i in range(len(senate)):
if senate[i] == 'R':
if flag < 0:
senate = senate[:i] + 'E' + senate[i+1:] #切片方法修改字符串!
else:
R = True
flag += 1
if senate[i] == 'D':
if flag > 0:
senate = senate[:i] + 'E' + senate[i+1:]
else:
D = True
flag -= 1
if R:
print("Radiant")
else:
print("Dire")
var1 = 'Hello World!'
var2 = "Runoob"
var3 = str(input("手动输入字符串:"))
print(var1[1], var2[-1], var3[1: 3])
# 截取遵循左闭右开原则
print("e" in var1)
print("o" not in var2)
# 成员运算符
var4 = var1 + var2
print(var4)
# 连接
print(var1 * 2)
# 重复输出
下面表格可以清晰的反映出如何获取字符串中某个位置的字符或某一段的字符
python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
para_str = """这是一个多行字符串的实例
多行字符串可以使用制表符
TAB ( \t )。
也可以使用换行符 [ \n ]。
"""
print (para_str)
输出结果:
这是一个多行字符串的实例
多行字符串可以使用制表符
TAB ( )。
也可以使用换行符 [
]。
format 函数可以接受不限个参数
>>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序
'hello world'
>>> "{0} {1}".format("hello", "world") # 设置指定位置
'hello world'
>>> "{1} {0} {1}".format("hello", "world") # 设置指定位置
'world hello world'
也可以自己用字符串,字典,列表等设置参数
print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com"))
# 通过字典设置参数
site = {
"name": "菜鸟教程", "url": "www.runoob.com"}
print("网站名:{name}, 地址 {url}".format(**site))
# 通过列表索引设置参数
my_list = ['菜鸟教程', 'www.runoob.com']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必须的
输出结果:
网站名:菜鸟教程, 地址 www.runoob.com
网站名:菜鸟教程, 地址 www.runoob.com
网站名:菜鸟教程, 地址 www.runoob.com
^, <, > 分别是居中、左对齐、右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
b、d、o、x 分别是二进制、十进制、八进制、十六进制
一个一个举例实现上述功能:
保留小数点后俩位:
>>> print("{:.2f}".format(3.1415926));
3.14
带符号保留小数点后两位
>>> print("{:+.2f}".format(3.1415926));
+3.14
不带小数
>>> print("{:.0f}".format(3.1415926));
3 # 四舍六入
数字补零 (填充左边, 宽度为2)
>>> print("{:0>2d}".format(3))
03
数字补零 (填充右边, 宽度为5)
>>> print("{:0<5d}".format(11))
11000
科学计数法
>>> print("{:.2e}".format(1000000000))
1.00e+09
len:
用法:
nums = len(str)
返回值:
返回字符串长度
join
Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
语法
str.join(sequence)
参数
sequence – 要连接的元素序列。
返回值
返回通过指定字符连接序列中元素后生成的新字符串。
示例:
dict = defaultdict(list)
strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
for st in strs:
key = ''.join(sorted(st))
dict[key].append(st)
print(list(dict.values()))
>>>[['eat', 'tea', 'ate'], ['tan', 'nat'], ['bat']]
index:
index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内
用法:
str.index(str, beg=0, end=len(string))
返回值:
如果包含子字符串返回开始的索引值,否则抛出异常。
find:
find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果指定范围内如果包含指定索引值,返回的是索引值在字符串中的起始位置。如果不包含索引值,返回-1。
用法:
str.find(str, beg=0, end=len(string))
返回值:
如果包含子字符串返回开始的索引值,否则返回-1。
upper:
Python upper() 方法将字符串中的小写字母转为大写字母。
用法:
str.upper()
返回值:
返回小写字母转为大写字母的字符串。
min,max:
min(str)
max(str)
返回值:
返回字符串中最小和最大的字母。
isalnum
isalnum() 方法检测字符串是否由字母和数字组成。
语法
str.isalnum()
返回值:
如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
isdigit:
Python isdigit() 方法检测字符串是否只由数字组成。
语法
str.isdigit()
返回值:
如果字符串只包含数字则返回 True 否则返回 False。