python基础 | 字符串创建、查找、选取、运算和转换;reverse()函数与分片

本文介绍了Python中字符串的创建、查找方法(find,index,in等),替换(replace)功能,以及字符串的不可变性、选取、运算和转换技巧,如大写小写转换、列表分隔符处理和分片操作。

1、字符串创建、查找、选取、运算和转换

1、Python 查找字符串使用成员函数find
查找到后会返回目标字符串首个 字符所在的位置,位置从0开始算,如果没找到返回-1

str = 'good,good,study, Asher'
toFind = 'Asher'
str1 = str
index = 0
print(str1.find('s', 1, 10))
print(str1.find('s', 1, 20))
while (str1.find(toFind) > 0):
    index += str1.find(toFind)
    print('找到子串在位置:', index)  # 找到子串在位置: 17
    index += 7
    str1 = str1[index :]

find():第一个参数为子串,第二个位置为起始位置,第三个位置为终止位置
运行结果如下:
-1
10
找到子串在位置: 17

另外几种查找方式:index(),in,max(),min(),len()

str = 'my name is ivan'
print(str.find('name'))   # 查找位置(不在返回-1)
print(str.index('name'))  # 查找位置(不在报异常) ,返回值和find一致
print('ivan' in str)      # 有该字符串吗,返回true / false
print(len(str))           # 长度

print(max('ABCabc'))      # 找ASCII码最大的字符(小写的)
print(min('ABCabc'))      # 找ASCII码最小的字符

运行结果:
查找方式

2、字符串替换 使用replace方法

# 字符串替换 使用replace方法
str = 'good,good,study, Asher'
replace = 'searching'
str2 = str.replace('study', replace)
print('替换后', str2)  # 替换后 

replace():第一个参数为被替换的子串,第二个参数为替换后的子串

运行结果:
替换后 good,good,searching, Asher

3、字符串创建:原字符串是不可变的, String对象的方法改变的是新的字符串

str="hello world"	
str[2]='w'   # 报错:字符串是不可变的,只读,不能通过str[2]='w' 的方式更改内容。 
print(str)   

4、字符串的选取

str='time:2016-ivan'
print(str[1]);   # 选取指定位置的字符
print(str[5:9])  # 选取第5个到第9个间的字符(不包括9)
print(str[5:])
print(str[:-2]) # 到倒数第三个字符为止
print(str[:9])
print(str[-4:])  # 选取倒数第4个字符开始,直到结束的字符

运行结果:
字符串选取

5、字符串的运算

str1 = 'my name '
str2 = 'is ivan '
date = '2016.11.30 '
print(str1+str2+date)  # 拼接
print(str1*2)          # 复制

运行结果:
字符串运算

6、字符串的转换

print('Hello'.upper())                   # 变大写  
print('Hello'.lower())                   # 变小写  


# 列表和分隔符 平滑切换
print('chengdu-2016-ivan'.split('-'))    # 去掉分隔符 -> 转换为列表
print('-'.join(['hello','baby','2018'])) # 加分隔符   -> 列表转换为字符串


str='ivan2016 yzg2016'; 
print(str.replace('2016', ''))           # 替换  -> 删除第一个数字2016 

运行结果:
字符串转换j

2、reverse函数与分片

注意:reversed()函数返回的是一个迭代器,而不是一个List

a = [1, 2, 3, 4, 5, 6, 7, 8, 9]

# 使用reversed()
# 注意:reversed()函数返回的是一个迭代器,而不是一个List,
# 需要再使用list函数转换一下。
b = list(reversed(a))
print("b: ", b)

运行结果:
b: [9, 8, 7, 6, 5, 4, 3, 2, 1]

分片

# Python的分片操作含左不含右
c = a[3:6]  # 起始位置是0,所以3位置对应的是4
print("c: ", c)

# 开始2,终止8,步长2
d = a[2:8:2]
print("d: ", d)

# 其中[::-1]代表从后向前取值,每次步进值为1
e = a[::-1]
print("e: ", e)

[2:8:2]:开始2终止8步长2
[::-1]:代表从后向前取值,每次步进值为1

运行结果:
c: [4, 5, 6]
d: [3, 5, 7]
e: [9, 8, 7, 6, 5, 4, 3, 2, 1]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值