Python字符串基础与操作

字符串

字符串 str

由多个字母,数字,特殊字符组成的有限序列

用单引号或双引号包裹就是字符串

1.创建字符串

s = 'hello lucy'
# 长度
print(len(s))

# 字符串是不可变的
s = 'good'
# s[0] = 'a'  # 报错,'str' object does not support item assignment
# 可以通过重新赋值,形成新的变量进行覆盖
s = s + ' day'
print(s)

2.索引

字符串的下标

s = "abcdef"
print(s[0], s[-1])

3.切片、倒序

# 切片
print(s[6:])  # 从下标为6的位置开始到末尾
print(s[::-1])  # 倒序输出
print(s[1:6:2]) # 切片范围 [1,6),步长为2

# 列表生成式-倒序
s = 'abcdefg'
l = [n for n in s]  

print(''.join(reversed(l)))  # 将列表倒序后拼接成一个一个字符串
# reversed不会改变原列表的排列,而是返回一个原列表倒序后的新列表

4.字符串运算

字符串连接(合并)+

在Python中,使用+。只能是字符串和字符串之间。和其他数据类型使用的话不支持

print('亲' + ',你好')
字符串重复
s3 = "good"
print(s3 * 3)

# 利用集合set的不重复性对列表去重
s3 = '1236664487999'
s3 = list(set(s3))

for i in rang(len(s3)):
    forj in rang(len(s3)-1,)

5.遍历

s = 'good'
for i in s:
    print(i)
print()

for i in range(len(s)):
    print(s[i])

6.成员

判断一个字符串是否在原字符串中

print("成员")
print('a g' in 'today is a good day')  # a and g
print('good' not in 'today is a good day')

7.字符串的功能

7.1 count
s = 'hello luhan'
print(s.count('l')) # 计算字符在字符串中出现的个数
7.2 字符串判断
print('100'.isdigit())  # 判断是否为数字
print('abc'.isalpha())  # 判断是否为字母
print('abc123'.isalnum())  # 判断是否为字母或数字
print('HELLO'.isupper())  # 判断是否为大写
print('HELLO'.islower())  # 判断是否为小写
print('I Am Good Man'.istitle())  # 判断是否为标题格式
print('    '.isspace())  # 是否为空格
7.3 查找
# find() 从左往右找,返回第一次出现的的第一个字符的下标,找不到的时候返回-1
# rfind() 从右往左,返回第一次出现的的第一个字符的下标,找不到的时候返回-1
s = 'Everyone who works works as works as a wage earner'
print(s.find('works'))  # 13
print(s.find('works222'))  # 找不到的时候返回-1
# print(s.find('works, 14, 30'))  # 指定查找的下标范围[14, 30)
print(s.rfind('works'))  # 从右往左

# print(s.index('works'))  # 找不到就会把报错
7.4 拆分

字符串拆分后返回一个列表

s = 'i am iron   man'
l = s.split()  # 默认按照空格进行拆分,拆分成list列表
print(l)
l = s.split(' ')  # ['i', 'am', 'iron', '', '', 'man'] 按照每一个遍历到的第一个空格来拆分
print(l)
l = s.split('am')  # ['i ', ' iron   man']
print(l)
l = s.split('man')  # ['i am iron   ', '']
print(l)
l = s.split('a', 1)  # ['i ', 'm iron   man'] 按照第一个a来拆分
print(l)


s = '''静夜思
床头明月光
疑是地上霜
举头望明月
低头思故乡
'''
print(s.splitlines())  # 按行拆分
print(s.split('\n'))  # 按行拆分
7.5 替换
s = 'trump is American American'
print(s.replace('American', 'Chinese'))  # 会全部替换
print(s.replace('American', 'Chinese', 1))  # 会替换1次
7.6 将列表元素拼接成字符串
l = ['静夜思', '床头明月光', '疑是地上霜', '举头望明月', '低头思故乡']
print('+'.join(l))  # 用'+'连接列表元素。输出字符串类型
print('\n'.join(l))  # 用\n连接列表元素
print(''.join(['a', 'b', 'c']))  # abc
print('=='.join(['1', '2', '3']))  # 如果是数字就不能用符合连接
7.7 字符串首尾匹配
# 首尾匹配
print(s.startswith('trump'))  # True  判断开头
print(s.endswith('trump'))  # 判断结尾
7.8 去除首尾指定字符strip
print('  李白  至尊宝'.strip())
print('---鲁班---鲁班七号---'.strip('-'))
print('---鲁班---鲁班七号---'.lstrip('-'))  # 去除左边
print('---鲁班---鲁班七号---'.rstrip('-'))  # 去除右边
7.9 字符串对齐
print('玛莎拉蒂女'.center(40))  # 居中
print('玛莎拉蒂女'.center(40, '-'))  # 居中 用'-'填充多余的空字符
print('玛莎拉蒂女'.ljust(40, '-'))  # 左对齐 用'-'填充多余的空字符
print('玛莎拉蒂女'.rjust(40, '-'))  # 右对齐 用'-'填充多余的空字符
print('玛莎拉蒂女'.zfill(40))  # 字符串靠右 用0填充多余的空字符
eval()
# eval():去除字符串的引号,进行类型转换(转换成的类型取决于引号中的值是什么类型)
print(eval('1+1'))
l = eval('[1, 2, 3]')
print(l)
转义字符
# 转义字符
# \n 换行
# \t 制表
s = 'hello \nworld'
print(s)
s = 'hello \\nworld'  # 取消转义字符,让有语义的字符没有语义\
s = r'h\bello \nworl\td'  # 取消转义字符,对所有的转义字符进行转义\
print(s)
编码与解码
s = 'Python 牛b'
# 编码:字符串 => 二进制
b = s.encode()  # 默认是utf-8
print(b)


# 解码:二进制 => 字符串
s2 = b.decode()
print(s2)

大小写
print('hello'.upper())  # 变成大写
print('HELLO123'.lower())  # 变成小写,hello123
print('you are good man'.title())  # 标题化(每个单词首字母大写)
print('you are good man'.capitalize())  # 第一个字母的首字母大写
print('you Are Good man'.swapcase())  # 将大小写转换

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值