字符串基础

Posted norasgao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串基础相关的知识,希望对你有一定的参考价值。

字符串

 

索引 & 切片

同样适用于:列表,元组等

切片:

截取完毕后不改变原数据类型

列表的索引:

索引出的部分 = 数据本身的类型

可能是整数,字符串,元组或其他

列表的切片:

截取出的部分 = 列表类型

?

lst = [1, ‘a‘, [‘one‘, ‘two‘]]

print(type(lst[0])) #<class ‘int‘>

print(type(lst[1])) #<class ‘str‘>

print(type(lst[2])) #<class ‘list‘>

print(type(lst[0:2])) #<class ‘list‘>

?

取正值 & 取负值的切片如何判断?

首先看步长

正值 从左到右

[n:m:1],m的值为索引+1

负值 从右到左

[n:m:-1],m的值为索引-1

?

str = ‘abcdefg‘

print(str[0:3:1]) #abc

print(str[-7:-4:1]) #abc

print(str[2::-1]) #cba ♦首位正值逆向索引值,不是[2:0:-1][2:-1:-1]

print(str[-5:-8:-1]) #cba

?

 

修改

字符串可以被修改吗?

不可以。

?

str = ‘abcdefg‘

str[0] = ‘A‘

print(str)

# TypeError: ‘str‘ object does not support item assignment

str = ‘123456‘

str.replace(‘1‘,‘999‘)

print(str)

# 123456

?

有方法可以改变字符串吗?

有。

任何方法都不会改变原字符串,但是可以通过拼接、重新赋值来“改变”。

?

a = ‘say hi‘

print(a, id(a))

b = a[0:3] + ‘ hello‘

print(b, id(b))

#say hi 1922527765256

#say hello 1922528764464

?

♦ 不同于列表,对列表使用方法,会改变原列表

?

lst = [1,2,3,4,5]

lst.append(6)

print(lst)

# [1, 2, 3, 4, 5, 6]

?

字符串的方法们

str.count(‘x’)  # ‘x’str中出现的次数

?

str = ‘aabbccdd‘

print(‘a‘, str.count(‘a‘))

# a 2

?

str.startswith(‘x’)  # 判断是否以’x’开头

   str.endswith(‘x’)  # 判断是否以’x’结尾

?

str = ‘aabbccdd‘

print(‘startswith-a‘, str.startswith(‘z‘))

print(‘endswith-ccdd‘, str.endswith(‘ccdd‘))

# startswith-a False

# endswith-ccdd True

?

str.find(‘x’, beg = 0, end = len(str))  #寻找 ‘x’ 元素的索引值

♦ 找不到则显示 -1

   str.index(‘x’, beg = 0, end = len(str))

♦ 找不到则报错

♦ ♦若str中有多个相同元素’x’ 则只返回最左一个的索引值

?

str = "you will when you believe."

print(str.find(‘u‘))

print(str.index(‘u‘))

print(str.find(‘s‘))

print(str.index(‘s‘))

 

# 2

# 2

# -1

# ValueError: substring not found

?

str.strip()  #默认删除首尾的空白符(包括’ ’, ‘ ’, ’ ’, ‘’)

   str.strip(‘xyz’)  #删除首尾的’x’和‘y’和‘z’

?

str = ‘xxx  Caesar  zzz‘

print(str.strip(‘xyz‘))

# ---Caesar---

?

str.lstrip() & str.rstrip()

list(str) #将字符串按各字符分割成列表

?

str = ‘Caesar‘

print(list(str))

# [‘C‘, ‘a‘, ‘e‘, ‘s‘, ‘a‘, ‘r‘]

?

str.split( str = ‘  ’, num = str.count(str)) # 分隔符,分割次数

♦ 输出一个列表

?

str = ‘Joseph Joestar‘

print(str.split())

print(str.split(‘Jo‘))

# [‘Joseph‘, ‘Joestar‘]

# [‘‘, ‘seph ‘, ‘estar‘]

?

str.replace(‘old’, ‘new’, ’max_num’)

♦ 第三个参数指替换不超过max_num次数,默认全部替换

?

str = ‘Joseph Joestar‘

print(str.replace(‘Joseph‘, ‘Jonathan‘))

# Jonathan Joestar

?

str.isdigit()  # 是否全为数字

   str.isalpha()  # 是否全为字母

   str.isalnum()  # 是否只有数字/字母

♦ 注意是否含有空字符

?

str = ‘Joseph Joestar‘

print(str.isdigit())

print(str.isalpha())

print(str.isalnum())

# False *3

?

以上是关于字符串基础的主要内容,如果未能解决你的问题,请参考以下文章

java基础之java程序基础之字符和字符串

Python基础语法——(引号字符串)

python基础学习-字符串

python基础知识(字符串)

python基础--字符串

python基础:条件循环字符串